What is Kubernetes
Kubernetes is an open source container orchestration platform developed by Google for managing microservices or containerized applications across a distributed cluster of nodes. Kubernetes is highly resilient and supports zero downtime, rollback, scaling, and self-healing of containers. The main objective of Kubernetes is to hide the complexity of managing a fleet of containers. It can run on bare metal machines or on public or private cloud platforms such as AWS, Azure and OpenStack. Kubernetes follows a client-server architecture.
Main Components of the Kubernetes Master Server
- etcd cluster - a distributed key value storage that stores Kubernetes cluster data
- kube-apiserver -the central management entity that receives all REST requests for modifications to cluster elements
- kube-controller-manager - runs controller processes like replication controller (sets number of replicas in a pod) and endpoints controller (populates services, pods and other objects)
- cloud-controller-manager -responsible for managing controller processes with dependencies on the underlying cloud provider
- kube-scheduler - helps schedule the pods (a co-located group of containers inside which our application processes are running) on the cluster nodes based on resource utilization
Main components of the Kubernetes Node (Worker) Server
- kubelet - the main service on a node, taking in new or modified pod specifications from kube-apiserver, and ensuring that pods and containers are healthy and running
- kube-proxy - runs on each worker node to deal with individual host subnetting and expose services
kubectl is a command line tool that interacts with kube-apiserver and send commands to the master node. Each command is converted into an API call.
0 Comments
Post a Comment