Kubernetes: Internal: Basic

 9th June 2021 at 11:59am

k8s 的组件主要分为两部分:控制面(control plane)组件和 worker node 组件:

The Control PlaneOn the worker nodeAdd-on Component
• etcd
• API Server
• Scheduler
• Controller Manager
• kubelet
• kube-proxy
• Container Runtime
• kube-dns
• Dashboard
• Ingress Controller
• Heapster
• CNI network plugin

除了 kubelet 必须是一个普通的进程外,其他组件可以是普通进程,也可以是 以 pod 形式运行 的(事实上大多是以 pod 形式)。Master node 也往往有 kubelet 用来运行控制面的组件。

Worker node 上的组件是必须全部跑在 worker node,但是 master 的组件可以分布在不同的 node,也可以跑多个实例做高可用。其中 etcd 和 kube-api-server 是可以并行(parallel)运行的,但 scheduler 和 controller manager 同一时间只能各自有一个实例运行。

k8s 的组件只与 kube-api-server 通信。etcd 只被 kube-api-server 读写。