Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

Migration de VMware vSphere in-tree vers out-of-tree

Kubernetes s’éloigne de la gestion des fournisseurs de cloud in-tree. VMware vSphere dispose d’un fournisseur de cloud out-of-tree qui peut être utilisé en installant le fournisseur de cloud vSphere et les plugins de stockage cloud.

Cette page explique comment migrer du fournisseur de cloud vSphere in-tree vers out-of-tree, et gérer les VM existantes après la migration.

Elle suit les étapes fournies dans la documentation de migration vSphere officielle et fournit les étapes à réaliser dans Rancher.

Limitation du format cloud-config

Les volumes existants qui ont été provisionnés en utilisant le format cloud-config suivant ne seront pas migrés en raison d’un bug existant dans vSphere Cloud Storage Interface (CSI).

Si le cloud-config a ce format pour le chemin du datastore et du resource pool, le pilote vSphere CSI ne peut pas le reconnaître :

default-datastore: </datacenter>/datastore/<default-datastore-name>
resourcepool-path: "</datacenter>/host/<cluster-name>/Resources/<resource-pool-name>"

Les volumes provisionnés avec le fournisseur in-tree en utilisant le format suivant seront migrés correctement :

default-datastore: <default-datastore-name>
resourcepool-path: "<cluster-name>/Resources/<resource-pool-name>"

Problème Rancher relatif à ce bug : https://github.com/rancher/rancher/issues/31105

Conditions préalables

  • La migration CSI vSphere nécessite vSphere 7.0u1. Pour pouvoir gérer les volumes vSphere in-tree existants, mettez à niveau vSphere vers 7.0u1.

  • La version de Kubernetes doit être 1.19 ou supérieure.

Migration

1. Installer le plugin CPI

Avant d’installer le CPI, nous devons appliquer un taint à tous les nœuds avec node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule.

Cela peut être fait en exécutant les commandes suivantes :

curl -O https://raw.githubusercontent.com/rancher/helm3-charts/56b622f519728378abeddfe95074f1b87ab73b1e/charts/vsphere-cpi/taints.sh

Ou :

wget https://raw.githubusercontent.com/rancher/helm3-charts/56b622f519728378abeddfe95074f1b87ab73b1e/charts/vsphere-cpi/taints.sh
chmod +x taints.sh
./taints.sh <path to kubeconfig if running the command outside the cluster>

Une fois que tous les nœuds ont été marqués grâce à l’exécution du script, lancez le chart Helm vSphere CPI.

  1. Cliquez sur ☰ > Gestion des clusters.

  2. Allez au cluster où le chart vSphere CPI sera installé et cliquez sur Explorer.

  3. Cliquez sur Apps  Charts.

  4. Cliquez sur vSphere CPI.

  5. Cliquez sur Installer.

  6. Remplissez les détails requis du vCenter et cliquez sur Installer.

vSphere CPI initialise tous les nœuds avec ProviderID, qui est nécessaire pour le pilote vSphere CSI.

Vérifiez si tous les nœuds sont initialisés avec le ProviderID avec la commande suivante :

kubectl describe nodes | grep "ProviderID"

2. Installer le pilote CSI

  1. Cliquez sur ☰ > Gestion des clusters.

  2. Allez au cluster où le chart vSphere CSI sera installé et cliquez sur Explorer.

  3. Cliquez sur Apps  Charts.

  4. Click vSphere CSI.

  5. Cliquez sur Installer.

  6. Remplissez les détails requis du vCenter et cliquez sur Installer.

  7. Cochez Personnaliser les options Helm avant l’installation et cliquez sur Suivant.

  8. Dans l’onglet Fonctionnalités, cochez Activer la migration CSI.

  9. Optionnellement, allez à l’onglet Stockage et configurez un datastore. Ce chart crée un StorageClass avec le csi.vsphere.vmware.com comme provisionneur. Vous pouvez fournir l’URL du datastore à utiliser pour le provisionnement des volumes CSI lors de la création de ce StorageClass. L’URL du datastore peut être trouvée dans le client vSphere en sélectionnant le datastore et en allant à l’onglet Résumé. Remplissez les détails pour le StorageClass.

  10. Cliquez sur Installer.

3. Modifiez le cluster pour activer les indicateurs de fonctionnalité de migration CSI.

  1. Lors de la modification du cluster, si la version de Kubernetes est inférieure à 1.19, sélectionnez la version de Kubernetes 1.19 ou supérieure dans le menu déroulant Version de Kubernetes.

  2. Pour activer les indicateurs de fonctionnalité, cliquez sur "Modifier en tant que YAML", et ajoutez ce qui suit sous kube-controller et kubelet :

       extra_args:
         feature-gates: "CSIMigration=true,CSIMigrationvSphere=true"

4. Vider les nœuds de travail

Les nœuds de travail doivent être vidés pendant la mise à niveau avant de modifier les arguments du kubelet et du kube-controller-manager.

  1. Cliquez sur ☰ > Gestion des clusters.

  2. Allez dans le cluster où vous allez vider les nœuds de travail et cliquez sur ⋮ > Modifier la configuration.

  3. Dans la section Options avancées, définissez le champ Nœuds de travail maximum non disponibles sur 1.

  4. Pour vider les nœuds pendant la mise à niveau, sélectionnez Vider les nœuds  Oui.

  5. Définissez Forcer et Supprimer les données locales sur vrai.

  6. Cliquez sur Enregistrer pour mettre à niveau le cluster.