helm 测试失败:等待条件超时

helm test failure: timed out waiting for the condition

我们对 Redis 图表进行了简单的发布测试。在 运行 helm test myReleaseName --tls --cleanup 之后,我们得到了

RUNNING: myReleaseName-redis
ERROR: timed out waiting for the condition

https://github.com/helm/helm/search?q=timed+out+waiting+for+the+condition&type=Issues 的 Github 存储库中有几个问题,但我没有找到解决方案。

这是怎么回事?

这乍一看令人费解并且显示的信息很少,因为 --cleanup 会杀死 运行 之后的 pods。人们可以将其删除以获取更多信息。因此,我用

重新运行测试
helm test myReleaseName --tls --debug

然后使用kubectl get pods检查用于测试的pod。 (它可以是其他名称。)

NAME                                                 READY     STATUS             RESTARTS   AG
myReleaseName-redis                                            0/1       ImagePullBackOff   0          12h

从这里,更清楚的是镜像有问题了,原来是拉取镜像的link不正确 . (使用kubectl describe pod <pod-name>然后就可以找到你用来拉镜像的link。)

修复 link,它成功了。

如果helm test <ReleaseName> --debug显示安装成功但部署失败,可能是因为部署需要超过 300 秒。

Helm 将等待 --timeout 设置的时间。默认情况下,超时设置为 5 分钟,有时由于多种原因 helm install 可能需要额外的时间来部署,因此请增加超时值并验证安装。

helm install <ReleaseName> --debug --wait --timeout 30m

对我来说,helm 无法拉取镜像,因为它在私有仓库中

kubectl get events 帮我拿到了日志。

9m38s       Warning   Failed              pod/airflow-scheduler-bbd8696bf-5mfg7      Failed to pull image 

验证 helm install 命令有效后。

REF:https://github.com/helm/charts/issues/11904