Overview of Kubernetes architecture
Category : Kubernetes
| Sub Category : Learn Kubernetes | By Prasad Bonam Last updated: 2023-11-22 06:58:20
Viewed : 630
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:
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.
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.
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.
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.
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.
Volume:
- Provides persistent storage to pods.
- Volumes exist independently of the pod and persist beyond the life of the pod.
Namespace:
- Provides a way to divide cluster resources between multiple users or teams.
- Resources within a namespace can have the same name without conflicting.
Label:
- Key/value pairs that are attached to objects, such as pods.
- Labels are used for identification, grouping, and selection of objects.
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.