Se l'aggiornamento di un cluster TKG non riesce, è possibile riavviare il processo di aggiornamento e riprovare.

Problema

L'aggiornamento di un cluster TKG non riesce e comporta lo stato upgradefailed del cluster.

Causa

Il mancato aggiornamento del cluster può dipendere da una serie di motivi, come ad esempio uno storage insufficiente. Per riavviare un processo di aggiornamento non riuscito e riprovare l'aggiornamento del cluster, completare la procedura seguente.

Soluzione

  1. Accedere a Supervisore come amministratore.
  2. Cercare 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. Eseguire kubectl proxy in modo che sia possibile utilizzare curl per craere richieste.
    kubectl proxy &
    Dovrebbero comparire Starting to serve on 127.0.0.1:8001.
    Nota: Non è possibile utilizzare kubectl per eseguire il patch o aggiornare lo .status di una risorsa.
  4. Utilizzando curl eseguire il seguente comando di patch per generare .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}
  5. Utilizzando curl, eseguire il seguente comando di patch per cancellare .status.conditions in modo che il controller Processo possa creare nuovi pod.
    $ 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