根据https://kubernetes.io/docs/reference/api-overview/ , 一切都在 /api/v1
是“遗留”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 对象(如 Pod
或 Service
对象)位于未命名的 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/