Wenn das Update eines Tanzu Kubernetes-Clusters fehlschlägt, können Sie den Aktualisierungsauftrag neu starten und die Aktualisierung erneut versuchen.

Problem

Das Aktualisieren eines Tanzu Kubernetes-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-Cluster als Administrator an. Weitere Informationen hierzu finden Sie unter Herstellen einer Verbindung mit dem Supervisor-Cluster als vCenter Single Sign-On-Benutzer.
  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, um die .status.conditions zu löschen, sodass die Auftragssteuerung neue Pods generiert.
    $ 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