The Curiuos case of Kubernetes
Kubernetes:
- Is an open-source system for automating deployment, scaling, and management of containerized applications.It offers container orchestration, a container runtime, container-centric infrastructure orchestration, load balancing, self-healing mechanisms, and service discovery.
Kuberntes Components:
- A Kubernetes cluster consists of a set of worker machines, called nodes, that run containerized applications. Every cluster has at least one worker node .
- The worker node(s) host the Pods that are the components of the application workload.
- The control plane manages the worker nodes and the Pods in the cluster.
A- Control Panel Components:
1- Etcd : Consistent and highly-available key value store used as Kubernetes' backing store for all cluster data.
2- Kube-apiserver : The API server is a component of the Kubernetes control plane that exposes the Kubernetes API. The API server is the front end for the Kubernetes control plane.
3- Kube-Scheduler : Control plane component that watches for newly created Pods with no assigned node, and selects a node for them to run on.
4- Kube-controller-manager : Control plane component that runs controller processes.Logically, each controller is a separate process, but to reduce complexity, they are all compiled into a single binary and run in a single process.
5- Cloud-controller-manager: A Kubernetes control plane component that embeds cloud-specific control logic. The cloud controller manager lets you link your cluster into your cloud provider's API, and separates out the components that interact with that cloud platform from components that only interact with your cluster.
B- Node Components:
1- Kubelet: An agent that runs on each node in the cluster. It makes sure that containers are running in a Pod.
2- Kube-proxy: kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.
3- Container runtime: The container runtime is the software that is responsible for running containers.
C- Cluster Ntworking:
Highly-coupled container-to-container communications: this is solved by Pods and localhost communications.
Pod-to-Pod communications
Pod-to-Service communications
External-to-Service communications
D- Kubernetes Storage:
- The Kubernetes storage architecture is based on Volumes as a central abstraction. Volumes can be persistent or non-persistent, and Kubernetes allows containers to request storage resources dynamically, using a mechanism called volume claims.
1- Volumes:
- Volumes are the basic entity containers use to access storage in Kubernetes. They can support any type of storage infrastructure, including local storage devices, NFS and cloud storage services
A- Non- Persistent Storage:
By default, Kubernetes storage is temporary (non-persistent). Any storage defined as part of a container in a Kubernetes Pod, is held in the host's temporary storage space, which exists as long as the pod exists, and is then removed. Container storage is portable, but not durable.
B- Persistent Storage:
- Kubernetes also supports a variety of persistent storage models, including files, block storage, object storage, and cloud services belonging to these and additional categories
Link of Previous Articles : 1- https://3ntarvic.wordpress.com/
2- https://dev.to/muhammadantar
Resources:
1- https://kubernetes.io/docs/concepts/overview/components/
2- https://cloud.netapp.com/blog/cvo-blg-kubernetes-storage-an-in-depth-look
Subscribe to my newsletter
Read articles from Muhammad Antar directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by