Kubernetes 架构全景:关键组件分类详解

AI 协助说明: 本页由 Codex 协助核验和修复站内链接;正文的技术事实和适用范围未因本次修改而改变,仍以文中来源及当前官方文档为准。

本文边界:本文是 Kubernetes 关键组件与概念的分类总览,用于建立全局地图;组件间的协作链路和单个组件的实现细节另有专文展开。

推荐深读控制平面组件详解节点组件详解API Server 详解Kubelet 详解kube-proxy 详解Containerd 深度解析

Kubernetes 是一个复杂的分布式系统,由众多相互协作的组件构成。下面按照架构层次对所有关键组件和概念进行系统化分类:

1. 控制平面组件 (Control Plane)#

控制平面是集群的大脑,负责全局决策和状态管理。

组件核心功能关键特性
kube-apiserver集群的前端,暴露 Kubernetes APIRESTful 接口,认证授权,准入控制,API 聚合
etcd一致且高可用的键值存储保存集群所有状态数据,Raft 一致性算法,快照备份
kube-scheduler监控新创建的 Pod 并将其分配到节点多阶段调度(过滤、评分),亲和性/反亲和性,拓扑感知
kube-controller-manager运行控制器进程节点控制器、副本控制器、端点控制器、服务账户控制器
cloud-controller-manager与云提供商特定功能集成节点生命周期管理,路由配置,负载均衡器创建

2. 节点组件 (Node Components)#

节点组件在每个工作节点上运行,负责 Pod 的实际执行。

组件核心功能关键特性
kubelet节点代理,确保容器在 Pod 中运行静态 Pod 管理,健康检查,资源监控,CRI 交互
kube-proxy维护节点上的网络规则Service 负载均衡,iptables/IPVS 模式,连接跟踪
Container Runtime负责运行容器Containerd, CRI-O, Docker(已弃用)
CoreDNS集群 DNS 服务服务发现,DNS 记录自动创建,插件化架构

3. 核心工作负载 (Core Workloads)#

定义应用如何在集群中运行。

资源适用场景关键特性
Pod最小部署单元共享网络/存储命名空间,单容器或多容器协作
Deployment无状态应用副本管理,滚动更新,回滚,HPA 集成
StatefulSet有状态应用稳定网络标识,有序部署/扩缩容,持久化存储
DaemonSet节点级守护进程每节点一个 Pod,节点加入自动部署,监控/日志收集
Job/CronJob批处理任务完成后终止,定时执行,并行处理,重试策略

4. 服务发现与网络 (Service Discovery & Networking)#

实现集群内部和外部的网络通信。

概念功能实现方式
Service服务抽象ClusterIP, NodePort, LoadBalancer, ExternalName
IngressHTTP/HTTPS 路由Ingress Controller (Nginx, Traefik, ALB)
NetworkPolicy网络隔离入站/出站规则,标签选择器,CIDR 限制
CNI (Container Network Interface)容器网络标准Calico (BGP), Flannel (VXLAN), Cilium (eBPF), Weave Net
Service Mesh高级流量管理Istio, Linkerd, Consul Connect

5. 配置与存储 (Configuration & Storage)#

管理应用配置和数据持久化。

资源用途关键特性
ConfigMap非敏感配置数据环境变量,命令行参数,配置文件卷
Secret敏感数据TLS 证书,Docker 镜像拉取凭证,加密存储
Volume容器数据持久化emptyDir, hostPath, configMap, secret
PersistentVolume (PV)集群存储资源存储容量,访问模式,回收策略
PersistentVolumeClaim (PVC)存储请求动态供应,存储类选择,大小请求
StorageClass存储类型定义供应器参数,卷绑定模式,回收策略

6. 安全与策略 (Security & Policies)#

保障集群安全和合规。

组件功能关键特性
RBAC (Role-Based Access Control)权限管理Role/ClusterRole, RoleBinding/ClusterRoleBinding
ServiceAccountPod 身份令牌挂载,API 访问权限,自动令牌轮换
Pod Security AdmissionPod 安全策略privileged, baseline, restricted 级别
SecurityContext安全上下文runAsUser, runAsGroup, readOnlyRootFilesystem
Policy Engines高级策略执行OPA/Gatekeeper, Kyverno, Falco

7. 扩展与自定义 (Extensions & Customization)#

扩展 Kubernetes 功能。

机制用途实现方式
Custom Resource Definitions (CRD)扩展 API自定义资源类型,验证规则,子资源
Operators应用特定逻辑自动化Controller 模式,自定义资源状态管理
Admission Controllers拦截 API 请求MutatingAdmissionWebhook, ValidatingAdmissionWebhook
Scheduler Framework自定义调度预过滤,过滤,评分,绑定扩展点
Device Plugins硬件加速器支持GPU, FPGA, InfiniBand, SR-IOV

8. 可观测性 (Observability)#

监控、日志和追踪。

组件功能集成工具
Metrics Server资源指标收集支持 HPA, kubectl top 命令
kube-state-metrics对象状态指标Prometheus 指标暴露,集群状态监控
Logging 架构容器日志收集EFK (Elasticsearch, Fluentd, Kibana), Loki
Distributed Tracing请求链路追踪Jaeger, Zipkin, OpenTelemetry
Cluster Monitoring全局监控Prometheus, Grafana, Thanos

9. 自动扩缩容 (Autoscaling)#

动态调整资源。

机制作用对象扩缩容依据
Horizontal Pod Autoscaler (HPA)Pod 副本数CPU/内存使用率,自定义指标,外部指标
Vertical Pod Autoscaler (VPA)Pod 资源请求历史资源使用,推荐值,自动更新
Cluster Autoscaler节点数量调度失败 Pod,节点资源利用率,云提供商 API

10. 集群生命周期管理 (Cluster Lifecycle)#

集群部署、升级和维护。

工具用途特点
kubeadm集群引导工具初始化控制平面,加入节点,证书管理
Cluster API声明式集群管理跨环境一致,自定义基础设施提供者
kops生产级集群管理AWS 原生支持,滚动升级,高可用
kubectx/kubens上下文切换工具快速切换集群和命名空间
Velero备份与迁移资源备份,集群迁移,灾难恢复

11. 应用交付与 GitOps (Application Delivery & GitOps)#

现代应用部署模式。

模式工具核心理念
HelmChart 管理模板化部署,版本控制,依赖管理
Kustomize原生配置管理叠加配置,无需模板,kubectl 集成
Argo CDGitOps 持续交付声明式配置,自动同步,可视化
FluxGitOps 操作器自动部署,镜像更新自动化,多租户
TektonCI/CD 流水线Kubernetes 原生,可扩展,任务编排

12. 多集群与联邦 (Multi-cluster & Federation)#

跨集群管理。

方案用途实现
KubeFed (Cluster Federation)多集群资源分发跨集群服务发现,配置同步
Cluster Gateway API多集群网络统一入口,跨集群流量分发
Service Mesh 跨集群服务网格扩展Istio Multi-Mesh, Consul Service Mesh
Cluster API统一集群管理跨云/本地环境,声明式 API
Open Cluster Management集中式管理应用部署,策略执行,可观测性

13. 边缘计算 (Edge Computing)#

Kubernetes 扩展到边缘。

项目用途特点
K3s轻量级 Kubernetes低资源需求,单二进制,边缘优化
KubeEdge云边协同边缘节点管理,设备 CRD,离线操作
OpenYurt云原生边缘计算零侵入,边缘自治,流量闭环
MicroK8s单节点集群轻量,快速部署,内置插件

架构交互图#

graph TD
    subgraph Control Plane
        A[kube-apiserver] --> B[etcd]
        A --> C[kube-scheduler]
        A --> D[kube-controller-manager]
        A --> E[cloud-controller-manager]
    end
    
    subgraph Node 1
        F[kubelet] --> G[Container Runtime]
        H[kube-proxy] --> I[Network]
        J[CoreDNS] --> I
    end
    
    subgraph Node 2
        K[kubelet] --> L[Container Runtime]
        M[kube-proxy] --> N[Network]
    end
    
    subgraph Workloads
        O[Deployment] --> P[Pod]
        Q[StatefulSet] --> R[Pod]
        S[DaemonSet] --> T[Pod]
    end
    
    subgraph Networking
        U[Service] --> V[ClusterIP]
        W[Ingress] --> X[HTTP Router]
        Y[NetworkPolicy] --> Z[Firewall Rules]
    end
    
    subgraph Storage
        AA[ConfigMap/Secret] --> AB[Volume]
        AC[PersistentVolume] --> AD[PersistentVolumeClaim]
    end
    
    A --> F
    A --> K
    A --> Workloads
    Workloads --> Networking
    Workloads --> Storage
    F --> H
    K --> M
    H --> Networking
    M --> Networking

这个架构分类提供了 Kubernetes 生态系统的全景视图。在实际生产环境中,各组件不是孤立工作的,而是相互协作形成一个高度集成的系统。理解这些组件如何协同工作,以及它们在整体架构中的位置,是构建和运维高效、可靠 Kubernetes 集群的关键。

根据您的使用场景和需求,可以从这个全景图中选择适合的组件进行深入研究和实施。例如,对于初创公司可能专注于核心工作负载和服务发现;而对于大型企业,安全、多集群管理和 GitOps 可能更为关键。

参考#

kubernetes in Action

官方文档 https://kubernetes.io/zh/docs/home/

本文共 2257 字,创建于 Oct 9, 2022

相关标签: DevOps, Kubernetes, Tools, Linux