昨天,当 Helm 升级在 Azure DevOps 中的发布管道上运行时,我停止了 Helm 升级,并且以下部署失败。
我尝试查看失败的图表,目的是删除它,但微服务(“auth”)的图表没有出现。我使用了命令“helm list -n [namespace_of_AKS]”,但它没有出现。
我可以做什么来解决这个问题?
Azure 发布管道中出现错误
2022-03-24T08:01:39.2649230Z Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
2022-03-24T08:01:39.2701686Z ##[error]Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
发生此错误的原因有多种,但最常见的是当您已经提到的升级/安装过程中出现中断时。
要修复此问题可能需要,首先回滚到另一个版本,然后重新安装或再次进行 helm 升级。
尝试使用以下命令来列出
helm ls --namespace <namespace>
但您可能会注意到,运行该命令时,它可能不会显示任何包含信息的列
尝试检查之前部署的历史记录
helm history <release> --namespace <namespace>
这提供的信息大多类似于原始安装从未成功完成,并且处于待定状态,例如状态:待升级状态。
要退出此状态,请使用回滚命令:
helm rollback <release> <revision> --namespace <namespace>
修订是可选的,但您应该尝试提供它。
然后您可以尝试再次发出原始命令来升级或重新安装。
helm ls -a -n {namespace}
将列出命名空间内的所有版本,无论状态如何。
您还可以使用
helm ls -aA
来列出所有命名空间中的所有版本 - 以防您实际上将版本部署到不同的命名空间(我之前已经这样做过)
尝试删除部署的 latest helm Secret 并重新运行 helm apply 命令。
kubectl get secret -A | grep <app-name>
kubectl delete secret <secret> -n <namespace>
我的确切错误是
Helm upgrade failed: another operation (install/upgrade/rollback) is in progress" or "##[error]Error: UPGRADE FAILED: release <namespace> failed, and has been rolled back due to atomic being set: timed out waiting for the condition
该错误有 2 个潜在的解决方案:删除卡住的部署,或修复部署管道中的某些内容。
如果这条管道到目前为止一直在工作,它可能只是被卡住了。是时候在 Azure 门户中删除它了!
az account show // 这将给出您所在的订阅。
az账户设置--订阅
az aks get-credentials --name --resource-group
kubectl 获取秘密 -n
在这种情况下,最新版本有问题,因此请通过运行以下命令删除该版本:
kubectl删除秘密-n sh.helm.release.v1..v88(或者最后一个命令后显示的最后一个版本)
再次运行管道,它可以工作了:-)
如果您刚刚更新了管道,或者尚未运行它,则可能会遇到错误。我的特定 Azure DevOps 管道就是这种情况。
azure-pipeline.yml
阶段缺少一些参数(或管道中的任何问题)在我这边,我只是做 helm rollback xxx。没关系。 xxx 是应用程序名称。