我是否需要使用旧版API组?

时间:2018-02-23 15:09:50

标签: kubernetes

根据https://kubernetes.io/docs/reference/api-overview//api/v1的所有内容都是"遗产" API组。虽然文档没有进一步详细说明,但我使用“遗产”这个词的自然推论。就是这样:

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

但是,在Module 2 of the Kubernetes tutorial中,我已指示使用旧版API组访问我新创建的广告连播:

  

现在我们可以向该pod中运行的应用程序发出HTTP请求:

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

是什么给出的? "遗产" API组实际上包含其他任何地方都不存在的功能,或者是否有另一种非遗留方式向我的pod发出请求,该教程尚未更新以反映?

1 个答案:

答案 0 :(得分:1)

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

旧的API对象(如PodService对象)可在未命名的 API组中找到(也称为核心遗留)。他们的apiVersion只是v1,没有任何名字。

在这种情况下,"遗产" 似乎并不意味着"请不要再使用它"。相反,它似乎意味着"请不要向此API组添加任何新对象"。通过阅读文档,它看起来不像"遗产" API组将很快被弃用(毕竟,它不像那里可以用来创建Pod或服务的任何其他API)。

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

  

... [break]将单片v1 API转换为模块化组,并允许单独启用/禁用组。这允许[Kubernetes开发人员]在未来将单片API服务器分解为更小的组件。 [...]为了向后兼容,v1对象属于具有空名称的组,因此现有的v1配置文件将保持有效。