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

Problema

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

Causa

Un aggiornamento del cluster non riuscito può essere determinato 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 Cluster supervisore come amministratore. Vedere Connessione al Cluster supervisore come utente vCenter Single Sign-On.
  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 comando di patch seguente per cancellare .status.conditions in modo che il controller Processo crei 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