web-dev-qa-db-fra.com

Échec de l'installation ou de la mise à niveau de Helm sur le cluster Kubernetes: le serveur n'a pas pu trouver la ressource demandée ou ÉCHEC DE LA MISE À NIVEAU: aucune version déployée

Utiliser helm pour déployer un graphique sur mon cluster Kubernetes, car un jour, je ne peux pas en déployer un nouveau ou en mettre à niveau un.

En effet, chaque fois que j'utilise Helm, j'ai un message d'erreur me disant qu'il n'est pas possible d'installer ou de mettre à jour des ressources.

Si je lance helm install --name foo . -f values.yaml --namespace foo-namespace J'ai cette sortie:

Erreur: échec de la libération de foo: le serveur n'a pas pu trouver la ressource demandée

Si je lance helm upgrade --install foo . -f values.yaml --namespace foo-namespace ou helm upgrade foo . -f values.yaml --namespace foo-namespace J'ai cette erreur:

Erreur: ÉCHEC DE LA MISE À NIVEAU: "foo" n'a pas de versions déployées

Je ne comprends pas vraiment pourquoi.

Voici ma version de barre:

Client: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}

Sur mon cluster kubernetes, tiller est déployé avec la même version, lorsque j'exécute 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

Est-ce que quelqu'un a fait face au même problème?


Mettre à jour:

Voici la structure de dossiers de mon graphique actuel nommé foo: dossier de structure du graphique:

> templates/
  > deployment.yaml 
  > ingress.yaml
  > service.yaml
> .helmignore
> Chart.yaml 
> values.yaml

J'ai déjà essayé de supprimer le graphique en échec à l'aide de la commande de suppression helm del --purge foo mais les mêmes erreurs se sont produites.

Pour être plus précis, le graphique foo est en fait un graphique personnalisé utilisant mon propre registre privé. ImagePullSecret s'installe normalement.

J'ai exécuté ces deux commandes helm upgrade foo . -f values.yaml --namespace foo-namespace --force | helm upgrade --install foo . -f values.yaml --namespace foo-namespace --force et j'obtiens toujours une erreur:

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

Notez que foo-namespace existe déjà. L'erreur ne vient donc pas du nom de l'espace de noms ou de l'espace de noms lui-même. En effet, si je lance helm list, Je peux voir que le graphique foo est dans un état FAILED.

5
french_dev

J'ai eu le même problème mais pas à cause de versions cassées. Après la mise à niveau de la barre. Il semble que les versions plus récentes de la barre fassent du mal avec le --wait paramètre. Donc, pour toute personne confrontée au même problème: il suffit de supprimer --wait, et part --debug de helm upgrade les paramètres ont résolu mon problème.

1
MikeMajara

J'ai eu ce problème lorsque j'ai essayé de déployer un graphique personnalisé avec CronJob à la place du déploiement. L'erreur se produit à cette étape du script de déploiement. Pour le résoudre, vous devez ajouter la variable ENV ROLLOUT_STATUS_DISABLED=true il est résolu dans ce problème .

0
Stepan K.