Kubernetes API
Kubernetes 控制面 的核心是 。 API 服务器负责提供 HTTP API,以供用户、集群中的不同部分和集群外部组件相互通信。
Kubernetes API 使你可以查询和操纵 Kubernetes API 中对象(例如:Pod、Namespace、ConfigMap 和 Event)的状态。
大部分操作都可以通过 kubectl 命令行接口或 类似 这类命令行工具来执行, 这些工具在背后也是调用 API。不过,你也可以使用 REST 调用来访问这些 API。
如果你正在编写程序来访问 Kubernetes API,可以考虑使用 客户端库之一。
完整的 API 细节是用 来表述的。
Kubernetes 为 API 实现了一种基于 Protobuf 的序列化格式,主要用于集群内部通信。 关于此格式的详细信息,可参考 Kubernetes Protobuf 序列化 设计提案。每种模式对应的接口描述语言(IDL)位于定义 API 对象的 Go 包中。
OpenAPI V3
FEATURE STATE: Kubernetes v1.23 [alpha]
Kubernetes v1.23 提供将其 API 以 OpenAPI v3 形式发布的初始支持;这一功能特性处于 Alpha 状态,默认被禁用。 你可以通过为 kube-apiserver 组件启用 OpenAPIV3
特性门控来启用此 Alpha 特性。
特性被启用时,Kubernetes API 服务器会在端点 /openapi/v3/apis/<group>/<version>
提供按 Kubernetes 组版本聚合的 OpenAPI v3 规范。 请参阅下表了解可接受的请求头部。
头部 | 可选值 | 说明 |
---|---|---|
Accept-Encoding | 不提供此头部也是可接受的 | |
Accept | application/com.github.proto-openapi.spec.v3@v1.0+protobuf | 主要用于集群内部使用 |
application/json | 默认 | |
* | 以 application/json 形式返回 |
发现端点 被提供用来查看可用的所有组、版本列表。 此列表仅返回 JSON。
一般而言,新的 API 资源和新的资源字段可以被频繁地添加进来。 删除资源或者字段则要遵从 。
Kubernetes 对维护达到正式发布(GA)阶段的官方 API 的兼容性有着很强的承诺, 通常这一 API 版本为 v1
。此外,Kubernetes 在可能的时候还会保持 Beta API 版本的兼容性:如果你采用了 Beta API,你可以继续在集群上使用该 API, 即使该功能特性已进入稳定期也是如此。
Note:
尽管 Kubernetes 也努力为 Alpha API 版本维护兼容性,在有些场合兼容性是无法做到的。 如果你使用了任何 Alpha API 版本,需要在升级集群时查看 Kubernetes 发布说明, 以防 API 的确发生变更。
关于 API 版本分级的定义细节,请参阅 API 版本参考页面。
- 你可以使用 来以声明式方式定义 API 服务器如何提供你所选择的资源 API。
- 了解如何通过添加你自己的 CustomResourceDefinition 来扩展 Kubernetes API。
- 页面描述了集群如何针对 API 访问管理身份认证和鉴权。
- 通过阅读 API 参考了解 API 端点、资源类型以及示例。
最后修改 March 30, 2022 at 2:26 PM PST: