Kubectl api-resources 列出具有不同 API 组的重复资源
Kubectl api-resources lists duplicate resources with different API groups
我有运行一个简单的命令:
kubectl api-resources
我有点惊讶得到重复项(尽管在不同的 Api 组中),例如:
NAME SHORTNAMES APIGROUP NAMESPACED KIND
ingresses ing extensions true Ingress
ingresses ing networking.k8s.io true Ingress
是否是同一个资源,只是列出了两次,因为它同时属于不同的api组,而且后面调用的结果总是一样的?
kubectl get ingress
kubectl get ingress.networking.k8s.io
kubectl get ingress.extensions
这些实际上是同一资源在不同 API 组中的不同版本。
一般来说,Kubernetes引入新的资源类型时,首先会在extensions
API组中进行管理(迭代多个版本)。一旦资源被认为稳定,它们将被移动到 "stable" API 组,例如 apps
或 networking.k8s.io
(解释,例如 here)。
Ingress 在两个 API 组中都列出的事实意味着您的 API 服务器可以理解来自两个 API 组的此资源的版本。
具体资源版本的规格可能有所不同。例如,您可以将它们与:
进行比较
kubectl explain --api-version=extensions/v1beta1 ingress
对比
kubectl explain --api-version=networking.k8s.io/v1beta1 ingress
有关 API 服务器如何处理不同版本资源的深入解释,请参见 article series。
我有运行一个简单的命令:
kubectl api-resources
我有点惊讶得到重复项(尽管在不同的 Api 组中),例如:
NAME SHORTNAMES APIGROUP NAMESPACED KIND
ingresses ing extensions true Ingress
ingresses ing networking.k8s.io true Ingress
是否是同一个资源,只是列出了两次,因为它同时属于不同的api组,而且后面调用的结果总是一样的?
kubectl get ingress
kubectl get ingress.networking.k8s.io
kubectl get ingress.extensions
这些实际上是同一资源在不同 API 组中的不同版本。
一般来说,Kubernetes引入新的资源类型时,首先会在extensions
API组中进行管理(迭代多个版本)。一旦资源被认为稳定,它们将被移动到 "stable" API 组,例如 apps
或 networking.k8s.io
(解释,例如 here)。
Ingress 在两个 API 组中都列出的事实意味着您的 API 服务器可以理解来自两个 API 组的此资源的版本。
具体资源版本的规格可能有所不同。例如,您可以将它们与:
进行比较kubectl explain --api-version=extensions/v1beta1 ingress
对比
kubectl explain --api-version=networking.k8s.io/v1beta1 ingress
有关 API 服务器如何处理不同版本资源的深入解释,请参见 article series。