kubernetes 为什么helm upgrade --install在上次安装失败后又失败了?

gijlo24d  于 12个月前  发布在  Kubernetes
关注(0)|答案(4)|浏览(292)

这是Helm and Tiller版本:

> helm version --tiller-namespace data-devops
Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}

字符串
以前的 Helm 安装失败:

helm ls --tiller-namespace data-devops
NAME            REVISION        UPDATED                         STATUS  CHART                   NAMESPACE
java-maven-app  1               Thu Aug  9 13:51:44 2018        FAILED  java-maven-app-1.0.0    data-devops


当我尝试使用此命令再次安装它时,它失败了:

helm --tiller-namespace data-devops upgrade java-maven-app helm-chart --install \
        --namespace data-devops \
        --values helm-chart/values/stg-stable.yaml
Error: UPGRADE FAILED: "java-maven-app" has no deployed releases


如果之前的安装失败了,helm upgrade --install命令会失败吗?我希望它能强制安装。你知道吗?

9gm1akwq

9gm1akwq1#

这是一个Helm问题,或者已经有一段时间了。它只影响第一次安装图表失败的情况,并且在纠正问题并再次安装之前,Helm 2.7需要手动删除失败的版本。但是现在有一个--force标志可以解决这种情况-https://github.com/helm/helm/issues/4004

oalqel3c

oalqel3c2#

当部署意外失败时会发生这种情况。
一是检查舵面释放部署情况;

❯ helm ls  -n $namespace

NAME    NAMESPACE   REVISION    UPDATED STATUS  CHART   APP VERSION

字符串
最有可能的情况是,您将看不到有问题的helm部署。因此,使用-a选项检查部署状态;

❯ helm list -n $namespace -a
NAME            NAMESPACE       REVISION    UPDATED          STATUS             CHART         APP VERSION
$release_name   $namespace      7           $update_date     pending-upgrade    $chart_name   $app_version


正如您所看到的,部署停留在pending-upgrade状态。
检查舵盘部署秘密;

❯ kubectl get secret -n $namespace                                                                                                                                             42s ⎈ eks_non-prod/monitoring
NAME                                 TYPE                  DATA   AGE
sh.helm.release.v1.$namespace.v1     helm.sh/release.v1    1      2d21h
sh.helm.release.v1.$namespace.v2     helm.sh/release.v1    1      21h
sh.helm.release.v1.$namespace.v3     helm.sh/release.v1    1      20h
sh.helm.release.v1.$namespace.v4     helm.sh/release.v1    1      19h
sh.helm.release.v1.$namespace.v5     helm.sh/release.v1    1      18h
sh.helm.release.v1.$namespace.v6     helm.sh/release.v1    1      17h
sh.helm.release.v1.$namespace.v7     helm.sh/release.v1    1      16h


然后描述最后一个

❯ kubectl describe secret sh.helm.release.v1.$namespace.v7
Name:         sh.helm.release.v1.$namespace.v7
Namespace:    $namespace
Labels:       modifiedAt=1611503377
              name=$namespace
              owner=helm
              status=pending-upgrade
              version=7
Annotations:  <none>

Type:  helm.sh/release.v1

Data
====
release:  792744 bytes


您将看到该密钥的状态与失败的部署相同。因此,请删除该密钥;

❯ kubectl delete secret sh.helm.release.v1.$namespace.v7


现在,你应该可以升级 Helm 释放了。你可以在升级后检查 Helm 释放的状态;

❯ helm list -n $namespace -a
NAME            NAMESPACE       REVISION    UPDATED          STATUS       CHART         APP VERSION
$release_name   $namespace      7           $update_date     deployed     $chart_name   $app_version

zaq34kh6

zaq34kh63#

试试看:

helm delete --purge <deployment>

字符串
这将做的伎俩
对于Helm3,你需要卸载例如。

helm uninstall <deployment>  -n <namespace>

qq24tv8q

qq24tv8q4#

只是补充一下...
我经常在Helm 3中看到Error: UPGRADE FAILED: "my-app" has no deployed releases错误。几乎每一次,错误都在kubectlaws-cliaws-iam-authenticator中,而不是Helm中。似乎很多问题似乎都出现在这个异常中,这并不理想。
要诊断真正的问题,您可以在一个或多个这些工具中运行简单的命令(如果您正在使用它们),并且您应该能够快速诊断您的问题。

例如:

aws-brows-aws --version,以确保您已安装了安装。
aws-iam-aws-iam-authenticator version检查是否正确安装。
kubectl -kubectl version将显示工具是否已安装。
kubectl -kubectl config current-context将显示您是否提供了可以连接到Kubernetes的有效配置。

相关问题