Kubernetes API 架构 | 作者:Daniele Polencic - Medium

作者:API传播员 · 2026-01-09 · 阅读时间:3分钟
Kubernetes API 服务器是集群核心组件,负责身份验证、授权和资源管理,通过准入控制器自动补全YAML配置,并支持验证与变更机制,如Istio注入容器和Gatekeeper策略检查,同时具备高度可扩展性,允许自定义API集成。

Kubernetes API 架构解析

Kubernetes API 服务器是 Kubernetes 集群的核心组件之一,负责处理集群的所有请求。它本质上是一个功能强大的网络服务器,支持身份验证、授权以及资源管理等功能。


Kubernetes API 的核心功能

Kubernetes API 服务器的主要职责包括:

  • 身份验证:确保请求者有权访问集群。
  • 授权:允许用户创建、删除、列出等操作资源。

API 服务器会将请求传递给 准入控制器(Admission Controller),该组件负责对请求进行进一步处理和验证。


准入控制器的作用

准入控制器的主要任务是检查和修改用户提交的 YAML 文件。如果某些配置缺失,准入控制器会自动补全。例如:

  1. 如果未设置默认服务账户,准入控制器会自动为资源分配默认服务账户。
  2. 自动为资源添加使用令牌的卷。

此外,准入控制器还可以执行更多操作,以确保资源的配置符合内部架构的要求。


验证和变更的实现

Kubernetes API 服务器在资源到达 etcd 之前会进行多层次的验证和变更:

  • 变更(Mutation):例如,Istio 会自动向所有 Pod 注入一个额外的容器。
  • 验证(Validation):例如,Gatekeeper(基于开放策略代理 OPA)会根据预定义的策略检查资源,并报告任何违规行为。

具体流程如下:

  1. 请求被反序列化。
  2. 在内存中创建运行时对象。
  3. 最终,将新的资源表示持久化到 etcd 中。

Kubernetes API 的可扩展性

Kubernetes API 的设计非常灵活,允许用户扩展其功能。您可以添加自定义 API,并将其注册到 Kubernetes 中。例如,度量 API 服务器就是一个典型的扩展案例。

值得注意的是,自定义 API 可以与 Kubernetes 的现有模块无缝集成,充分利用 API 服务器的身份验证和授权功能。


通过以上解析,我们可以看到 Kubernetes API 的架构设计不仅功能强大,还具有高度的灵活性和可扩展性。这使得 Kubernetes 成为现代容器编排系统的核心选择。

原文链接: https://medium.com/@danielepolencic/the-kubernetes-api-architecture-81da0ede0e34