我正在运行 AWS EKS k8s 集群。在此基础上,我部署了几个 Helm 图表。当我更新到最新的 k8s 版本后,我没有意识到其中一个 Deployments 有一个 PodDisruptionBudget,它已在 k8s 版本中被删除。
现在我无法更新受影响的 Helm Chart,因为 PodDisruptionBudget 未知。我已将其从 Helm Charts 中删除,但这没有帮助。 我尝试卸载部署,但由于同样的原因,这也是不可能的。
现在我已经更改了机密内的清单,并从其中删除了 PodDisruptionBudget。
但是当我执行
helm upgrade
时,我收到错误:
Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
Helm history
给我:
37 Fri Nov 11 08:34:19 2022 failed dpn-1.1.0 1.1.0
40 Sat Sep 16 19:54:04 2023 pending-rollback dpn-1.1.0 4.17.1 Rollback to 39
我尝试删除秘密 38 和 39,它们也处于待卸载状态。 但这也没有帮助。
我还可以尝试升级舵图吗?重新设置整个集群需要大量工作......
首先,
PodDisruptionBudget
是一个对象,用于定义可能对 Pod 集合造成的最大干扰。
如文档中所述,
PodDisruptionBudget
未删除,但现在它使用 policy/v1
而不是 policy/v1beta1
。
我建议删除导致问题的 helm 版本
dpn-1.1.0
,然后重新安装
这通常发生在之前的 helm 部署失败时。
最简单的解决方法是通过运行此 cmd 来回滚 helm 版本。
选项1
helm rollback <release> --namespace <namespace>
如果您想列出版本
helm ls --namespace <namespace>
选项2
删除最后一个掌舵秘密。
kubectl get secrets
kubectl delete secret <last-helm-secret>