基础概念

Kubernetes的整体架构

The control plane (kube-apiserver, etcd, kube-controller-manager, kube-scheduler) and several nodes. Each node is running a kubelet and kube-proxy.


ControlPlane/Master

image-20200117213438214

  • One or More API Servers: Entry point for REST / kubectl
  • etcd: Distributed key/value store
  • Controller-manager: 运行各种控制器,确保集群状态符合期望,包括:
控制器 职责
Node Controller 监控节点状态,节点宕机时响应
Job Controller 管理一次性任务
Deployment Controller 管理 Deployment 滚动更新
ReplicaSet Controller 确保 Pod 副本数正确
EndpointSlice Controller 维护 Service 和 Pod 的关联
ServiceAccount Controller 为新命名空间创建默认账户
  • Scheduler: Schedules pods to worker nodes
  • cloud-controller-manager:与云提供商 API 交互(仅云环境需要)

DataPlane/Worker

image-20200117213604188

  • Made up of worker nodes
  • kubelet: Acts as a conduit between the API server and the node
职责 说明
注册节点 向 API Server 注册自己
接收 PodSpec 从 API Server 获取分配的 Pod
管理容器 创建、启动、停止、删除容器
健康检查 执行 probe,重启不健康容器
资源监控 上报节点和 Pod 资源使用情况
卷管理 挂载/卸载存储卷
  • kube-proxy: Manages IP translation and routing
特点 说明
部署位置 每个节点一个
核心职责 维护网络规则,实现 Service 转发
可选组件 某些 CNI 插件可以替代它

kube-proxy 标记为 optional 的原因是因为某些 CNI 网络插件(如 Cilium)可以完全替代 kube-proxy:

方案 说明
kube-proxy 传统方式,iptables/ipvs
Cilium eBPF 实现,更高效
Calico eBPF eBPF 模式可替代 kube-proxy

传统:iptables 规则链 → 性能开销大;Cilium:eBPF 直接在内核处理 → 更快

kubernetes multi master nodes

ha-master-gce