此页提供 Kubernetes API 的总览
REST API 是 Kubernetes 的基础架构。组件之间的所有操作和通信,以及外部用户命令都是 API Server 处理的 REST API 调用。因此,Kubernetes 平台中的所有资源被视为 API 对象,并且在 API 中都有对应的定义项。
大多数操作可以通过 kubectl 命令行界面或其他命令行工具执行,例如 kubeadm,它们本身也使用 API。但是,您也可以使用 REST 调用直接访问 API。
如果您正在使用 Kubernetes API 编写应用程序,请考虑使用 客户端库。
为了消除字段或重组资源表示形式,Kubernetes 支持多个 API 版本,每个版本在不同的 API 路径下。例如:/api/v1
或者 /apis/extensions/v1beta1
。
版本是在 API 级别而非资源或字段级别配置的:
JSON 和 Protobuf 序列化模式在出现模式变更时均遵循这些准则。以下说明同时适用于这两种格式。
注意:API 版本和软件版本是间接相关的。API 和发布版本建议 描述了 API 版本和软件版本之间的关系。
不同的 API 版本表示不同级别的稳定性和支持级别。您可以在 API 变更文档 中找到有关每个级别的条件的更多信息。
以下是每个级别的摘要:
Alpha:
alpha
(例如,v1alpha1
)。Beta:
beta
(例如,v2beta3
)。注意:请试用 Beta 版功能并提供反馈。功能结束 Beta 版之后,再进行变更可能是不切实际的。
vX
,其中X
为整数。API 组 使扩展 Kubernetes API 更容易。API 组在 REST 路径和序列化对象的 apiVersion 字段中指定。
当前,有几个正在使用的 API 组:
/api/v1
上,未指定为 apiVersion 字段的一部分,例如apiVersion: v1
。/apis/$GROUP_NAME/$VERSION
下,并使用apiVersion:$GROUP_NAME/$VERSION
(例如,apiVersion:batch/v1
)。您可以在 Kubernetes API 参考 中找到受支持的 API Group 的完整列表。有两种途径来使用 自定义资源 扩展 API,分别是:
默认情况下,某些资源和 API 组处于启用状态。您可以通过设置--runtime-config
来启用或禁用它们。
--runtime-config
接受逗号分隔的值。例如:
- 要禁用 batch/v1
,请配置--runtime-config=batch/v1=false
- 要启用 batch/2alpha1
,请配置--runtime-config=batch/v2alpha1
该标志接受描述 apiserver 的运行时配置的以逗号分隔的key=value
对集合。
注意:启用或禁用组或资源时,需要重新启动 apiserver 和控制器管理器以刷新
--runtime-config
的更改。
默认情况下 DaemonSet、Deployment、HorizontalPodAutoscalers、Ingress、Jobs 和 ReplicaSets 是被启用的。
您可以通过在 apiserver 上设置--runtime-config
来启用其他扩展资源。--runtime-config
接受逗号分隔的值。
例如,要禁用 Deployments 和 Jobs,请设置 --runtime-config=extensions/v1beta1/deployments=false,extensions/v1beta1/jobs=false
此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问 Stack Overflow. 在 GitHub 仓库上登记新的问题 报告问题 或者 提出改进建议.