Si la mise à jour d'un cluster TKG échoue, vous pouvez redémarrer la tâche de mise à jour et réessayer la mise à jour.
Problème
La mise à jour d'un cluster TKG échoue et entraîne l'état du cluster upgradefailed
.
Cause
Plusieurs raisons peuvent expliquer l'échec d'une mise à jour du cluster, par exemple un stockage insuffisant. Pour redémarrer un travail de mise à jour ayant échoué et réessayer la mise à jour du cluster, suivez la procédure suivante.
Solution
- Connectez-vous à Superviseur en tant qu'administrateur.
- Recherchez le
update_job_name
.
kubectl get jobs -n vmware-system-tkg -l "run.tanzu.vmware.com/cluster-namespace=${cluster_namespace},cluster.x-k8s.io/cluster-name=${cluster_name}"
- Exécutez
kubectl proxy
afin que curl
puisse être utilisé pour émettre des demandes.
Vous devez voir
Starting to serve on 127.0.0.1:8001
.
Note : Vous ne pouvez pas utiliser
kubectl
pour corriger ou mettre à jour le
.status
d'une ressource.
- À l'aide de
curl
exécutez la commande de correctif suivante pour élever la .spec.backoffLimit
.
curl -H "Accept: application/json" -H "Content-Type: application/json-patch+json"
--request PATCH --data '[{"op": "replace", "path": "/spec/backoffLimit", "value": 8}]'
http://127.0.0.1:8001/apis/batch/v1/namespaces/vmware-system-tkg/jobs/${update_job_name}
- À l'aide de
curl
, exécutez la commande de correctif suivante pour effacer la .status.conditions
afin que le contrôleur de travail crée de nouveaux espaces.
$ curl -H "Accept: application/json" -H "Content-Type: application/json-patch+json"
--request PATCH --data '[{"op": "remove", "path": "/status/conditions"}]'
http://127.0.0.1:8001/apis/batch/v1/namespaces/vmware-system-tkg/jobs/${update_job_name}/status