Overview of Kubernetes architecture

Category : Kubernetes | Sub Category : Learn Kubernetes | By Prasad Bonam Last updated: 2023-11-22 06:58:20 Viewed : 276

Overview of Kubernetes architecture:

Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. Its architecture is designed to provide a flexible and extensible platform for running containers at scale. Here is an overview of the key components and concepts in Kubernetes architecture:

  1. Master Node:

    • API Server: Acts as the control plane that exposes the Kubernetes API. All administrative tasks and communication with the cluster are done through the API server.
    • Controller Manager: Manages various controllers that regulate the state of the system. Examples include the Node Controller, Replication Controller, and Endpoints Controller.
    • Scheduler: Assigns newly created pods to nodes based on resource availability, policies, and other constraints.
  2. Node (Minion) / Worker Node:

    • Kubelet: Responsible for maintaining the set of containers on a node. It ensures that containers are running in a Pod.
    • Container Runtime: The software responsible for running containers, such as Docker or containerd.
    • Kube Proxy: Maintains network rules on the host and performs connection forwarding.
  3. Pod:

    • The smallest and simplest unit in the Kubernetes object model.
    • A pod represents a single instance of a running process in a cluster and may contain one or more containers.
  4. Controller:

    • Ensures the desired state of the system. Examples include ReplicaSet, Deployment, and StatefulSet controllers.
    • Controllers continuously work to reconcile the current state with the desired state defined in the Kubernetes API.
  5. Service:

    • Defines a logical set of pods and a policy by which to access them.
    • Services enable a group of pods to work together, providing a stable endpoint to access the application.
  6. Volume:

    • Provides persistent storage to pods.
    • Volumes exist independently of the pod and persist beyond the life of the pod.
  7. Namespace:

    • Provides a way to divide cluster resources between multiple users or teams.
    • Resources within a namespace can have the same name without conflicting.
  8. Label:

    • Key/value pairs that are attached to objects, such as pods.
    • Labels are used for identification, grouping, and selection of objects.
  9. Annotation:

    • Similar to labels, but they are not used to identify and select objects.
    • Annotations are for adding non-identifying metadata to objects.

Understanding these components and their interactions is crucial for effectively deploying and managing applications on a Kubernetes cluster. The architecture allows for scalability, resilience, and ease of management in a containerized environment.

Related Articles

Leave a Comment: