使用不同的工具(例如 kubent)我发现我的集群中有弃用的 API。例如
Type: Ingress Name: kibana API: networking.k8s.io/v1beta1
但是当我打开 Ingress 本身时,我可以看到:
apiVersion: networking.k8s.io/v1
kind: Ingress
managedFields:
- manager: Go-http-client
operation: Update
apiVersion: networking.k8s.io/v1beta1
所以,它表明我的 Ingress API 实际上是“v1”,而不是“beta”。但是“managedFields”部分确实有“v1beta1”API。据官方documentation ,这是服务器端 API,用户不应编辑。
所以,我的问题是 - 我应该/可以在这个“托管字段”中使用已弃用的 API 做任何事情吗?升级到下一个k8s版本会有什么问题吗?因为目前我的GCP控制台显示会有问题。
最佳答案
将 Kubernetes 集群升级到最新版本时不会有任何问题,即使您在入口配置的 managed 字段
中弃用了 API 版本。您仍然在 UI 中看到版本 “/v1beta1” 的原因是因为 GKE 的不同部分依赖于这两个版本(v1 和 v1beta1)。
在两个 Kubernetes 版本 1.19 和 1.21 之间,都支持端点 networking.k8s.io/v1
和 extensions/v1beta1
。它们在功能上是相同的,这取决于给定 UI 对显示哪个版本的偏好。所以它不会影响你 Ingress 的功能。如前所述,GKE 集群是在 versions 1.22 上创建的后来停止支持 extensions/v1beta1 和 networking.k8s.io/v1beta1 Ingress。
关于api - 弃用的 k8s API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72710741/