1. Kubernetes 中 apiVersion 说明

在一个 Kubernetes 发行版本中,会有明确的 API 支持版本列表,可以通过 kubectl api-versions 命令查看。

这些 API 列表可能会给多个不同的资源类型(Kind)使用,因此 API 列表又称为 API 组(api group)。可以通过 kubectl api-resources 查看各个资源使用的 API 版本。

这些资源根据器稳定程度会随着 Kubernetes 的版本升级调整使用的 API,为了保留一定的向后兼容性,某些资源在一些 Kubernetes 版本中会同时支持多个 apiVersion。

在这些 API 组中常见的命名有如下特性

1.1. alpha

名称中带有 alpha 的 API 版本是进入 Kubernetes 的新功能的早期候选版本。这些可能包含错误,并且不保证将来可以使用。

  • 该软件可能包含错误。启用一个功能可能会导致 bug
  • 随时可能会丢弃对该功能的支持,恕不另行通知

1.2. beta

API 版本名称中的 beta 表示测试已经超过了 alpha 级别,并且该功能最终将包含在 Kubernetes 中。 虽然它的工作方式可能会改变,并且对象的定义方式可能会完全改变,但该特征本身很可能以某种形式将其变为 Kubernetes。

  • 软件经过很好的测试。启用功能被认为是安全的。
  • 默认情况下功能是开启的
  • 细节可能会改变,但功能在后续版本不会被删除

1.3. stable

稳定的 apiVersion 这些名称中不包含 alpha 或 beta。 它们可以安全使用。

  • 该版本名称命名方式:vX这里X是一个整数
  • 稳定版本、放心使用
  • 将出现在后续发布的软件版本中

1.4. v1

这是 Kubernetes API 的第一个稳定版本。 它包含许多核心对象。

1.5. apps/v1

apps 是 Kubernetes 中最常见的 API 组,其中包含许多核心对象和 v1。 它包括与在 Kubernetes 上运行应用程序相关的功能,如Deployments,RollingUpdates 和 ReplicaSets。

在 kubernetes1.9 版本中,引入 apps/v1,deployment 等资源从 extensions/v1beta1, apps/v1beta1 和 apps/v1beta2 迁入apps/v1,原来的 v1beta1 等被废弃。

apps/v1 代表:包含一些通用的应用层的 api 组合,如:Deployments, RollingUpdates, and ReplicaSets

1.6. apps/v1beta2

在 kubernetes1.8 版本中,新增加了 apps/v1beta2 的概念,apps/v1beta1 同理

DaemonSet,Deployment,ReplicaSet 和 StatefulSet 的当时版本迁入 apps/v1beta2,兼容原有的 extensions/v1beta1

1.7. autoscaling/v1

此API版本允许根据不同的资源使用指标自动调整容器。此稳定版本仅支持CPU扩展,但未来的alpha和beta版本将允许您根据内存使用情况和自定义指标进行扩展。

代表自动扩缩容的api组合,kubernetes1.8版本中引入。

这个组合中后续的alpha 和 beta版本将支持基于memory使用量、其他监控指标进行扩缩容

1.8. batch/v1

batchAPI组包含与批处理和类似作业的任务相关的对象(而不是像应用程序一样的任务,如无限期地运行Web服务器)。 这个apiVersion是这些API对象的第一个稳定版本。

代表job相关的api组合

在kubernetes1.8版本中,新增了batch/v1beta1,后CronJob 已经迁移到了 batch/v1beta1,然后再迁入batch/v1

1.9. batch/v1beta1

Kubernetes中批处理对象的新功能测试版,特别是包括允许您在特定时间或周期运行作业的CronJobs。

1.10. certificates.k8s.io/v1beta1

此API版本添加了验证网络证书的功能,以便在群集中进行安全通信。 您可以在官方文档上阅读更多内容。

安全认证相关的api组合

1.11. extensions/v1beta1

此版本的API包含许多新的常用Kubernetes功能。 部署,DaemonSets,ReplicaSet和Ingresses都在此版本中收到了重大更改。

Note: 在Kubernetes 1.6中,其中一些对象已从扩展程序重定位到特定的API组(例如,应用程序)。 当这些对象退出测试版时,期望它们位于特定的API组中,例如apps/v1。 使用extensions/v1beta1已被弃用 - 尝试尽可能使用特定的API组,具体取决于您的Kubernetes集群版本。

deployment等资源在1.6版本时放在这个版本中,后迁入到apps/v1beta2,再到apps/v1中统一管理

1.12. policy/v1beta1

此apiVersion增加了设置pod中断预算和pod安全性新规则的功能

1.13. rbac.authorization.k8s.io/v1

此apiVersion包含Kubernetes基于角色的访问控制的额外功能。这有助于您保护群集。查看官方博客文章。

1.14. authentication.k8s.io/v1

资源鉴权相关的api组合

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-03-20 10:54:54

results matching ""

    No results matching ""