Home  Tech   Kubernetes ...

Kubernetes (k8s) cluster components

A Kubernetes (k8s) cluster is composed of several components that work together to orchestrate and manage containerized applications. These components can be categorized into control plane components and node components. Here’s a detailed breakdown of each:

Control Plane Components

The control plane is responsible for the overall management of the cluster, including scheduling, maintaining desired state, and handling updates.

  1. kube-apiserver:

    • Description: The API server is the front end of the Kubernetes control plane. It exposes the Kubernetes API, which is used by all components to communicate.
    • Function: Handles REST operations, provides CRUD operations on the cluster's objects, and serves as the central hub for all cluster operations.
  2. etcd:

    • Description: A consistent and highly-available key-value store used as Kubernetes' backing store for all cluster data.
    • Function: Stores the entire cluster state and configuration.
  3. kube-scheduler:

    • Description: A control plane component that watches for newly created Pods with no assigned node, and selects a node for them to run on.
    • Function: Responsible for workload distribution and ensuring optimal utilization of resources.
  4. kube-controller-manager:

    • Description: Runs controller processes.
    • Function: Each controller is a separate process, but they are all compiled into a single binary and run in a single process. This includes various controllers like the node controller, replication controller, endpoints controller, and service accounts controller.
  5. cloud-controller-manager (if using a cloud provider):

    • Description: Manages cloud-specific controller logic.
    • Function: Allows the cloud provider’s specific control logic to be run separately from the core Kubernetes logic. This includes node controllers, route controllers, and service controllers.

Node Components

Nodes, also known as worker machines or minions, run the actual applications and workloads.

  1. kubelet:

    • Description: An agent that runs on each node in the cluster.
    • Function: Ensures that containers are running in a Pod, communicates with the kube-apiserver to receive instructions, and reports back on the status of the nodes and pods.
  2. kube-proxy:

    • Description: A network proxy that runs on each node in your cluster.
    • Function: Maintains network rules on nodes. These rules allow network communication to your Pods from network sessions inside or outside of your cluster.
  3. Container Runtime:

    • Description: Software that runs containers.
    • Function: Kubernetes supports several runtimes: Docker, containerd, CRI-O, etc.

Additional Components

  1. CoreDNS/kube-dns:
    • Description: A DNS server, which is a mandatory add-on in most Kubernetes deployments.
    • Function: Provides DNS-based service discovery within the cluster.
Published on: Jun 16, 2024, 09:27 PM  
 

Comments

Add your comment