Kubernetes 的工作原理及组件
·
摘要:
Kubernetes(简称 K8s)是一个开源的容器化应用编排与集群管理平台,专门用来管理一堆装着应用的容器。它会自动把应用放到合适的机器上运行,机器挂了就自动迁移、应用崩了就自动重启、流量大了就自动多开几个副本,还能统一管理配置、网络、存储和安全。不管你用的是本地服务器还是云服务器,K8s 都能让分布式应用稳定运行、轻松维护,是现在企业部署和管理微服务最主流的平台。
组件及工具:
Kubernetes 组件按角色分为控制面组件(Control Plane)、工作节点组件(Node Components)和附加工具与扩展组件,各组件协同实现集群的全生命周期管理:
一、控制面组件(集群 “大脑”,负责全局决策)
-
kube-apiserver
- 核心作用:集群的统一入口,所有组件(kubectl、kubelet、控制器等)都通过它与 etcd 交互,提供 RESTful API 接口,负责认证、授权、准入控制和 API 路由转发。
- 特点:无状态、可水平扩展,是集群所有操作的 “网关”。
-
etcd
- 核心作用:分布式键值存储,持久化存储集群所有元数据(如 Pod、Service、Namespace 定义与状态),保证数据强一致性和高可用。
- 特点:采用 Raft 协议实现分布式一致性,是集群状态的唯一可信来源。
-
kube-scheduler
- 核心作用:负责将新创建的、未绑定节点的 Pod 调度到合适的工作节点,调度时综合考虑资源需求、节点亲和 / 反亲和、污点容忍、资源利用率等策略。
- 特点:无状态,可多实例部署,通过抢占式选举保证高可用。
-
kube-controller-manager
- 核心作用:运行一系列控制器(Controller),如 ReplicaSet、Deployment、Node、Endpoint 等控制器,持续监控集群状态,确保实际状态与期望状态一致。
- 特点:每个控制器负责一类资源的自动化管理,如 ReplicaSet 控制器保证 Pod 副本数符合预期。
-
cloud-controller-manager(可选)
- 核心作用:对接云厂商服务(如云存储、负载均衡、虚拟机),将云厂商能力与 K8s 集成,实现云资源的自动化管理(如自动创建云盘 PV、负载均衡 Service)。
- 特点:与云厂商强相关,本地集群通常不部署。
二、工作节点组件(集群 “工人”,负责运行应用)
-
kubelet
- 核心作用:每个节点上的代理,负责管理本节点的所有 Pod,与控制面通信,接收 Pod 调度指令,创建 / 销毁容器,监控容器健康状态并上报。
- 特点:是节点与控制面的 “桥梁”,必须在所有节点上运行。
-
kube-proxy
- 核心作用:维护节点上的网络规则,实现 Service 的负载均衡和服务发现,通过 iptables 或 IPVS 模式转发流量,确保 Pod 能通过 Service 访问到对应后端。
- 特点:每个节点上运行,保证集群内网络可达性。
-
容器运行时(Container Runtime)
- 核心作用:负责容器的生命周期管理(创建、启动、停止、删除),如拉取镜像、管理容器资源隔离。
- 常用实现:containerd(主流)、CRI-O、Docker(已逐步被 containerd 替代)。
三、增强集群能力的附加工具与扩展组件
-
kubectl
- 核心作用:K8s 命令行工具,通过 API Server 与集群交互,支持资源创建、更新、删除、查看、调试等操作,是运维人员最常用的工具。
-
CoreDNS
- 核心作用:集群默认的 DNS 服务,为 Pod 提供域名解析(如 Service 域名解析到对应 ClusterIP),实现服务发现。

更多推荐

所有评论(0)