Kubernetes cluster concepts
Category : Kubernetes
| Sub Category : Kubernetes With Java | By Prasad Bonam Last updated: 2023-11-21 10:50:34
Viewed : 536
A Kubernetes cluster is a set of physical or virtual machines (nodes) that run containerized applications orchestrated by Kubernetes. Here are some key concepts related to Kubernetes clusters:
1. Nodes:
- Nodes are the individual machines (physical or virtual) in the cluster where containers are deployed.
- Each node runs a container runtime (like Docker) and has the necessary Kubernetes components (kubelet and kube-proxy) to communicate with the master.
2. Master:
- The master node is responsible for managing the overall state of the cluster.
- It schedules applications, maintains the desired state, and monitors and responds to node and pod failures.
- Components include the API server, controller manager, scheduler, and etcd.
3. Control Plane:
- The control plane is a set of components on the master node that collectively manages the cluster.
- Key components: API Server, etcd, Controller Manager, and Scheduler.
4. Pod:
- The smallest deployable units in Kubernetes.
- A pod represents a single instance of a running process in a cluster.
- A pod can contain one or more containers that are tightly coupled and share the same network namespace, storage, and specifications.
5. Namespace:
- A way to divide cluster resources between multiple users or projects.
- Namespaces provide a scope for names, making it easier to organize and isolate resources within a cluster.
6. Service:
- An abstraction that defines a logical set of pods and a policy by which to access them.
- Services enable communication between different parts of an application, or between applications.
7. ReplicaSet:
- Ensures that a specified number of replicas (instances) of a pod are running at all times.
- Provides scaling and high availability for pods.
8. Deployment:
- Manages the deployment and scaling of a set of pods.
- Provides declarative updates to applications, allowing you to describe the desired state for your deployed containers.
9. ConfigMap and Secret:
- ConfigMap holds configuration data as key-value pairs.
- Secret holds sensitive information, such as passwords or API keys.
10. Kubelet:
- The primary "node agent" that runs on each node.
- Ensures that containers are running in a Pod.
11. Kube Proxy:
- Maintains network rules on nodes.
- Enables communication to Pods from network sessions inside or outside the cluster.
12. StorageClass and PersistentVolume:
- StorageClass defines different classes of storage.
- PersistentVolume represents a piece of storage in the cluster.
13. Ingress:
- Manages external access to services within a cluster.
- Provides HTTP and HTTPS routing to services based on rules.
14. RBAC (Role-Based Access Control):
- Defines what actions are allowed or denied for different users or systems within a cluster.
15. ClusterRole and ClusterRoleBinding:
- Similar to RBAC but applies at the cluster level.
Understanding these concepts is crucial for effectively deploying, managing, and scaling applications in a Kubernetes cluster. The architecture and flexibility of Kubernetes provide a robust platform for container orchestration and application management.