根据https://kubernetes.io/docs/reference/api-overview/,/api/v1
的所有内容都是"遗产" API组。虽然文档没有进一步详细说明,但我使用“遗产”这个词的自然推论。就是这样:
但是,在Module 2 of the Kubernetes tutorial中,我已指示使用旧版API组访问我新创建的广告连播:
现在我们可以向该pod中运行的应用程序发出HTTP请求:
curl http://localhost:8001/api/v1/proxy/namespaces/default/pods/$POD_NAME/
是什么给出的? "遗产" API组实际上包含其他任何地方都不存在的功能,或者是否有另一种非遗留方式向我的pod发出请求,该教程尚未更新以反映?
答案 0 :(得分:1)
所有较新的Kubernetes API对象都可以在命名的 API组中找到(例如,Deployment
API组中的apps/v1
对象) - 这也是声明新对象时在apiVersion
字段中使用的组。
旧的API对象(如Pod
或Service
对象)可在未命名的 API组中找到(也称为核心或遗留)。他们的apiVersion
只是v1
,没有任何名字。
在这种情况下,"遗产" 似乎并不意味着"请不要再使用它"。相反,它似乎意味着"请不要向此API组添加任何新对象"。通过阅读文档,它看起来不像"遗产" API组将很快被弃用(毕竟,它不像那里可以用来创建Pod或服务的任何其他API)。
根据respective design proposal,目标是......
... [break]将单片v1 API转换为模块化组,并允许单独启用/禁用组。这允许[Kubernetes开发人员]在未来将单片API服务器分解为更小的组件。 [...]为了向后兼容,v1对象属于具有空名称的组,因此现有的v1配置文件将保持有效。