这是舵柄和舵柄版本:
> 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
命令会失败吗?我期待它强制安装。有什么想法吗?
这已经是或已经是一个掌舵问题有一段时间了。它仅影响图表的首次安装失败的情况,并且 Helm 2.7 之前需要手动删除失败的版本,然后才能更正问题并再次安装。但是,现在有一个 --force 标志可用于解决这种情况 - https://github.com/helm/helm/issues/4004
当部署意外失败时就会发生这种情况。
首先检查helmrelease部署的状态;
❯ 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发布的状态;
❯ helm list -n $namespace -a
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
$release_name $namespace 7 $update_date deployed $chart_name $app_version
尝试:
helm delete --purge <deployment>
这样就可以了
对于 helm3 及以上版本,您需要卸载例如。
helm uninstall <deployment> -n <namespace>
只是添加...
我经常在 Helm 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 的有效配置。