K8s---组件

K8s官网---组件

本文是一份 K8s 组件学习笔记,覆盖了:

1.控制平面 5 大组件(apiserver、etcd、scheduler、controller-manager、kubectl)

2.节点 3 大组件(kubelet、kube-proxy、容器运行时)

3.插件与附件(CoreDNS、Ingress、CNI、Dashboard、监控、日志)

4.各组件的管理关系图(systemd → kubelet → Pod)

如果你是正在学 K8s 的运维,或者刚接手集群不久,看完这篇至少能让你少踩坑。

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

作用:为集群做全局决策(调度、检测、响应)。

组件 一句话核心作用 关键补充
kubectl 命令行工具,用户通过它向集群发指令 是客户端工具,不是集群内部组件
kube-apiserver 集群的唯一入口,所有操作都得经过它 负责认证、授权、准入控制 ,是控制平面的前端
etcd 数据库,存储集群所有数据 分布式、高可用,基于 RAFT协议 保证一致性
kube-scheduler 调度器 ,为新Pod选一个最合适的节点运行 考虑资源、约束、亲和性等因素
kube-controller-manager 控制器总管 ,确保集群状态始终符合期望 负责副本数、故障恢复、滚动更新等

你通过 kubectl 发指令给 kube-apiserver ,它把数据存到 etcd ,scheduler 给新Pod找节点,controller-manager 确保Pod数量始终正确。

2.节点组件(Node Components)

作用 :每个节点上都要运行的组件,负责真正把Pod跑起来。

组件 一句话核心作用 关键补充
kubelet 节点的"包工头 ",负责创建/管理/销毁Pod里的容器 只认API Server的指令;不管理非K8s容器(如手动docker run的)
kube-proxy 节点的"网络规则维护员 ",负责服务发现+负载均衡 维护iptables/IPVS规则,让流量能正确找到Pod;理论上可以不用(由其他网络插件替代)
容器运行时 真正启动/停止容器的底层软件 如 containerd、CRI-O ,必须实现CRI接口

kubelet 接到API Server指令 → 调用容器运行时 启动容器 → kube-proxy 写好网络规则让别人能访问到这个Pod。

3.插件与附件(Addons)

本质 :它们都是以Pod形式运行 在 kube-system 命名空间下的扩展组件,非必需,按需安装 。

("插件"和"附件"在英文里都是 Addons,只是书中按功能分了类),官网也没有分类,这里分一下方便理解

3.1插件(核心功能)
插件 一句话作用 关键说明
CoreDNS 集群内部的DNS电话簿 让Pod能通过服务名 (如 my-service)访问彼此,而不是靠会变的IP
Ingress Controller 7层(HTTP/HTTPS)入口网关 Service做的是4层转发(IP+端口),它让你能按域名/URL路径路由流量到不同服务
网络插件(CNI) 给Pod分配IP并打通网络 实现K8s网络模型的底层保障,没有它Pod无法跨节点通信
3.2附件(运维工具)
附件 一句话作用 关键说明
Dashboard K8s的图形化控制台 在浏览器里管理集群,适合日常巡检
Federation 多集群统一管理 跨云/跨机房,把多个K8s集群拼成一个大集群
容器资源监控 收集并展示CPU/内存等指标 通常由 Prometheus + Grafana 实现
集群层面日志 集中收集所有Pod的日志 把分散在各节点的日志汇总到一起(如 EFK/ELK)

手写笔记:

(帮助理解& 解答一些困惑)

各组件管理关系

text 复制代码
节点操作系统
    └── systemd(系统进程管理器)
            ├── 管理 kubelet 进程(系统服务)
            ├── 管理 containerd 进程(系统服务)
            └── 管理 kube-proxy 进程(系统服务,传统安装方式)
                    │
                    ▼
            kubelet(启动后,开始管理 Pod)
                    ├── 管理 静态 Pod(控制平面组件)
                    │       └── apiserver、etcd、scheduler、controller-manager
                    │           (YAML 在 /etc/kubernetes/manifests/)
                    │
                    └── 管理 普通 Pod(插件/业务应用)
                            └── CoreDNS、Calico、Nginx...
                                (通过 API Server 下发指令)
相关推荐
万博智云OneProCloud11 小时前
GPU 资源池化最佳实践:规划、调度、监控与运营的五步方法
kubernetes·算力调度·ai基础设施·gpu池化·agione·powerone
YoungStudyAI14 小时前
QA的下一个自动化阶段,可能不是再写更多脚本,而是设计测试Agent
运维·自动化
分布式存储与RustFS15 小时前
纠删码到底吃掉了多少容量:EC:4、EC:8 的利用率与容错怎么算
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
遇见小修修15 小时前
3步解决打印机0x00000709报错 ,广州深圳程序员可自行排查
运维·打印机·维修·打印机报错·打印机运维·打印机故障自查
Huangjin007_17 小时前
【Linux 系统篇(二十五)】文件(二) 系统文件I/O详解
linux·运维·服务器
微小冷17 小时前
Mermaid画甘特图
运维·markdown·甘特图·mermaid·时间图
念何架构之路17 小时前
zap日志SugaredLogger 剖析
云原生·golang
LBL122018 小时前
内网容器部署FTP日志监控服务
运维·服务器·容器
志栋智能18 小时前
超自动化巡检:驱动持续改进的运维飞轮
运维·自动化
海宇大数据18 小时前
零信任架构实战:基于海宇学历核验版构建自动化风控审查网关
运维·人工智能·架构·自动化