这是头盔和分till器版本:
> 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 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
命令是否会失败?我期望它可以强制安装。有想法吗?
答案 0 :(得分:6)
这是或已经有一段时间了。它仅会影响以下情况:图表的首次安装失败,并且直到helm 2.7为止,需要先手动删除失败的发行版,然后才能更正问题并再次安装。但是,现在有一个--force标志可用于解决这种情况-https://github.com/helm/helm/issues/4004
答案 1 :(得分:5)
尝试:
helm delete --purge <deployment>
这可以解决问题
并且从helm3开始,您需要卸载例如。
helm uninstall <deployment> -n <namespace>
答案 2 :(得分:4)
当部署意外失败时会发生这种情况。
首先检查helm release部署的状态;
❯ 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
状态。
检查 helm 部署秘密;
❯ 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 release的状态;
❯ helm list -n $namespace -a
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
$release_name $namespace 7 $update_date deployed $chart_name $app_version
答案 3 :(得分:0)
只需添加...
我经常在头盔3中看到Error: UPGRADE FAILED: "my-app" has no deployed releases
错误。
几乎每次错误都发生在kubectl
,aws-cli
或aws-iam-authenticator
中而不是Helm。似乎很多问题似乎会引发这种异常,这是不理想的。
要诊断出真正的问题,可以在其中一个或多个工具中运行简单命令(如果正在使用它们),并且应该能够快速诊断出问题。
例如:
aws-cli-aws --version
确保安装了cli。
aws-iam-authenticator-aws-iam-authenticator version
,以检查是否已正确安装。
kubectl-kubectl version
将显示是否已安装该工具。
kubectl-kubectl config current-context
将显示您是否提供了可以连接到Kubernetes的有效配置。