Kubernetes is open source platform used for orchestrating the containerized workload
Features of kubernetes:
Automated rollouts & rollbacks
Secret & config management
Load balancing
Service discovery
AKS Architecture:
Master node components:
1. Docker – a container runtime, there are other runtimes also available like container-d , rkt etc.
2. Kube apiserver – It exposes the kubernetes API, it acts as frontend for master node.
All components of kubernetes like kubectl, scheduler, controller manager, etcd and worker node components like kubelet communicate with this API Server
3. Etcd – highly available key value store. It stores all the master and worker node information
4. Scheduler – responsible for distribution containers on multiple nodes. It looks for newly created pods and assign these pods to a node where they can be deployed
5. Kube controller manager – responsible for monitoring and responding when any node, or container went down then it spin up new containers in such scenario,
there are multiple controllers inside:
Node controller – responsible for monitoring & responding when a node goes down
Replication controller – responsible for maintaining correct number of pods for deployed container workload
Endpoint controller – populates the endpoint object like (services & pods)
Service account & token controller – give API access to new NameSpace created
6. Cloud controller manager – Its functioning is similar to kube controller but it only runs controller which are specific to Cloud provider, On-Prem kubernetes cluster will not have this component
Node controller – similar to node controller of kube controller manager
Route controller – for setting up routes in underlying cloud infrastructure
Service controller – for creating, updating and deleting load balancer
Worker node components:
1. Docker – a container runtime which is common in both worker and master node (control plane)
2. Kubelet – it is an agent which runs on every worker node in the cluster. It is responsible for making sure that containers are running inside a pod.
3. KubeProxy – its a network proxy which runs on each node in cluster. Maintain network rules which ensures network communication to the pods deployed. These network communication can be from within the cluster or from outside the cluster
Leave a Reply