type
status
date
slug
summary
category
tags
create_time
Aug 11, 2025 09:33 AM
icon
password
my_create_time
📝 前言
Kubernetes 集群是由一个控制平面和一组用于运行容器化应用的工作机器组成,这些工作机器称工作节点(Node)。
在控制平面中 kube-apiserver 是所有组件沟通的唯一入口,就像集群的大脑中枢,负责接收、校验和处理所有 API 请求。
本文是云原生之旅第三部分的第二篇,主要介绍 kube-apiserver 组件。
🧠 本章知识卡片

🚀 本章小节
1️⃣ Kubernetes 集群架构

组件说明:
- Cloud Controller Manager(可选):与云服务商(如AWS、Azure)交互,管理负载均衡、存储卷等云资源。
- API Server(kube-apiserver):负责与其他组件(如kubectl、控制器、调度器)通信。
- Scheduler(kube-scheduler):监听未调度的Pod,根据资源需求、节点负载等因素,将Pod分配到合适的Worker节点。
- Controller Manager(kube-controller-manager):运行一系列控制器(Controller),确保集群状态符合预期。
- etcd:分布式键值存储数据库,保存集群的所有配置数据和状态(如Pod、Service信息)。
- kubelet:节点上的“代理”,负责与API Server通信,确保Pod按预期运行(如启动/停止容器、监控资源)。
- kube-proxy(可选):维护节点上的网络规则(如iptables/IPVS),实现 Service 的负载均衡和流量转发。有些网络插件自己实现了流量代理就不需要该组件,例如:Cilium、kube-router 等
- CRI(Container Runtime):容器运行时,例如:Docker、containerd、CRI-O。
2️⃣ kube-apiserver 工作原理
kube-apiserver 是 Kubernetes 的“中央枢纽”,所有集群操作(无论是来自用户、控制器还是节点)都必须经过它。
但它本身并不存储数据,所有状态由
etcd
管理。它在集群中的数据流程大致如下图:

PS:这里省去了认证、鉴权等部分。
3️⃣ kube-apiserver 作用与定位
在 Kubernetes 架构中,kube-apiserver 扮演以下角色:
- 统一的 API 接口
对外提供 RESTful API,供用户、控制器和节点组件调用。
- 身份认证与权限控制
处理请求时进行认证(Authentication)和鉴权(Authorization)。
- 数据验证与持久化
校验资源对象的合法性,并将其存储到 etcd。
- 集群状态查询与变更
所有状态读取、修改均通过它转发给 etcd 或相关控制器。
4️⃣ kube-apiserver 功能特性
kube-apiserver
的主要功能特性包括以下:- 声明式 API:基于 YAML/JSON 的资源描述文件,适合 GitOps。
- 无状态设计:kube-apiserver 本身不存储数据,可通过部署多副本提高可用性。
- 多版本 API 支持:通过版本号(如 v1、v1beta1)实现平滑升级。
- Watch 机制:支持长连接实时推送资源变更事件。
- 聚合层(Aggregation Layer):允许扩展自定义 API(CRD)。
5️⃣ 常见启动参数
以下是 kube-apiserver 常用的部分启动参数:
参数 | 说明 |
--bind-address | 监听的 IP 地址(建议改为内网 IP,如 172.16.0.1 ) |
--advertise-address | 向集群其他组件通告的 API Server IP(多网卡时需指定) |
--etcd-servers | etcd 集群的访问地址 |
--authorization-mode | 鉴权模式(RBAC、Node、Webhook 等) |
--enable-admission-plugins | 启用的准入控制插件列表 |
--service-cluster-ip-range | Service ClusterIP 可分配的网段(需与 CNI 插件匹配) |
--client-ca-file | 客户端 CA 证书文件路径 |
--tls-cert-file / --tls-private-key-file | API Server 的 TLS 证书与私钥 |
提示:生产环境中 kube-apiserver 通常会以静态 Pod 方式由 kubelet 管理,配置文件路径位于
/etc/kubernetes/manifests/kube-apiserver.yaml
。✅ 总结
kube-apiserver 是 Kubernetes 集群的唯一 API 入口,承担了请求接收、认证鉴权、数据校验、持久化和事件分发等重要职责。
它的本质是一个 “状态机”:
1. 接收请求 → 2. 验证请求 → 3. 持久化到 etcd → 4. 推送变更事件。
其核心设计目标是:安全地暴露集群状态,并高效协调组件协作。
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
- 作者:青萍叙事
- 链接:https://blog.lusyoe.com/article/kubernetes-kube-apiserver-introduction
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。