K8s核心组件

前言

        Kubernetes 是一个开源的容器编排系统,其架构主要分为控制平面(Control Plane)和工作节点(Node)。掌握 Kubernetes 的核心组件及其职责是深入理解和管理 Kubernetes 集群的基础。


一、控制平面组件(Control Plane Components)

        控制平面负责管理整个 Kubernetes 集群,包括调度、控制和集群状态维护。

1. kube-apiserver

功能职责

  • 提供 Kubernetes API 接口,是集群控制的中心入口;

  • 接收用户请求并进行认证、授权、准入控制;

  • 所有组件均通过 kube-apiserver 与集群通信;

  • 将请求数据持久化存储至 etcd。

特点

  • 支持高可用部署;

  • 支持扩展及 webhook。

2. etcd

功能职责

  • 是 Kubernetes 的唯一状态数据存储组件,保存整个集群的所有配置信息和状态数据;

  • 提供一致性和高可用性。

最佳实践

  • 推荐部署为奇数个节点(如 3/5 个)以避免脑裂;

  • 支持数据快照备份与恢复。

3. kube-scheduler

功能职责

  • 负责将新创建的 Pod 调度到合适的工作节点上;

  • 根据资源使用、亲和性、污点容忍等规则进行调度决策。

调度过程

  1. 过滤阶段:排除不满足调度要求的节点;

  2. 打分阶段:为候选节点打分,选取得分最高者。

可扩展性

  • 支持调度器扩展和自定义插件。

4. kube-controller-manager

功能职责

  • 运行多个控制器,每个控制器维护集群中某一类资源的期望状态;

  • 典型控制器包括:

    • Node Controller:监控节点状态;

    • ReplicaSet Controller:保证副本数量;

    • Deployment Controller:管理部署过程;

    • Job Controller:管理一次性任务;

    • ServiceAccount Controller:自动创建访问凭据。

控制循环机制

  • 不断对比实际状态和期望状态,并进行纠正。

5. cloud-controller-manager(可选)

功能职责

  • 管理与云平台(如 AWS、GCP、Azure)的交互;

  • 控制云服务资源,如负载均衡器、云磁盘等。


二、工作节点组件(Node Components)

Node 节点负责运行具体的容器化应用,由以下组件构成:

1. kubelet

功能职责

  • 是运行在每个节点上的核心代理进程;

  • 接收 kube-apiserver 的指令并对本地容器进行管理;

  • 负责容器的生命周期、健康检查、状态汇报等。

工作方式

  • 定期向 apiserver 汇报节点与 Pod 状态;

  • 与容器运行时通信(通过 CRI 接口)。

2. kube-proxy

功能职责

  • 实现 Service 的访问负载均衡和网络转发;

  • 根据服务规则配置节点的 iptables 或 IPVS。

运行模式

  • iptables 模式(默认):基于规则转发;

  • IPVS 模式:性能更好,适用于大规模集群。

3. 容器运行时(Container Runtime)

功能职责

  • 实际负责拉取镜像、启动和管理容器;

主流实现

  • Docker(已逐步被弃用);

  • containerd(主流选择);

  • CRI-O(Kubernetes 原生运行时)。

接口协议

  • 使用 CRI(Container Runtime Interface) 与 kubelet 解耦。


三、插件接口标准

1. CNI(Container Network Interface)

  • Kubernetes 使用 CNI 插件管理 Pod 网络;

  • 典型插件:Flannel、Calico、Cilium、Weave Net。

2. CSI(Container Storage Interface)

  • 提供统一的存储接口标准;

  • 支持挂载 NFS、Ceph、云磁盘等。


四、总结

        Kubernetes 的核心组件相互协作,形成强大的容器编排系统。控制平面专注于集群管理逻辑,工作节点负责实际应用运行。了解这些组件的职责和运行机制,是构建高可用、稳定、可扩展容器平台的基础。

        建议结合实际 YAML 操作与集群部署实践,深入掌握各组件的行为与调优方法。

你可能感兴趣的:(#,基础,kubernetes,容器,云原生)