web-dev-qa-db-ja.com

HelmのインストールまたはアップグレードリリースがKubernetesクラスターで失敗しました:サーバーがリクエストされたリソースを見つけられなかったか、アップグレードが失敗しました:デプロイされたリリースがありません

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ステータスにあることがわかります。

5
french_dev

私は同じ問題を抱えていましたが、リリースが壊れているためではありませんでした。 helmをアップグレードした後 helmの新しいバージョンは--waitパラメータでうまくいかないようです。同じ問題に直面している人のために:--waitを削除し、--debugパラメータをhelm upgradeのままにしておくだけで問題が解決しました。

1
MikeMajara

代わりにCronJobでカスタムチャートを展開しようとしたときに、この問題が発生しました。 エラー は、配置スクリプトのこのステップで発生します。それを解決するには、ENV変数ROLLOUT_STATUS_DISABLED=trueを追加する必要があります この問題 で解決されています。

0
Stepan K.