Kubernetes is an orchestration framework for Docker containers that helps expose containers as services to the outside world. For example, you can have two services ā One service would containĀ nginxĀ andĀ mongoDB, and another service would containĀ NginxĀ andĀ Redis. Each service can have an IP or service point which can be connected by other applications. Kubernetes is then used to manage these services.
The following diagram shows in a simplistic format how Docker – Kubernetes Architecture point of view.
TheĀ minionĀ is the node on which all the services run. You can have many minions running at one point in time. Each minion will host one or more POD. TheĀ PODĀ is like hosting a service. Each POD then contains the Docker containers. Each POD can host a different set of Docker containers. The proxy is then used to control the exposure of these services to the outside world.
Kubernetes has several components in its architecture. The role of each component is explained below &mius;
- etcd ā This component is a highly available key-value store that is used for storing shared configuration and service discovery. Here the various applications will be able to connect to the services via the discovery service.
- Flannel ā This is a backend network which is required for the containers.
- kube-apiserver ā This is an API which can be used to orchestrate the Docker containers.
- kube-controller-manager ā This is used to control the Kubernetes services.
- kube-scheduler ā This is used to schedule the containers on hosts.
- Kubelet ā This is used to control the launching of containers via manifest files.
- kube-proxy ā This is used to provide network proxy services to the outside world.
In this guide, we learned about Docker – Kubernetes Architecture to know more click here.