Kubernetes: Terminology
- A pod is a unit that surrounds one or more containers.
- Each pod has an IP address.
- Usually pods hold just one container.
- A node is physical or virtual machine that runs a workload.
- Control servers manage the cluster and host the Kubernetes API.
-
The process of running a pod on a cluster node is called scheduling.
-
Deployments allow for orchestration of groups of pods. Scaling and self-healing are performed automatically. Images can be updated for a group of pods by changing the deployment YAML. Deployments do not directly work with pods, they manage ReplicaSets.
-
Services are an abstraction layer used to point to a group of pods that provide the same service. This is necessary as the actual pods and their addresses may be constantly changing. A selector in a service YAML definition is used to link to a deployment’s pods.
-
ReplicaSets create or terminate pods using a PodSpec.
-
A PodSpec is a YAML or JSON object that describes a pod.
-
When a PodSpec is sent to the kublet, kublet interacts with the container engine to spawn or terminate containers.
-
Node affinity, is a property of Pods that attracts them to a set of nodes (either as a preference or a hard requirement).
-
Taints allow a node to repel a set of pods.
- Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.