尝试将集群迁移到 v1.22 时弃用的 API

Ili*_*dev 6 google-cloud-platform fabric8 terraform

我尝试迁移集群,但在 GCP 控制面板中收到错误Migrate to updated APIs to upgrade to v1.22.GCP 屏幕截图

它列出了我调用了以下 API:

/apis/networking.k8s.io/v1beta1/ingresses
/apis/extensions/v1beta1/ingresses
/apis/networking.k8s.io/v1beta1/ingressclasses
/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations
Run Code Online (Sandbox Code Playgroud)

但我最后一次打电话给他们是在两天前,当时我开始尝试升级,并且我在我的 terraform 脚本中删除了对它们的引用。

我已经运行了kubent,这是它的输出:

$ /usr/local/bin/kubent
11:03AM INF >>> Kube No Trouble `kubent` <<<
11:03AM INF version 0.5.1 (git sha )
11:03AM INF Initializing collectors and retrieving data
11:03AM INF Target K8s version is 1.22.8-gke.202
11:03AM INF Retrieved 161 resources from collector name=Cluster
11:03AM INF Retrieved 0 resources from collector name="Helm v2"
11:03AM INF Retrieved 19 resources from collector name="Helm v3"
11:03AM INF Loaded ruleset name=custom.rego.tmpl
11:03AM INF Loaded ruleset name=deprecated-1-16.rego
11:03AM INF Loaded ruleset name=deprecated-1-22.rego
11:03AM INF Loaded ruleset name=deprecated-1-25.rego
__________________________________________________________________________________________
>>> Deprecated APIs removed in 1.22 <<<
------------------------------------------------------------------------------------------
KIND                       NAMESPACE     NAME                                           API_VERSION                    REPLACE_WITH (SINCE)
CustomResourceDefinition   <undefined>   capacityrequests.internal.autoscaling.k8s.io   apiextensions.k8s.io/v1beta1   apiextensions.k8s.io/v1 (1.16.0)
CustomResourceDefinition   <undefined>   globalbgpconfigs.crd.projectcalico.org         apiextensions.k8s.io/v1beta1   apiextensions.k8s.io/v1 (1.16.0)
CustomResourceDefinition   <undefined>   globalfelixconfigs.crd.projectcalico.org       apiextensions.k8s.io/v1beta1   apiextensions.k8s.io/v1 (1.16.0)
CustomResourceDefinition   <undefined>   scalingpolicies.scalingpolicy.kope.io          apiextensions.k8s.io/v1beta1   apiextensions.k8s.io/v1 (1.16.0)
Ingress                    elastic       kibana-kibana                                  networking.k8s.io/v1beta1      networking.k8s.io/v1 (1.19.0)
__________________________________________________________________________________________
>>> Deprecated APIs removed in 1.25 <<<
------------------------------------------------------------------------------------------
KIND                  NAMESPACE     NAME                       API_VERSION      REPLACE_WITH (SINCE)
PodDisruptionBudget   elastic       elasticsearch-master-pdb   policy/v1beta1   policy/v1 (1.21.0)
PodSecurityPolicy     <undefined>   gce.gke-metrics-agent      policy/v1beta1   <removed> (1.21.0)
Run Code Online (Sandbox Code Playgroud)

据我所知,我的代码中没有使用这些 API。我能找到的对它们的唯一引用是在fabric8依赖项的 jar 中。他们保留了两者v1beta1并保留了新内容v1以实现向后兼容性。

是否有可能因为依赖项存在于 jar 中而阻止我升级,即使我没有使用它?如果是这样的话,我可以做些什么来升级版本吗?

小智 5

我在迁移到 1.22 时遇到了同样的问题。

我已经通过 GCP 中的对象浏览器进行了查看。

capacityrequests.internal.autoscaling.k8s.io包含两者的元数据 apiVersionv1beta1和新的v1. 我认为这可能就是库本特将其标记为已弃用的原因。

不过,在GCP警告中,并没有提到这个API,所以我猜GCP并没有算这个。