cd ..
KUBERNETES

Understanding Control Plane and Workers

In Kubernetes, the cluster is basically divided into two parts:

Control Plane = The cluster’s brain

Workers = Machines that do the heavy lifting.


Control Plane

The Control Plane decides what happens in the clusters. It doesn’t usually run the application directly, but it manages the entire environment.

Basic Kubernetes Architecture

flowchart LR

    subgraph CP["Control Plane - Node"]
        direction TB

        ETCD[("etcd<br/>Estado do cluster")]
        API["kube-apiserver"]
        SCHED["kube-scheduler"]
        CM["kube-controller-manager"]

        API <--> ETCD
        SCHED <--> API
        CM <--> API
    end

    subgraph W1["Worker Node"]
        direction TB

        KUBELET["kubelet"]
        PROXY["kube-proxy"]
    end

    API <--> KUBELET

etcd

It stores all information. The entire real state of the cluster. It only communicates with the kube API SERVER.

kube API SERVER

Only it has default permission to communicate with etcd. Its function is to retrieve the status of the cluster as a whole. It will communicate with everyone. All cluster communication happens through the kube API SERVER.

kube scheduler

It is responsible for managing where each of the containers will run; it is the controller responsible for new containers, and it knows the capacity of the nodes.

kube controller manager

It is the manager of all controllers; it ensures the state of the cluster. It is the cluster’s controller.


Workers

kubelet

It is the Kubernetes agent within the node, and every Kubernetes node will have a kubelet. It checks if everything is okay and communicates with the kube APISERVER, receiving the Pod specifications for that node and reporting the status back.

kube proxy

Every node will have a kube proxy. It enables communication between pods and the outside world; it observes cluster resources and configures network rules on the node.


Ports Used by Kubernetes Components

Ports Used by Kubernetes Components

ComponentDefault PortProtocol
kube-apiserver6443TCP
etcd2379–2380TCP
kube-scheduler10259TCP
kube-controller-manager10257TCP
kubelet10250TCP
kube-proxy10256TCP

Application Exposure Ports

ResourceDefault PortProtocol
NodePort Service30000–32767TCP or UDP