Kubernetes : Abs:Begginers : Introduction : UDY: Session 9 : Kubernetes Architecture
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Nodes :
A node is a machine Physical or Virtual on which Kubernetes is Installed .
A node is a worker machine and that is where containers will be launched by Kubernetes it was also known as Minions in the past. So you might use these terms interchangeably . What if the node on which your application is running fails , well obviously our application goes down . So you need to have more than one node .
Cluster :
A cluster is a set of nodes grouped together , this way even if your one node fails you still have your application accessible from the other nodes , more over having multiple node helps in sharing the load
Master :
Now we have a cluster but who is responsible for managing the cluster, where is the information about the members of the cluster stored . How are the nodes monitored . When a node fails , how do you move the workload of the failed node to the other that's when the master comes in.
A master is another node with Kubernetes installed in it. And is configured as a Master . The Master watches over the nodes in the cluster and is responsible for the original orchestration of containers in the worker nodes.
When you install Kubernetes on a system you are actually installing the following components .
- API server
- etcd service
- Kublet service
- Controller run time
- Controller
- Schedulers
Etcd key Store :
Is a distributed, reliable key-value store used by Kubernetes to store all data used to manage the cluster.
think of it this way when you have multiple nodes and multiple masters in your cluster . Etcd stores that information in all those nodes in the cluster in a distributed manner
Etcd is responsible for implementing locks within the cluster to ensure there are no conflicts between the Masters .
Scheduler :
The scheduler is responsible for distributing work or containers across multiple nodes. It looks for newly created containers and assign them to nodes.
Controllers :
The controllers are the brain behind the orchestration they are responsible for noticing and responding when nodes. containers and endpoints goes down. The controllers make decision to bring up new containers when the containers goes down in such cases. The container run time is the underlining a software used to run containers . In our case it happens to be Dockers but there are other options as well .
Kublet :
Kublet is the agent that runs in each node in the cluster . The agents are responsible to ensure that the containers are on each node is running as expected.
Master Vs Worker Node :
Master and Node a set of components that make up Kubernetes . But how are these components .How does one become the Master and other the Slave
The worker node or the Minion node as it s also known is where the containers are hosted for example docker containers and to run docker containers in a system we need docker run time installed and that's when the docker run
There are other docker containers such as Rocket or Crio . But through out this course we are going to use Docker run time engine
The master server has the kube-api-server , that is what makes it the Master . Similarly the worker node has the kublet agent that is responsible for interacting with the Master providing to provide health information of the worker node and carry out the actions requested by the Master on the worker nodes all the information gathered is stored in the key-value store on the master .The key-value store is based on the etcd framework that we just discussed .The master also has the control manager and the scheduler . There are other components as well . But we will stop there for now.
Kubletctl :
And importantly we need to learn about one of the command line utilities called the kubectl - kube command line tool or kube control as it is also called
The kubectl tool is use to deploy and manage applications on a Kubernetes cluster .
- kubectl run hello-minitube
To get the cluster information, the nodes in the cluster and to manage many other things
The kubectl run command is used to deploy any application in the cluster
- kubectl run hello-minitube // kubectl run command to deploy an application
- kubectl cluster-info command
- kubectl cluster-info //is used to view information about the cluster
- kubectl get nodes // Is to list all the nodes that are part of the cluster

Comments
Post a Comment