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
.
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.
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 .