James's Ramblings

Kubernetes: Terminology

Created: September 20, 2020
  • 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.