CI 管道中 Helm 的未决更新问题。怎么处理?

问题描述 投票:0回答:1

我遇到了

pending-update
头盔问题,即。在 CI 管道中,我们有时会一次又一次地部署一个特定的应用程序。第一个 helm 部署仍处于
pending-update
状态,而同一应用程序的其他部署(例如 1 分钟后运行)无法部署,导致众所周知的错误:
Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
.

我知道这是一个众所周知的问题,一个可能的解决方案是在

helm upgrade
命令之前删除与 Helm 相关的 k8s 秘密删除(在 CI 管道中自动删除),但这是解决这个问题的好方法吗?您如何处理 CI 管道中的这些场景?

kubernetes kubernetes-helm
1个回答
0
投票

是的,您可以通过秘密删除解决它,在我们的一个案例中它也不起作用。

所以我建议检查

kubetl get events
如果有人无法启用未获取调试日志的日志,它也会指出错误。

我因 helm 部署创建 service

Type: LoadBalancer
而面临问题,我们在 tenancy/account 中没有 LoadBalancerQuota

我们主要检查 POD 状态,但 helm 可能在 servicesecretconfigmap 等方面存在问题,因此请确保您这样做,而不是正确猜测调试。

您可以做的另一个解决方法是回滚到以前的发布版本,这会将状态从pending-update更改为deployed即使您是第一次部署。

如果有任何悬而未决的东西被安装,它可能会将发布标记为已部署。所以你升级或安装一个新的而不是得到一个错误。

helm -n [NAMESPACE ] rollback <RELEASE> [REVISION]

例子

helm -n default rollback service 1

这会将您的发布标记为 已部署 作为解决方法,如果卡在状态中。

© www.soinside.com 2019 - 2024. All rights reserved.