Pour les clusters créés à l'aide d'anciennes versions de VMware Cloud Director Container Service Extension, il est nécessaire d'effectuer une mise à niveau de script ponctuelle. Cela permet aux clusters d'être compatibles avec l'instance de VMware Cloud Director Container Service Extension que vous souhaitez utiliser.

Par défaut, les clusters créés dans les anciennes versions de VMware Cloud Director Container Service Extension fonctionnent sur les anciennes versions suivantes des composants Kubernetes. Il est nécessaire d'effectuer une mise à niveau vers les versions plus récentes décrites ci-dessous.
Composants Kubernetes Version existante Mettre à niveau pour la version 4.2 Mettre à niveau pour la version 4.2.1 Mettre à niveau pour la version 4.2.2
Kubernetes Cloud Provider for VMware Cloud Director 1.5.0, 1.4.1 ou versions antérieures 1.5.0 1.6.0 1.6.0
Kubernetes Container Storage Interface driver for VMware Cloud Director 1.5.0, 1.4.1 ou versions antérieures 1.5.0 1.6.0 1.6.0
Kubernetes Cluster API Provider for VMware Cloud Director 1.2.0, 1.1.1 ou versions antérieures 1.2.0 1.3.0 1.3.0
Projecteur RDE 0.7.0, 0.6.1 ou versions antérieures 0.7.0 0.7.0 0.7.1

Conditions préalables

Avant d'effectuer cette tâche, assurez-vous que les conditions préalables suivantes sont remplies :
  • La machine doit utiliser le système d'exploitation Ubuntu GNU/Linux 20.04.
  • Assurez-vous que kubectl est installé. Pour plus d'informations, reportez-vous aux sections Installer et configurer kubectl sous Linux.
  • Assurez-vous d'installer et d'utiliser Docker. Pour plus d'informations, reportez-vous à la section Installer Docker Engine.
  • Assurez-vous que le fichier kubeconfig du cluster se trouve sur la machine à un chemin accessible.

Procédure

  1. Utilisez la commande suivante pour configurer le répertoire $HOME :
    export $HOME=<directory of choice>
    Note : Pour vérifier si le répertoire $HOME est défini correctement, utilisez la commande suivante pour imprimer le répertoire $HOME. Il ne doit pas être vide.
    echo $HOME
  2. Utilisez la commande suivante pour créer une structure de dossiers pour le montage et le stockage du contenu du script de mise à niveau du cluster :
    mkdir -p $HOME/cluster-upgrade-script
  3. Accédez au dossier créé et utilisez la commande suivante pour extraire l'image cluster-upgrade-script de http://projects.registry.vmware.com.
    • Pour la version 4.2 :

      cd $HOME/cluster-upgrade-script
      docker pull projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.2
    • Pour la version 4.2.1 :
      cd $HOME/cluster-upgrade-script
      docker pull projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.3
    • Pour la version 4.2.2 :
      cd $HOME/cluster-upgrade-script
      docker pull projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.4
  4. Après avoir extrait l'image, utilisez Docker pour extraire le contenu de l'image vers le dossier en créant un conteneur et en l'extrayant.
    • Pour la version 4.2 :
      docker container create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.2
      docker export "temp_container" | tar -C $HOME/cluster-upgrade-script -xvf - --strip-components 2
    • Pour la version 4.2.1 :
      docker container create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.3
      docker export "temp_container" | tar -C $HOME/cluster-upgrade-script -xvf - --strip-components 2
    • Pour la version 4.2.2 :
      docker container create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.4
      docker export "temp_container" | tar -C $HOME/cluster-upgrade-script -xvf - --strip-components 2
  5. Une fois le contenu extrait dans le dossier, vous pouvez supprimer le conteneur temporaire en toute sécurité :
    docker container rm "temp_container" 
  6. Une fois tout le contenu extrait dans le dossier principal, ouvrez le répertoire et mettez à jour les autorisations du script :
    cd $HOME/cluster-upgrade-script
    chmod +x upgrade_cluster_components.sh
  7. Exécutez la commande suivante dans le dossier principal :
    ./upgrade_cluster_components.sh kubeconfig-absolute-file-path [image registry] 
    
    Example: ./upgrade_cluster_components.sh $HOME/kubeconfig-cluster.txt projects.registry.vmware.com

    image_registry est un paramètre facultatif qui définit le registre à partir duquel le script doit extraire des images et s'attend à des images telles que CSI/CPI CRS, manifestes CAPVCD, clusterctl, etc. pour y être hébergé.

    Lorsque vous n'utilisez pas le registre private/local/airgap, utilisez projects.registry.vmware.com comme image_registry. Par contre, si le paramètre est vide, il est défini par défaut sur image_registry: projects.registry.vmware.com.

    Pour le registre privé/local, utilisez le lien de votre registre pour le paramètre. Par exemple, my-private.registry.com. Assurez-vous que la machine virtuelle sur laquelle vous exécutez les scripts approuve le registre, sinon elle risque de rencontrer des erreurs telles que x509 certificate signed by unknown authority.

    Note :
    • Lors de l'exécution du script, tous les artefacts d'image sont téléchargés sur $HOME/cluster-upgrade-packages/.
    • En cas d'erreur lors de la mise à niveau du script, vous pouvez supprimer ce dossier en toute sécurité et réexécuter le script pour créer ce dossier.
    • Un dossier supplémentaire est créé pour clusterctl dans $HOME/.cluster-api. Vous pouvez supprimer ce dossier en toute sécurité, car toute nouvelle tentative d'exécution du script crée ce dossier.

Résultats

Une fois le script de mise à niveau du cluster exécuté, les versions du composant Kuberetes du cluster sont mises à jour. Vous pouvez afficher les versions mises à jour du composant Kubernetes dans l'interface utilisateur de Kubernetes Container Clusters.