Hinson's blog

𝕰𝖝𝖈𝖊𝖑𝖑𝖊𝖓𝖈𝖊 𝖎𝖓 𝖈𝖑𝖔𝖚𝖉 𝖆𝖗𝖈𝖍𝖎𝖙𝖊𝖈𝖙𝖚𝖗𝖊 𝖆𝖓𝖉 𝖘𝖊𝖈𝖚𝖗𝖎𝖙𝖞 𝖉𝖔𝖒𝖆𝖎𝖓𝖘 𝖎𝖘 𝖙𝖍𝖊 𝖊𝖙𝖊𝖗𝖓𝖆𝖑 𝖕𝖚𝖗𝖘𝖚𝖎𝖙 𝖔𝖋 𝖒𝖞 𝖕𝖗𝖔𝖋𝖊𝖘𝖘𝖎𝖔𝖓𝖆𝖑 𝖌𝖗𝖔𝖜𝖙𝖍

Kubenetes components

Spread the love

Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It comprises several components, each with a specific role in managing the cluster. Here’s a detailed explanation of the key Kubernetes components:

Master Components

  1. kube-apiserver:
    • Role: The API server is the front-end for the Kubernetes control plane. It exposes the Kubernetes API, which is used by all components to interact with the cluster.
    • Function: Handles RESTful requests, provides the interface for management tools, and communicates with the etcd datastore.
  2. etcd:
    • Role: A distributed, reliable key-value store that holds the configuration data and state of the cluster.
    • Function: Stores all cluster data, including information about nodes, pods, ConfigMaps, secrets, and more. It ensures data consistency and durability.
  3. kube-scheduler:
    • Role: Responsible for scheduling pods to nodes based on resource availability and constraints.
    • Function: Monitors the state of the cluster and assigns new pods to appropriate nodes based on factors like CPU, memory, and affinity rules.
  4. kube-controller-manager:
    • Role: Runs controllers, which are background processes responsible for maintaining the desired state of the cluster.
    • Function: Includes several controllers such as:
      • Node Controller: Manages node lifecycle.
      • Replication Controller: Ensures the correct number of pod replicas.
      • Endpoint Controller: Manages endpoint objects.
      • Service Account & Token Controllers: Manage service accounts and tokens.
  5. cloud-controller-manager (optional):
    • Role: Manages cloud-specific control logic.
    • Function: Allows Kubernetes to interact with the underlying cloud provider’s API, managing services like load balancers, storage volumes, and instances. Components include:
      • Node Controller: Manages nodes in the cloud.
      • Route Controller: Manages routes in the cloud.
      • Service Controller: Manages cloud provider services.

Node Components

  1. kubelet:
    • Role: An agent that runs on each node in the cluster.
    • Function: Ensures containers are running in pods. It communicates with the kube-apiserver to receive pod specifications and reports the status back to the control plane.
  2. kube-proxy:
    • Role: A network proxy that runs on each node.
    • Function: Maintains network rules on nodes, enabling communication between pods across different nodes. It manages IP addresses and load balancing for services.
  3. Container Runtime:
    • Role: The software responsible for running containers.
    • Function: Executes containers and manages their lifecycle. Examples include Docker, containerd, and CRI-O.

Add-On Components

  1. CoreDNS:
    • Role: DNS server for the cluster.
    • Function: Provides DNS-based service discovery, translating service names to IP addresses.
  2. Metrics Server:
    • Role: Collects resource metrics from nodes and pods.
    • Function: Provides data for resource-based scaling decisions, such as Horizontal Pod Autoscaler.
  3. Dashboard:
    • Role: Web-based user interface.
    • Function: Allows users to manage and monitor the cluster through a graphical interface.
  4. Ingress Controller:
    • Role: Manages ingress resources.
    • Function: Provides HTTP and HTTPS routing to services based on Ingress resources, enabling access to applications from outside the cluster.

Cluster Federation

  • Role: Manages multiple Kubernetes clusters.
  • Function: Provides a single control plane to manage multiple clusters, enabling workload distribution, disaster recovery, and high availability across clusters.

Leave a Reply

Your email address will not be published. Required fields are marked *