kubernetes - Kubectl api-resources 列出具有不同 API 组的重复资源
问题描述
我运行了一个简单的命令:
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 组中进行管理(迭代多个版本)。一旦资源被认为是稳定的,它们就会被移动到一个“稳定”的 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 服务器如何处理不同版本资源的深入解释。
推荐阅读
- sql - 使用 Stack Exchange Data Explorer (SEDE) 按帖子计数和信誉查找用户
- firebase - 查询 firestore 以从 userid 获取所有令牌
- javascript - 使用 Webpack 进行新部署后处理丢失的动态块
- css - 没有样式的 Laravel 分页
- python - uwsgi+django:不支持的哈希类型
- c# - .net 4.5.2 和 ssl 3.0
- javascript - Javascript在同一页面的多个表中搜索
- typo3 - 带有 MenuProcessor 的面包屑中的 TYPO3 新闻标题
- odata - Uri 函数“包含”一个父令牌。Uri 函数不能有父标记
- csv - 向pyspark中的数据框添加唯一的连续行号