【问题标题】:Upgrade Failled in Helm Upgrade stageHelm 升级阶段升级失败
【发布时间】:2022-11-11 12:35:44
【问题描述】:

我在掌舵升级阶段收到以下错误。我做了以下更改 apiVersion: networking.k8s.io/v1beta1apiVersion: networking.k8s.io/v1 有人可以让我知道我遇到此问题的原因以及相同的解决方法。任何帮助深表感谢

Error: UPGRADE FAILED: current release manifest contains removed kubernetes api(s) for 
this kubernetes version and it is therefore unable to build the kubernetes objects for 
performing the diff. error from kubernetes: unable to recognize "": no matches for 
kind "Ingress" in version "networking.k8s.io/v1beta1"

【问题讨论】:

    标签: kubernetes kubernetes-helm kubernetes-ingress kubectl azure-aks


    【解决方案1】:

    Helm 不喜欢旧版本的模板包含删除的 apiVersion 并导致上述错误。要修复它,请按照Helm 的官方文档中的步骤进行操作。

    因为我们在移除之前没有升级 apiVersion,所以我们不得不遵循手动的方法。在两个不同的 kubernetes 集群(生产和测试)中,我们有很多服务需要更新。所以有一个脚本可以更新入口对象的 apiVersion。你可以找到脚本here

    该脚本假定您要将networking.k8s.io/v1beta1 更改为networking.k8s.io/v1。如果您对另一个 apiVersion 有问题,请在第 30 行的脚本中更改这些值。如果需要进一步更改,请更新您的 helm 图表模板并部署/应用新的 helm 图表。

    【讨论】:

      【解决方案2】:

      遇到此问题的原因是 Helm 尝试在当前部署的版本(其中包含在当前 Kubernetes 版本中删除的 Kubernetes API)与您通过更新/支持的 API 版本传递的图表之间创建差异补丁。因此,当 Kubernetes 删除 API 版本时,Kubernetes Go 客户端库无法再解析已弃用的对象,因此 Helm 在调用该库时会失败。

      Helm 有关于如何从该场景中恢复的官方文档: https://helm.sh/docs/topics/kubernetes_apis/#updating-api-versions-of-a-release-manifest

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-09-26
        • 2023-03-08
        • 1970-01-01
        • 2018-12-17
        • 2021-04-02
        • 1970-01-01
        • 2021-01-29
        相关资源
        最近更新 更多