Skip to main content

Kubernetes_Architecture

Kubernetes Architecture

Kubernetes main components:

  • Master/worker nodes
  • Controllers
  • Services
  • Pods of containers
  • Namespaces and quotas
  • Network and policies
  • Storage

A Kubernetes cluster is composed of a master node and a set of worker nodes. The cluster is all driven via API calls to controllers (interior/exterior traffic).

k8s-architecture

Example, request to create a Pod

  1. User request to create a new Pod received by kube-apiserver.

  2. kube-apiserver queries etcd for number of current Pods.

  3. etcd responds to kube-apiserver with number of current Pods.

  4. kube-apiserver sends request to kube-controller-manager to create a new Pod.

  5. kube-controller-manager compares current and desired states and responds to kube-apiserver with need to spawn a new Pod.

  6. kube-apiserver sends request to kube-scheduler to schedule a new Pod. kube-scheduler responds to kube-apiserver with specific worker node where the Pod needs to be scheduled.

  7. kube-apiserver sends request to kubelet on Worker Node and to kube-proxy to change network configuration/routing (iptables, ipvs)

  8. kubelet communicates with container engine which communicates with the containers. A Service will expose the containers externally.

  9. kubelet and kube-proxy respond to kube-apiserver with changes made and current state.