A k8s Node is a machine (VM, bare metal, etc.) that runs the containers. To do so, it hosts the following components:

  • kubelet - A daemon that ensures if Pods are running, including their containers.
  • kube-proxy - It maintains necessary rules (e.g. iptables) for allowing cluster-wide communication. This way it enables communication between all Nodes via Services.
  • container runtime - Responsible for managing the execution and lifecycle of containers. It is what enables running containers on Kubernetes.

Sources: