Si la mise à jour d'un cluster Tanzu Kubernetes échoue, vous pouvez redémarrer la tâche de mise à jour et réessayer la mise à jour.

Problème

La mise à jour d'un cluster Tanzu Kubernetes échoue et entraîne un état du cluster comme upgradefailed.

Cause

Plusieurs raisons peuvent expliquer l'échec d'une mise à jour du cluster, par exemple un stockage insuffisant. Pour redémarrer un travail de mise à jour ayant échoué et réessayer la mise à jour du cluster, suivez la procédure suivante.

Solution

  1. Connectez-vous à Cluster superviseur en tant qu'administrateur. Reportez-vous à la section Se connecter à Cluster superviseur en tant qu'utilisateur vCenter Single Sign-On.
  2. Recherchez le 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. Exécutez kubectl proxy afin que curl puisse être utilisé pour émettre des demandes.
    kubectl proxy &
    
    Vous devez voir Starting to serve on 127.0.0.1:8001.
    Note : Vous ne pouvez pas utiliser kubectl pour corriger ou mettre à jour le .status d'une ressource.
  4. À l'aide de curl exécutez la commande de correctif suivante pour élever la .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. À l'aide de curl exécutez la commande de correctif suivante pour effacer la .status.conditions afin que le contrôleur de travail crée de nouveaux espaces.
    $ 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