Kubernetes相关的名词解释-关于组件分类(8)
前面7篇文章把Kubernetes中的一些组件做了不少介绍了,我们今天按照组件类型把组件划分一下,捋一捋做个小结,后续再继续介绍API Server、Scheduler其他组件。
在Kubernetes集群中,存在有控制平面组件以及Node组件两大类组件,在这两类组件中包含了多种不同功能的组件,这些组件共同保证了Kubernetes集群的正常运行。Kubernetes集群组件结构可参照下图:
一、控制平面组件(Control Plane Components)
控制平面负责集群的全局决策(如调度)、检测和响应集群事件(如部署新Pod)。通常运行在独立的Master节点上,高可用集群中会有多个副本。
核心组件:
-
kube-apiserver
-
作用:集群的入口,提供REST API,是所有资源操作的唯一入口(如
kubectl
的请求最终都交给它处理)。 -
特点:无状态,可水平扩展。
-
-
etcd
-
作用:分布式键值存储数据库,保存集群的所有状态数据(如Pod、Service、ConfigMap等)。
-
特点:高可用集群中需要多个实例(通常3/5个)。
-
-
kube-scheduler
-
作用:监视未调度的Pod,根据资源需求、亲和性等规则将其分配到合适的Node上。
-
调度策略:可自定义(如优先调度到SSD节点)。
-
-
kube-controller-manager
-
作用:运行一系列控制器(Controller),确保集群状态与预期一致。
-
核心控制器:
-
Node Controller(监控Node状态)
-
Replication Controller(维护Pod副本数)
-
Endpoints Controller(维护Service与Pod的映射)
-
其他(如Deployment、Namespace控制器等)。
-
-
-
cloud-controller-manager(可选,用于云环境)
-
作用:与云提供商API交互,管理负载均衡器、存储卷、节点生命周期等。
-
典型控制器:Node Controller、Route Controller、Service Controller。
-
二、节点组件(Node Components)
每个工作节点(Worker Node)上运行的组件,负责维护Pod的生命周期和容器运行时环境。
核心组件:
-
kubelet
-
作用:节点上的“代理”,负责与控制平面通信,确保Pod中的容器按预期运行。
-
功能:
-
接收Pod定义(通过API Server或本地静态Pod)。
-
挂载存储卷、下载Secrets。
-
调用容器运行时(如Docker/containerd)启动容器。
-
监控容器健康状态并上报。
-
-
-
kube-proxy
-
作用:维护节点上的网络规则(如iptables/IPVS),实现Service的负载均衡和流量转发。
-
关键功能:
-
将Service的虚拟IP映射到后端Pod。
-
处理集群内/外的网络通信。
-
-
-
容器运行时(Container Runtime)
-
作用:负责运行容器的底层软件(如Docker、containerd、CRI-O)。
-
标准:需支持Kubernetes CRI(Container Runtime Interface)。
-
三、附加组件(通常归类为控制平面或独立部署)
-
CoreDNS:集群内部的DNS服务,解析Service名称。
-
Metrics Server:收集资源监控数据(如
kubectl top
)。 -
CNI插件(如Calico、Flannel):实现Pod间网络通信。
-
Ingress Controller(如Nginx Ingress):管理外部访问集群的流量。
四、组件小结
类别 | 组件 | 部署位置 |
---|---|---|
控制平面 | kube-apiserver | Master节点 |
etcd | Master节点(或独立集群) | |
kube-scheduler | Master节点 | |
kube-controller-manager | Master节点 | |
cloud-controller-manager | Master节点(云环境) | |
节点组件 | kubelet | 所有Worker节点 |
kube-proxy | 所有Worker节点 | |
容器运行时 | 所有Worker节点 |