kubernetes - 我需要使用旧版 API 组吗?

标签 kubernetes

根据https://kubernetes.io/docs/reference/api-overview/ , 一切都在 /api/v1是“遗留”API 组。尽管文档没有详细说明,但我从使用“遗产”一词的自然推断是:

  • 我不应该在新代码中使用它,并且
  • 它的所有功能都在其他 API 组中重新实现,可能具有更简洁的界面

  • 但是,在 Module 2 of the Kubernetes tutorial ,我被指示使用旧 API 组访问我新创建的 pod:

    Now we can make an HTTP request to the application running in that pod:

    curl http://localhost:8001/api/v1/proxy/namespaces/default/pods/$POD_NAME/
    

    是什么赋予了? “遗留” API 组是否实际上包含其他任何地方都不存在的功能,或者是否有另一种非遗留方式向我的 pod 发出教程尚未更新以反射(reflect)的请求?

    最佳答案

    所有较新的 Kubernetes API 对象都可以在命名的 API 组中找到(例如,Deployment API 组中的 apps/v1 对象)——这也是您在 apiVersion 中使用的组。声明新对象时的字段。

    较旧的 API 对象(如 PodService 对象)位于未命名的 API 组(也称为核心或旧版)中。他们的apiVersion只是 v1 ,没有任何名字。

    在这种情况下,“遗留”似乎并不意味着“请不要再使用它”。相反,它似乎意味着“请不要向此 API 组添加任何新对象”。从阅读文档来看,“旧版”API 组似乎不会很快被弃用(毕竟,它不像有任何其他 API 可用于创建 Pod 或服务)。

    根据respective design proposal , 目标是...

    ...[break] the monolithic v1 API into modular groups and allowing groups to be enabled/disabled individually. This allows [the Kubernetes developers] to break the monolithic API server to smaller components in the future. [...] For backward compatibility, v1 objects belong to the group with an empty name, so existing v1 config files will remain valid.

    关于kubernetes - 我需要使用旧版 API 组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48950851/

    相关文章:

    kubernetes - 后端返回404/422时,GKE基本元素间歇性返回502

    kubernetes - 按环境删除所有k8s对象

    authorization - 为什么Kubernetes的 “kubectl”被 “Authorization error”中止?

    nginx - Kubernetes 入口路径

    Kubernetes 调度器

    angular - Angular 2+-动态更改应用程序的基本路径

    kubernetes - Kubernetes进入外部服务?

    amazon-web-services - AWS 负载均衡器部署失败

    yaml - 如何使用 Kubernetes 在一个 yaml 文件中设置多个命令?

    kubernetes - 如何获取 Pod 中的当前命名空间?