我有一个像下面这样的场景,有两个版本 - Release-A 和 Release-B。
目前,我在 Release-A 上,需要将所有微服务升级到 Release-B。我尝试使用以下命令执行微服务的掌舵升级 - “mymicroservice”以交付 Release-B。
helm --kubeconfig /home/config upgrade --namespace testing --install --wait mymicroservice mymicroservice-release-b.tgz
Run Code Online (Sandbox Code Playgroud)
由于某些问题,部署对象无法安装并进入错误状态。
观察到这一点,我执行以下回滚命令。
helm --kubeconfig /home/config --namespace testing rollback mymicroservice
Run Code Online (Sandbox Code Playgroud)
由于某些问题(可能是间歇性系统故障或用户行为),Release-A 的部署对象也进入了 failed/Crashloopbackoff 状态。虽然这会导致 helm 回滚成功,但部署对象仍然没有进入运行状态。
一旦我进行了必要的更正,我将重试回滚。由于部署规范已经使用 helm 进行了更新,因此即使处于失败状态,它也不会尝试重新安装部署对象。
Helm 是否有任何选项可以处理上述情况?
尝试使用--force
标志,但在使用 --force 标志方法时,还有其他与微服务中的服务对象替换相关的错误。
Rollback "mymicroservice -monitoring" failed: failed to replace object: Service "mymicroservice-monitoring" is invalid: spec.clusterIP: Invalid value: "": field is immutable
Run Code Online (Sandbox Code Playgroud) kubernetes microservices kubernetes-helm kubernetes-deployment kubernetes-pod