前言
Kubernetes 采用主从(master-node)架构模式,主要由主节点,也称 控制平面(Control Plane)和工作节点(node)组成。
master 节点职责:
- 集群管理:负责整个集群的全局决策和状态管理
- API服务:通过 kube-apiserver 提供集群的统一入口,处理所有操作请求
- 调度决策:由 kube-scheduler 决定 Pod 应该运行在哪个节点上
- 状态维护:通过控制器管理器(kube-controller-manager)确保集群实际状态与期望状态一致
- 数据存储:使用 etcd 持久化存储集群的所有配置数据和状态信息
node 节点职责:
- 容器运行:负责该节点的容器运行
- Pod生命周期管理:通过 kubelet 管理节点上 Pod 的创建、启动和停止
- 网络代理:由 kube-proxy 维护节点网络规则,实现服务发现和负载均衡
- 资源报告:向控制平面报告节点资源使用情况和容器状态
- 容器运行时:通过 Docker/containerd 等运行时实际执行容器操作
master 节点
master 节点是 Kubernetes 集群的控制节点,运行着例如 kube-apiserver、kube-scheduler 等核心系统组件,为了避免用户 Pod 与系统组件竞争资源,导致集群不稳定,默认情况下,Master 节点不允许部署用户 Pod。
系统核心组件运行在kube-system
命名空间下,如下是一个集群默认运行的系统组件:
> kubectl get po -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-6d58d46f65-26k5m 1/1 Running 0 18d
coredns-6d58d46f65-5dpbm 1/1 Running 0 18d
etcd-node 1/1 Running 2 18d
kube-apiserver-node 1/1 Running 2 18d
kube-controller-manager-node 1/1 Running 2 18d
kube-proxy-lcc5j 1/1 Running 0 18d
kube-scheduler-node 1/1 Running 9 (8d ago) 18d
- coredns Kubernetes 集群默认的 DNS 服务组件,用于提供基于 Service 名称的 DNS 解析服务,将 Service 名称解析为对应的 ClusterIP,支持Pod通过服务名而非硬编码IP访问其他服务等。
- etcd 分布式键值数据库,用于持久化保存Kubernetes所有对象数据(Pod、Service等),集群配置信息和节点状态、网络配置和Secret等敏感数据。
- kube-apiserver 整个集群的控制中枢,提供集群管理的REST API接口,处理所有资源对象(Pod、Service等)的增删改查操作。
- kube-controller-manager 集群状态管理器,负责运行各种控制器(Controller)来确保集群状态与期望配置保持一致。例如我们期望运行三个Pod,控制器会负责创建 Pod 或 销毁多余的 Pod。
- kube-proxy 集群的关键网络组件,运行在每个工作节点上,主要负责实现Service的网络代理和负载均衡功能。为Service提供稳定的虚拟IP(ClusterIP)作为访问入口,实现4层(TCP/UDP)负载均衡等。
- kube-scheduler 集群的核心调度组件,负责将新创建的Pod分配到合适的节点上运行。通过 API Server 监听获取未调度的Pod信息,再根据调度策略为Pod选择最优节点。
node 节点
node 节点是 Kubernetes 集群中实际运行工作负载的节点,负责执行由 master 节点分配的任务。集群中的每个 node 节点都必须具备容器的Runtime(运行时),比如 Docker 或其他遵循 CRI 标准的 Runtime 等。
node 节点主要处理以下任务:
- 部署 Pod
- 为容器提供计算、存储和网络资源
- 定期向 Master 节点汇报自身状态(资源使用情况、Pod运行状态等)
- 监控容器健康状况并自动重启故障容器
node 节点的核心组件:
- kubelet Kubelet 作为守护进程运行在 Worker 节点上,负责与Master通信协作,管理该节点上的Pod,对容器进行健康检查及监控,同时负责上报节点和节点上面Pod的状态。
- kube-proxy 负责实现Service的网络代理和负载均衡功能。为Service提供稳定的虚拟IP(ClusterIP)作为访问入口,实现4层(TCP/UDP)负载均衡等。
- CRI 容器运行时,负责对容器的管理维护