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 下发指令)
相关推荐
众壹新能源科技5 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
..Dauntless..5 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
QMCY_jason5 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特5 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
考拉讲支付5 小时前
母婴亲子服务平台分账架构设计:多场景多方分账与合规清结算实践
大数据·运维·人工智能·微信小程序·架构·微信公众平台
LateFrames5 小时前
“场控软件” 如何容错与运维
运维·容错·led大屏·播控系统·场控软件
あ-5 小时前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
艾伦_耶格宇6 小时前
【DOCKER容器实战】-5 Docker容器镜像的构建
运维·docker·容器
速捷工控 PLC触摸屏还原程序6 小时前
S7-200 SMART程序上传提示密码?维修、改造和换机怎么选处理路径?
运维·服务器
程序员-Benothing7 小时前
Linux抓包分析教程:tcpdump、Wireshark、tshark实战
linux·运维·服务器