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

  1. Melden Sie sich beim Supervisor als Administrator an.
  2. 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}"
  3. Führen Sie den kubectl proxy aus, damit curl für die Ausstellung von Anforderungen verwendet werden kann.
    kubectl proxy &
    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.
  4. 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}
  5. 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