Kubernetes Worker Node¶
The Kubernetes Worker Node is a host machine—either physical or virtual—that serves as the minimal computing unit within a Kubernetes cluster where workloads actually execute.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md] The cluster's control plane assigns application workloads to these nodes, specifically in the form of Pods, ensuring they have the necessary resources to run.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md]
Core Components¶
To function as a valid worker node, the host must run three essential services: a container runtime, a kubelet, and a kube-proxy.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md]
Container Runtime¶
The container runtime is the software responsible for running containers.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md] While Docker is a common example, Kubernetes supports any runtime that adheres to the Open Container Initiative (OCI) standards, such as rkt or CRI-O.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md]
kubelet¶
The kubelet is a lightweight application that acts as the primary node agent, facilitating communication between the node and the [[Control Plane|control plane]].^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md] It ensures that the containers described in Pod specifications are running and healthy; when the control plane needs to execute an operation on the node, the kubelet is responsible for carrying it out.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md]
Kube-proxy¶
Running on every node, kube-proxy is a network proxy that manages network communication for the cluster.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md] It handles traffic for internal and external services, either by forwarding data itself or by leveraging the operating system's packet filtering layer.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md] Essentially, it provides service discovery and load balancing within the cluster.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md]
Workload Management¶
The [[Control Plane|control plane]] utilizes the kube-scheduler to determine which nodes receive new workloads.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md] This scheduler monitors the status of all worker nodes and assigns new Pods to the most suitable node based on specific filtering and scoring policies, such as resource requirements or hardware constraints.^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md]
Sources¶
^[400-devops-06-kubernetes-k8s-ithelp-day3-readme.md]