It is a container orchestration which makes many servers act like one. It tuns on top of Docker(Generally) as a set of APIs in containers. It provides API/CLI to manage containers across servers.
So, what can we order Kubernetes to do?
- First we can start 5 containers using image
atseashop/api:v1.3
and Place an internal load balancer in front of these containers
Note: atseashop/api:v1.3 is an image
Start 10 containers using image
atseashop/webfront:v1.3
and place a public load balancer in front of these containersDuring a festival, the usage become higher and you need to add containers. You can do that too
You have got a new release! Replace your containers with the new image
atseashop/webfront:v1.4
Other works:
- Kubernetes can do "rolling updates"(New versions of containers are deployed progressively, rather than all the containers at a time).
Some Terminology to know
K8s comes from the Kubernetes name as after "K" we have 8 letter and then a "s"
Kubectl( Cube control) : CLI to configure Kubernetes and its apps.
Node: Single server in the Kubernetes cluster.
Check out the official documentation of nodes
Kubelet: Kubernetes agent running on nodes.
Control plane:set of containers which manage the cluster.
In a master node, we have:
APIs (This is how we contact with containers) , scheduler (controls how and where your nodes are placed) ,controller manager (it looks at the current situation and tries to figure our what to do to get your commands done), etcd (Distributed storage system for key values), Core DNS ( to control DNS) etc.
So, this is what a master node might look like
**
In a normal node:**
we have Kubelet ( Kubernetes agent running on nodes), kube proxy ( to control the network) and obviously they will run over Docker
So, overall the Control Plane(set of containers which manage the cluster) might look like this
and the nodes (node 1, node 2,.......)might be like this
Distributions
Distributions like Vanilla and many more are there:
Haha! Want to stop learning kubernetes after watching this diagram?
Hold on!
Look at this one....... not that complex , right?
So, we have the master node which controls the whole cluster. Lets learn about it
- It has etcd ( key value store or, the database which has all the information about your containers and how it should run)
- API Servers( through this we contact containers and everything. one of the most important element of master. It also talks to Kubelet which actually controls nodes.)
Scheduler (controls how and where your nodes are placed)
Controller manager (it looks at the current situation and tries to figure our what to do to get your commands done)
But a node has Kubelet ( controls the node), Kube proxy ( controls the networking part of the node and provides IP address for the containers within the node).
Container runtime ( anything that manages containers . example: Docker) , Operating system (Linux/ Windows). List of container runtimes
You may also read this blogs by Kubernetes about container runtimes
Check out the official documentation of the architecture
An example of architecture and how they contact ( 1 master & 3 nodes)
*More concepts *
You might be new to pods . Pods consists of 1 or multiple containers. Container runtimes usually don't know about them..It is managed by Kubernetes. Kubernetes manages pods and then container runtimes manages the containers. Pods also have IP addresses. Thus you can keep multiple containers in a pod and contact with them using the IP address.
Note : There might be several masters on a cluster .
Cluster ( Combination of master node & nodes). Also a simple node can have this cluster in it......so , things can be way complex.
We will learn other things in next blog. See you in the next blog
Top comments (0)