See How Is The Kubernetes Looks Like…
Kubernetes is the OS of the cloud. As such, it sits between applications and infrastructure. Kubernetes runs on infrastructure, and applications run on Kubernetes.
The diagram shows four Kubernetes installations running on four different infra platforms. Because Kubernetes abstracts the underlying infrastructure, the application at the top of the diagram can run on any of the Kubernetes installations. You can also migrate it from one Kubernetes installation to another. We call a Kubernetes installation a Kubernetes cluster.
Firstly, it’s unusual for a single Kubernetes cluster to span multiple infrastructures. For example, you are not likely to see Kubernetes clusters that span multiple clouds. Likewise you are unlikely to see clusters that span on-premises and the public cloud. This is mainly due to network speed and reliability. Generally speaking, you want high-speed reliable networks connecting the nodes in a cluster.
Secondly, although Kubernetes can run on many platforms, applications that run on Kubernetes have stricter requirements. For Example : Windows apps will only run on Kubernetes clusters with Windows Nodes, Linux apps will only run on clusters with Linux nodes, and apps written for ARM/Raspberry Pis require clusters with ARM nodes.
Masters and nodes
Kubernetes cluster is one or more machines with Kubernetes installed. The machines can be physical servers, virtual machines (VM), cloud instances, your laptop, Raspberry Pis, and more. Installing Kubernetes on these machines and connecting them together creates a Kubernetes cluster. You can then deploy your applications to the cluster.
We normally refer to machines in kubernetes cluster as nodes.
Talking of nodes, a Kubernetes cluster has two types of nodes:
Master nodes
Worker-Nodes
People generally call master nodes “Masters” and worker nodes just nodes
Masters host the control plane components and Nodes are where you run user applications.
Fig-2 Shows a 6-node kubernetes cluster with 3 Masters and 3 Nodes. s. It’s good practice for the Masters to exclusively run control plane components(no user applications). All user applications should run on Nodes.
Masters:
Masters host the control plane components. That’s a fancy way of saying the brains of the cluster.
Masters run the following services that form the control plane (brains of the clusters):
• API Server
- Scheduler
- Etcd
- Kube controller
- More…
The API Server is the only part of a Kubernetes cluster you directly interact with. When you send commands to the cluster, they go to the API Server. When you receive responses, they come via the API server.
The Scheduler chooses which Nodes to run user applications on.
The etcd is key-value store where the state of the cluster and all applications is stored.
The kube controller allows Kubernetes to integrate with cloud services such as storage and load-balancers.
Note: There are more services in a Kubernetes control plane but above one are the major one.
Nodes:
All the kubernetes nodes run couple of services i feel worth to know about them:
1. Kubelet
2. Container runtime
The kubelet is the main Kubernetes agent. It joins the Node to the cluster and communicates with the control plane — things like receiving tasks and reporting on the status of tasks.
The container runtime job is to start and stop the containers.
Note: Kubernetes used to use Docker as its container runtime.
Nodes run user applications and can be Linux or Windows. Linux Nodes run Linux apps, whereas Windows Nodes run Windows apps.
In Above post i tried explaining ‘how exactly kubernetes looks like’.
To know more about kubernetes read official document of kubernetes: https://kubernetes.io/
https://minikube.sigs.k8s.io/docs/
Happy learning…………