Kuberntes architecture
Differnce between docker and kuberntes
kuberntes have
cluster management
autoscaling
autohealing
enterprise application support like loadbalancing , fariewall
Docker shim is container runtime in docker to run containers
The smallest unit of deployment in docker is container
The smallest unit of deployment in kuberntes is pod
Kublete :-
The Kubelet is responsible for managing the deployment of pods to Kubernetes nodes
What Is a Container Runtime?
A container runtime, also known as container engine, is a software component that can run containers on a host operating system. In a containerized architecture, container runtimes are responsible for loading container images from a repository, monitoring local system resources, isolating system resources for use of a container, and managing container lifecycle.
Common container runtimes commonly work together with container orchestrators. The orchestrator is responsible for managing clusters of containers, taking care of concerns like container scalability, networking, and security. The container engine takes responsibility for managing the individual containers running on every compute node in the cluster.
Common examples of container runtimes are runC, containerd, Docker, and Windows Containers. There are three main types of container runtimes—low-level runtimes, high-level runtimes, and sandboxed or virtualized runtimes.
kube-proxy
kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.
kube-proxy maintains network rules on nodes. These network rules allow network communication to your Pods from network sessions inside or outside of your cluster.
Master Node
A user sends the rest commands to the API server, which then validates the requests, then processes and executes them. After requesting, the resulting state of the cluster is stored in the distributed key-value store.
This API Server is the only Kubernetes control panel component with a user-accessible API and the sole master component that you’ll interact with. It acts as a gateway to the cluster and support life cycle orchestration.
- Kube API server is the only component that interacts directly with the ETCD data store.
- The other components, such as scheduler, kubectl, kubelet, etc., use the Kube API server to perform updates in the cluster in their respective areas.
Kubernetes scheduling is simply the process of assigning pods to the matched nodes in a cluster. A scheduler watches for newly created pods and finds the best node for their assignment. It chooses the optimal node based on Kubernetes’ scheduling principles and your configuration options.
ETCD in Kubernetes
The ETCD data store stores information regarding the cluster such as Nodes, PODs, Config, Secrets, Accounts, Roles, Bindings and Others. Every change you make in the cluster, such as adding additional nodes, deploying pods, replica sets, are updated in this data store.
Kube Controller Manager
The controller is a process that continuously monitors the state of the various components within the system and works towards bringing the whole system to the desired functioning state.
Basically, a controller watches the desired state of the objects it manages and watches their current state through the API server. If the current state of the objects it manages does not meet the desired state, then the control loop takes corrective steps to make sure that the current state is the same as the desired state.
Cloud Controller Manager
Cloud infrastructure technologies let you run Kubernetes on public, private, and hybrid clouds. Kubernetes believes in automated, API-driven infrastructure without tight coupling between components.

Comments
Post a Comment