Wenn das Update eines TKG-Clusters fehlschlägt, können Sie den Aktualisierungsauftrag neu starten und die Aktualisierung erneut versuchen.
Problem
Das Aktualisieren eines TKG-Clusters schlägt fehl, was zum Clusterstatus „upgradefailed
“ führt.
Ursache
Es kann verschiedene Gründe für eine fehlgeschlagene Clusteraktualisierung geben, z. B. nicht genügend Speicher. Führen Sie den folgenden Vorgang aus, um einen fehlgeschlagenen Aktualisierungsauftrag neu zu starten und die Aktualisierung erneut durchzuführen.
Lösung
- Melden Sie sich beim Supervisor als Administrator an.
- Suchen Sie den
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}"
- Führen Sie den
kubectl proxy
aus, damit curl
für die Ausstellung von Anforderungen verwendet werden kann.
Sie sollten
Starting to serve on 127.0.0.1:8001
sehen.
Hinweis: Sie können
kubectl
nicht verwenden, um den
.status
einer Ressource zu patchen oder zu aktualisieren.
- Verwenden Sie
curl
mit dem folgenden Patch, um das .spec.backoffLimit
zu erhöhen.
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}
- Verwenden Sie
curl
mit dem folgenden Patch-Befehl, um .status.conditions
zu löschen, sodass die Auftragssteuerung neue Pods generieren kann.
$ 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