15/05/2023
The following Kubernetes architecture diagram shows all the components of the Kubernetes cluster
- Kubernetes Control Plane
-Kubernetes Worker Node Components
Kubernetes Control Plane
1. Api-Sever
The kube-api server is the central hub of the Kubernetes cluster that exposes the Kubernetes API.
2. kube-scheduler
The kube-scheduler is responsible for scheduling pods on worker nodes.
When you deploy a pod, you specify the pod requirements such as CPU, memory, affinity, taints or tolerations, priority, persistent volumes (PV), etc. The scheduler’s primary task is to identify the create request and choose the best node for a pod that satisfies the requirements.
3. Kube Controller Manager
a programs that run infinite control loops. Meaning it runs continuously and watches the actual and desired state of objects. If there is a difference in the actual and desired state, it ensures that the kubernetes resource/object is in the desired state.
4. etcd
You can call it the brain of the Kubernetes cluster,
we needs an efficient distributed database like etcd that supports its distributed nature. It acts as both a backend service discovery and a database.
-Now let’s look at each of the worker node components
1. Kubelet
Kubelet is an agent component that runs on every node in the cluster. t does not run as a container instead runs as a daemon, managed by systemd.
It is responsible for registering worker nodes with the API server and working with the podSpec (Pod specification – YAML or JSON) primarily from the API server.
2. Kube proxy
To understand kube proxy, you need to have a basic knowledge of Kubernetes Service & endpoint objects.
Service in Kubernetes is a way to expose a set of pods internally or to external traffic. When you create the service object, it gets a virtual IP assigned to it. It is called clusterIP. It is only accessible within the Kubernetes cluster.
The Endpoint object contains all the IP addresses and ports of pod groups under a Service object. The endpoints controller is responsible for maintaining a list of pod IP addresses (endpoints). The service controller is responsible for configuring endpoints to a service.
Top 6 Tools for Java Developers
1. IntelliJIDEA - https://bit.ly/3YPouyw
2. JUnit - https://bit.ly/3IAwKds
3. Docker - https://bit.ly/3GKbC5S
4. Kubernetes - https://bit.ly/3WRDSJx
5. Selenium - https://bit.ly/3iiEgBM
6. Terraform - https://bit.ly/3XaORxq