Kubernetesクラスターにチャートをデプロイするためにhelmを使用すると、ある日、新しいものをデプロイしたり、既存のものをアップグレードしたりできません。
実際、helmを使用するたびに、リソースをインストールまたはアップグレードすることはできないというエラーメッセージが表示されます。
helm install --name foo . -f values.yaml --namespace foo-namespace
を実行すると、次の出力が得られます。
エラー:fooの解放に失敗しました:サーバーは要求されたリソースを見つけることができませんでした
helm upgrade --install foo . -f values.yaml --namespace foo-namespace
またはhelm upgrade foo . -f values.yaml --namespace foo-namespace
を実行すると、次のエラーが発生します。
エラー:アップグレードに失敗しました: "foo"にはデプロイされたリリースがありません
理由がよくわかりません。
これは私の舵取りバージョンです:
Client: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}
私のkubernetesクラスターでは、kubectl describe pods tiller-deploy-84b... -n kube-system
を実行すると、同じバージョンでティラーがデプロイされています。
Name: tiller-deploy-84b8...
Namespace: kube-system
Priority: 0
PriorityClassName: <none>
Node: k8s-worker-1/167.114.249.216
Start Time: Tue, 26 Feb 2019 10:50:21 +0100
Labels: app=helm
name=tiller
pod-template-hash=84b...
Annotations: <none>
Status: Running
IP: <IP_NUMBER>
Controlled By: ReplicaSet/tiller-deploy-84b8...
Containers:
tiller:
Container ID: docker://0302f9957d5d83db22...
Image: gcr.io/kubernetes-helm/tiller:v2.12.3
Image ID: docker-pullable://gcr.io/kubernetes-helm/tiller@sha256:cab750b402d24d...
Ports: 44134/TCP, 44135/TCP
Host Ports: 0/TCP, 0/TCP
State: Running
Started: Tue, 26 Feb 2019 10:50:28 +0100
Ready: True
Restart Count: 0
Liveness: http-get http://:44135/liveness delay=1s timeout=1s period=10s #success=1 #failure=3
Readiness: http-get http://:44135/readiness delay=1s timeout=1s period=10s #success=1 #failure=3
Environment:
TILLER_NAMESPACE: kube-system
TILLER_HISTORY_MAX: 0
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from helm-token-... (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
helm-token-...:
Type: Secret (a volume populated by a Secret)
SecretName: helm-token-...
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 26m default-scheduler Successfully assigned kube-system/tiller-deploy-84b86cbc59-kxjqv to worker-1
Normal Pulling 26m kubelet, k8s-worker-1 pulling image "gcr.io/kubernetes-helm/tiller:v2.12.3"
Normal Pulled 26m kubelet, k8s-worker-1 Successfully pulled image "gcr.io/kubernetes-helm/tiller:v2.12.3"
Normal Created 26m kubelet, k8s-worker-1 Created container
Normal Started 26m kubelet, k8s-worker-1 Started container
誰かが同じ問題に直面していますか?
更新:
これは、fooという名前の実際のグラフのフォルダー構造:グラフの構造フォルダーです。
> templates/
> deployment.yaml
> ingress.yaml
> service.yaml
> .helmignore
> Chart.yaml
> values.yaml
削除コマンドhelm del --purge foo
を使用して、失敗したチャートをすでに削除しようとしましたが、同じエラーが発生しました。
より正確に言うと、チャートfooは、実際には自分のプライベートレジストリを使用するカスタムチャートです。 ImagePullSecretは通常セットアップしています。
これら2つのコマンドを実行しましたhelm upgrade foo . -f values.yaml --namespace foo-namespace --force
| helm upgrade --install foo . -f values.yaml --namespace foo-namespace --force
でもエラーが発生します:
UPGRADE FAILED
ROLLING BACK
Error: failed to create resource: the server could not find the requested resource
Error: UPGRADE FAILED: failed to create resource: the server could not find the requested resource
Foo-namespaceがすでに存在していることに注意してください。したがって、エラーは名前空間名または名前空間自体に起因するものではありません。実際、helm list
を実行すると、fooチャートがFAILED
ステータスにあることがわかります。
私は同じ問題を抱えていましたが、リリースが壊れているためではありませんでした。 helmをアップグレードした後 helmの新しいバージョンは--wait
パラメータでうまくいかないようです。同じ問題に直面している人のために:--wait
を削除し、--debug
パラメータをhelm upgrade
のままにしておくだけで問題が解決しました。