API 概述

本节提供 Kubernetes API 的参考信息。

REST API 是 Kubernetes 的基础结构。组件之间以及与外部用户命令之间的所有操作和通信都是由 API 服务器处理的 REST API 调用。因此,Kubernetes 平台中的一切都被视为 API 对象,并且在 API 中有相应的条目。

Kubernetes API 参考列出了 Kubernetes v1.33 版本的 API。

如需一般背景信息,请阅读Kubernetes API控制对 Kubernetes API 的访问描述了客户端如何向 Kubernetes API 服务器进行身份验证,以及其请求如何被授权。

API 版本控制

JSON 和 Protobuf 序列化模式遵循相同的模式变更准则。以下描述涵盖了这两种格式。

API 版本控制和软件版本控制间接相关。API 和发布版本控制提案描述了 API 版本控制和软件版本控制之间的关系。

不同的 API 版本表明不同的稳定性和支持级别。你可以在API 变更文档中找到有关每个级别标准的更多信息。

以下是每个级别的摘要

  • Alpha

    • 版本名称包含 alpha(例如,v1alpha1)。
    • 内置的 alpha API 版本默认是禁用的,必须在 kube-apiserver 配置中显式启用才能使用。
    • 软件可能包含错误。启用特性可能会暴露错误。
    • 对 alpha API 的支持可能随时取消,恕不另行通知。
    • API 在后续软件版本中可能以不兼容的方式变更,恕不另行通知。
    • 软件仅建议用于短时测试集群,因为错误风险较高且缺乏长期支持。
  • Beta

    • 版本名称包含 beta(例如,v2beta3)。

    • 内置的 beta API 版本默认是禁用的,必须在 kube-apiserver 配置中显式启用才能使用(除了在 Kubernetes 1.22 之前引入的 beta 版本 API,它们默认是启用的)。

    • 内置的 beta API 版本从引入到废弃的最长生命周期是 9 个月或 3 个小版本(取较长者),从废弃到移除的最长生命周期是 9 个月或 3 个小版本(取较长者)。

    • 软件经过充分测试。启用特性被认为是安全的。

    • 对特性的支持不会取消,尽管细节可能会变更。

    • 对象的 schema 和/或语义在后续的 beta 或稳定版 API 版本中可能以不兼容的方式变更。发生这种情况时,会提供迁移说明。适应后续的 beta 或稳定版 API 版本可能需要编辑或重新创建 API 对象,并且可能不直接。迁移可能需要依赖该特性的应用停机。

    • 软件不推荐用于生产环境。后续版本可能引入不兼容的变更。一旦 beta API 版本被废弃且不再提供服务,必须使用 beta API 版本过渡到后续的 beta 或稳定版 API 版本。

  • Stable

    • 版本名称是 vX,其中 X 是一个整数。
    • 在 Kubernetes 的主要版本中,稳定的 API 版本在所有未来版本中都可用,并且目前没有移除稳定版 API 的 Kubernetes 主要版本修订计划。

API 组

API 组使得扩展 Kubernetes API 更加容易。API 组在 REST 路径和序列化对象的 apiVersion 字段中指定。

Kubernetes 中有几个 API 组

  • 核心组(也称为遗留组)位于 REST 路径 /api/v1。核心组不作为 apiVersion 字段的一部分指定,例如 apiVersion: v1
  • 命名组位于 REST 路径 /apis/$GROUP_NAME/$VERSION 并使用 apiVersion: $GROUP_NAME/$VERSION(例如 apiVersion: batch/v1)。你可以在 Kubernetes API 参考中找到支持的 API 组的完整列表。

启用或禁用 API 组

某些资源和 API 组默认是启用的。你可以通过在 API 服务器上设置 --runtime-config 来启用或禁用它们。--runtime-config 标志接受逗号分隔的 <key>[=<value>] 对,描述 API 服务器的运行时配置。如果省略 =<value> 部分,则视为指定了 =true。例如:

  • 要禁用 batch/v1,设置 --runtime-config=batch/v1=false
  • 要启用 batch/v2alpha1,设置 --runtime-config=batch/v2alpha1
  • 要启用特定版本的 API,例如 storage.k8s.io/v1beta1/csistoragecapacities,设置 --runtime-config=storage.k8s.io/v1beta1/csistoragecapacities

持久化

Kubernetes 将其序列化状态(以 API 资源的形式)写入 etcd 来存储。

下一步

最后修改时间:太平洋标准时间 2022 年 11 月 04 日 11:37 AM:更新参考文档章节的页面权重 (98f310ab58)