Kubernetes

Revision as of 18:07, 4 August 2020 by Admin (talk | contribs) (draft)

Kubernetes is an open source system for managing containerized applications across multiple hosts. It provides basic mechanisms for deployment, maintenance, and scaling of applications.

Container evolution

Kubernetes Components edit

When you deploy Kubernetes, you get a cluster. The cluster is composed of many components. Here are brief details on some of them.

Kubernetes Components


Kube-apiserver edit

The API server is the front end for the Kubernetes control plane.

The main implementation of a Kubernetes API server is kube-apiserver. kube-apiserver is designed to scale horizontally—that is, it scales by deploying more instances. You can run several instances of kube-apiserver and balance traffic between those instances.

etcd edit

Consistent and highly-available key value store. Used for backing store for all cluster data. https://etcd.io/docs/

Kube-controller-manager edit

Kubeadm edit

Kubeadm is a component of Kubernetes.

Kubeadm is a tool built to provide best-practice "fast paths" for creating Kubernetes clusters. It performs the actions necessary to get a minimum viable, secure cluster up and running in a user friendly way. Kubeadm's scope is limited to the local node filesystem and the Kubernetes API, and it is intended to be a composable building block of higher level tools.

Kubectl edit

Kube-proxy edit

Kube-scheduler edit

Control plane component that watches for newly created Pods with no assigned node , and selects a node for them to run on.

Factors taken into account for scheduling decisions include: individual and collective resource requirements, hardware/software/policy constraints, affinity and anti-affinity specifications, data locality, inter-workload interference, and deadlines.