Résolution des problèmes liés à la mise à niveau du maître de cluster : erreur Migration en cours

Découvrez comment diagnostiquer et résoudre l'erreur Cannot complete cluster master upgrade because there is a migration in progress dans IBM Cloud.

Cloud privé virtuel Infrastructure classique

Le message d'erreur suivant s'affiche lors de la mise à niveau du maître.

Cannot complete cluster master upgrade because there is a migration in progress

Vous mettez à niveau le maître cluster, mais certaines ressources étaient encore en cours de migration à partir d'une mise à jour précédente.

Par exemple, s'il s'agit d'une mise à jour principale de IBM Cloud Kubernetes Service version 1.31 à 1.32, l'opérateur Tigera n'a pas encore terminé sa migration de la précédente mise à jour de IBM Cloud Kubernetes Service version 1.30 à 1.31.

Pour résoudre le problème, attendez d'abord plus longtemps. Les clusters plus volumineux prennent plus de temps à effectuer la migration. La mise à jour du maître prend environ 100 secondes par noeud pour que la migration soit terminée. L'opérateur Tigera est requis pour effectuer plusieurs actions et peut impliquer la rotation des pods vers le haut et vers le bas sur les noeuds.

Cependant, il est possible que la migration ait pu être bloquée. Vérifiez si les pods calico-typha et calico-node ont été supprimés de l'espace de nom kube-system et créés dans l'espace de nom calico-system. Si ces ressources n'ont pas été déplacées, il peut y avoir un problème avec un ou plusieurs noeuds worker.

Pour identifier et résoudre les problèmes liés à la migration:

  1. Vérifiez le statut des noeuds worker.

    kubectl get nodes
    

    Si vous voyez un noeud worker qui n'est pas à l'état Ready, par exemple NotReady ou SchedulingDisabled, la migration peut être bloquée.

    NotReadyExemple :

    NAME            STATUS   ROLES    AGE    VERSION
    10.177.112.32   NotReady <none>   2d2h   v1.30.0+IKS
    10.177.112.50   Ready    <none>   2d2h   v1.30.0+IKS
    10.177.112.52   Ready    <none>   2d2h   v1.30.0+IKS
    

    SchedulingDisabledExemple :

    NAME             STATUS                     ROLES    AGE   VERSION
    10.177.112.32   Ready,SchedulingDisabled   <none>   95m   v1.30.0+IKS
    10.177.112.50   Ready                      <none>   95m   v1.30.0+IKS
    10.177.112.52   Ready                      <none>   95m   v1.30.0+IKS
    
  2. Pour les noeuds worker à problème, réamorcez ou rechargez-les.

Résultat :

Lorsque les noeuds worker sont sains, les pods calico-typha et calico-node peuvent reprendre la mise à l'échelle dans l'espace de nom kube-system et la mise à l'échelle dans l'espace de nom calico-system.

Pour confirmer que la migration est terminée:

  1. Vérifiez que le déploiement calico-typha n'existe plus dans l'espace de nom kube-system.

    kubectl get deployment calico-typha -n kube-system
    

    Résultat :

    Error from server (NotFound): deployments.apps "calico-typha" not found
    
  2. Vérifiez qu'aucun noeud ne possède le libellé projectcalico.org/operator-node-migration.

    kubectl get nodes -l projectcalico.org/operator-node-migration
    

    Résultat :

    No resources found
    
  3. Si la migration est toujours bloquée, remplacez ou supprimez les noeuds problématiques. Pour plus d'informations, voir Débogage des noeuds worker.

Une fois que vous avez confirmé que la migration est terminée, passez à la mise à jour du maître vers IBM Cloud Kubernetes Service version 1.30.