【问题标题】:apiVersion and beta versionsapiVersion 和 beta 版本
【发布时间】:2019-03-03 01:19:21
【问题描述】:

按照文档创建部署,我有一个这样的 .yaml 文件:

apiVersion: extensions/v1beta1
kind: Deployment
...

我不知道如何处理“extensions/v1beta1”,所以我最终选择了here in the API docs。

这听起来像是我应该使用“v1”的值,但是当我尝试 kubectl apply 我的 .yaml 文件时,这似乎无效。

有人可以帮助我更好地理解 apiVersion 值的含义以及如何确定每个组件的最佳值吗?

哦,我正在使用 minikube,“kubectl 版本”报告客户端和服务器是“GitVersion:”v1.3.0”。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您链接到的文档来自 Kubernetes 1.0 发布之前(一年前)。那时,我们有 API 的 beta 版本,并且正在迁移到 v1 API。从那时起,我们引入了多个 API 组,每个 API 组可以有不同的版本。版本表示 API 的成熟度(alpha 正在积极开发中,beta 表示它将具有兼容性/可升级性保证,v1 表示它是稳定的)。部署API目前属于第二类,所以使用extensions/v1beta1是正确的。

    【讨论】:

    • 罗伯特-谢谢。我找不到可以在apiVersion 字段中使用的可用版本列表。是否有可能的版本列表?例如,我收集到截至我写这篇评论的那一天,最新的稳定版本是api/v1 - 但我在 k8s 文档的任何地方都找不到确认的版本。在apiVersion 字段中是否有指向包含 API 版本列表和相应字符串的页面的链接,包括最新的稳定版本?
    • @DanNissenbaum 这是我发现的。 swagger API 规范位于 /swaggerapi。我可以看到支持哪些版本。示例:{ "path": "/apis/extensions/v1beta1", "description": "API at /apis/extensions/v1beta1"}
    • @Robert Baily 在给定 k8s 集群版本的情况下,是否有一张表格可以告诉我应该使用哪组 API 版本? K8s 总是假设我总是有一个很好的、最新的集群(在撰写本文时是 1.12),但平台提供商并不总是生活在这个最前沿,所以它很快就会令人沮丧
    • 不是我所知道的(你也许可以通过搜索发行说明找到它,但这听起来不是可自动化的)。值得通过 GitHub 提交功能请求以请求数据源来查询(即使它只是版本中的一个文件)。
    • 向 Matthew Palmer 致敬 this helpful table 的 apiVersions 和种类。
    【解决方案2】:

    from documentation suggested by @Vern DeHaven

    extensions/v1beta1

    此版本的 API 包含 Kubernetes 的许多新的常用功能。 Deployment、DaemonSet、ReplicaSet 和 Ingress 在此版本中都发生了重大变化。

    请注意,在 Kubernetes 1.6 中,其中一些对象已从扩展重新定位到特定的 API 组(例如应用程序)。当这些对象退出测试版时,预计它们会位于特定的 API 组中,例如 apps/v1。

    使用 extensions/v1beta1 已被弃用 - 尽可能尝试使用特定的 API 组,具体取决于您的 Kubernetes 集群版本。

    【讨论】:

    猜你喜欢
    • 2011-05-21
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多