Skip to content

Kubernetes Common Terms

Revant Nandgaonkar edited this page Feb 6, 2023 · 1 revision

Node

VM on which containers are deployed. Server nodes are part of control-plane that is used to operate the cluster. All the containers are generally scheduled on Agent nodes. Server can be agent in case of single server "cluster".

Namespace

Logical separation, most resources made under a namespace are only accessible under that namespace, e.g. Secrets under namespace can't be accessed from another namespace. Useful to isolate applications, services or tenants.

Secret

Stores base64 encoded data that can be mounted or fed in a environment variables.

ConfigMap

Stores Config data that can be mounted or fed in as environment variables.

PV/PVC

PersistentVolume, Persistent Storage attached to cluster. PersistentVolumeClaim, Volume attached to pod. Number of pods that can attach and read or write to volume simultaneously depends on StorageClass.

Container

Minimum application that runs as a process. It is stateless. Needs volumes, credentials and networks attached to start interaction with applications.

Pod

Combination of containers that run together and are accessible to each other as localhost. It will vanish once deleted.

ReplicaSet

Because we need the pods to be present to serve the application, ReplicaSet specifies the number of Pods that need to be running for specific application. If the pod is deleted it will be created again to meet the specified number in replicaset

Deployment, StatefulSet, DaemonSet

Based on ReplicaSet these additional abstractions further decide where and how many replicas need to be scheduled. Deployments schedule pods on any nodes. StatefulSets schedule pods on same node as they are attached to volume on node. DaemonSet schedules one pod per node.

Service

Used to load balance the running replicas and serve them as a FQDN accessible under the cluster. If Service of type LoadBalancer is added it also adds cloud load balancer resource and serves over the public ip of the cloud load balancer. We add ingress-controller as a LoadBalancer service. It will help in mapping ingresses to internal Services

Ingress

Public host name / domain name where we wish to serve the application. It maps the requests to internal Service resource. Secret is linked to ingress for use as TLS certificate for the domain name mapped by ingress.