Mettre à niveau un registre Harbor hors ligne sur vSphere

Cette rubrique décrit comment mettre à niveau un registre d'images Harbor privé à partir d'un fichier OVA téléchargé, afin de mettre à niveau Tanzu Kubernetes Grid (TKG) dans un environnement de vSphere hors ligne. Ce registre Harbor s'exécute en parallèle et séparément de TKG pour stocker et gérer les images de composants utilisées par TKG.

Important

Ce déploiement d'Harbor basé sur une VM est uniquement pris en charge pour héberger des images système TKG dans un environnement à accès restreint à Internet ou isolé. Pour déployer une instance de Harbor évolutive et hautement disponible pouvant gérer un grand nombre d'images pour des applications hébergées dans un environnement de production, déployez le module Harbor sur des clusters TKG, comme décrit dans la section Installer Harbor pour le registre de service du document Création et gestion de clusters de charge de travail TKG 2.4 avec la CLI Tanzu.

Pour sauvegarder et restaurer un registre Harbor hors ligne, reportez-vous à la section Sauvegarder et restaurer un registre Harbor hors ligne sur vSphere.

Les procédures suivantes mettent à niveau une instance de Harbor qui s'exécute sur vSphere, à l'aide de deux fichiers OVA :

  • OVA 1 est l'ancien fichier OVA Harbor que vous mettez à niveau. Par exemple, un fichier OVA Harbor v2.7.1.
  • OVA 2 est le fichier OVA exécutant la nouvelle version de Harbor vers laquelle vous effectuez une mise à niveau, par exemple, fichier OVA Harbor v2.8.4.

Le disque de données pour OVA 1 contient toutes les données actuellement utilisées par Harbor, notamment les images, les utilisateurs, les projets et les mots de passe.

Lors de la mise à niveau de Harbor à partir de l'ancien fichier OVA, OVA 1 vers le nouveau fichier OVA, OVA 2, vous pouvez effectuer une mise à niveau automatique en exécutant un script ou manuellement.

Remarque

Le processus de mise à niveau du fichier OVA remplace les paramètres Mot de passe administrateur (Administrator Password) et Mot de passe de la base de données (Database Password) sous Personnaliser le modèle (Customize Template) > Configurations Harbor (Harbor Configurations) par les paramètres de mot de passe du fichier OVA 1.

Le fichier OVA Harbor 2.8.2 et les versions ultérieures prennent en charge la configuration de bip et de default-address-pools pour Docker daemon.json. Cette configuration n'est pas migrée par les étapes manuelles ou par l'exécution du script harbor-upgrade.sh. Vous devez le reconfigurer lors du déploiement du nouveau fichier OVA, OVA 2.

Mettre à niveau automatiquement le fichier OVA Harbor

Le fichier OVA Harbor 2.8.2 et les versions ultérieures fournissent un script, harbor-upgrade.sh, qui effectue les mises à niveau du fichier OVA Harbor automatiquement.

Important

Avant d'exécuter le script harbor-upgrade.sh, vous devez supprimer tous les snapshots existants de la VM OVA 1. En présence de snapshots sur la VM OVA 1, le disque de données ne peut pas être développé lorsque vous effectuez la mise à niveau automatique. Le script se ferme alors sans s'exécuter. Pour ne pas supprimer les snapshots, vous devez effectuer une mise à niveau manuelle.

  1. Téléchargez un nouveau fichier OVA Harbor à partir de la page de téléchargements de Tanzu Kubernetes Grid et déployez-le sur vSphere en suivant la procédure décrite dans la section Déployer un registre Harbor hors ligne sur vSphere.
  2. Mettez sous tension la VM OVA 2 résultante.
  3. Utilisez SSH pour vous connecter à la nouvelle VM OVA 2.
  4. Exécutez le script /etc/goharbor/harbor/harbor-upgrade.sh.

    Avant d'exécuter le script, vous devez collecter certaines informations requises pour exécuter le script :

    • Nom de l'ancienne VM OVA
    • Nom de domaine complet ou adresse IP de l'instance de vCenter Server
    • Nom d'utilisateur de l'administrateur vCenter Server
    • Mot de passe de l'administrateur vCenter (vous devrez peut-être le mettre entre guillemets simples s'il contient des caractères spéciaux)
    /etc/goharbor/harbor/harbor-upgrade.sh --old-ova-vm-name OLD_OVA_VM_NAME
    

Pour plus d'informations sur l'utilisation du script harbor-upgrade.sh, exécutez /etc/goharbor/harbor/harbor-upgrade.sh -h.

Mettre à niveau manuellement le fichier OVA Harbor

Pour effectuer une mise à niveau manuelle d'Harbor, migrez les données en ajoutant le disque de données OVA 1 comme disque existant à OVA 2, puis en copiant sur son contenu :

  1. Téléchargez un nouveau fichier OVA Harbor à partir de la page de téléchargements de Tanzu Kubernetes Grid et déployez-le sur vSphere en suivant la procédure décrite dans la section Déployer un registre Harbor hors ligne sur vSphere.

  2. Mettez OVA 1 hors tension.

    1. Dans vSphere, cliquez avec le bouton droit sur OVA 1 dans l'inventaire et sélectionnez Alimentation (Power) > Arrêter le SE invité (Shut Down Guest OS) :

      Capture d'écran d'une mise à niveau Harbor

    2. Prenez un snapshot d'OVA 1 :

      Capture d'écran d'une mise à niveau Harbor

      Pour effectuer une restauration à partir de cette sauvegarde, reportez-vous à la section Sauvegarder et restaurer un registre Harbor hors ligne sur vSphere.

    3. Récupérez l'emplacement du fichier de disque OVA 1. Cliquez avec le bouton droit sur OVA 1 dans l'inventaire, sélectionnez Modifier les paramètres (Edit Settings) > Fichier du disque (Disk File) et enregistrez la valeur.

      Capture d'écran d'une mise à niveau Harbor

    Ne remettez pas OVA 1 sous tension pendant le processus de mise à niveau.

  3. Connectez-vous à OVA 2 via ssh :

    ssh root@OVA2-IP
    
  4. Arrêtez Harbor sur OVA 2 :

    1. Vérifiez que Harbor est en cours d'exécution :

      docker ps
      
    2. Arrêtez le processus Harbor :

      systemctl stop harbor
      
    3. Vérifiez que Harbor est arrêté et qu'il n'est pas en cours d'exécution :

      docker ps
      
  5. Ajoutez le disque de données OVA 1 en tant que « disque existant » à OVA 2 :

    1. dans vSphere, cliquez avec le bouton droit sur la VM OVA 2 et choisissez Modifier les paramètres (Edit Settings).

      Capture d'écran d'une mise à niveau Harbor

    2. Une nouvelle fenêtre s'affiche. Dans le menu déroulant AJOUTER UN NOUVEAU PÉRIPHÉRIQUE (ADD NEW DEVICE) en haut à droite, sélectionnez Disque dur existant (Existing Hard Disk).

      Capture d'écran d'une mise à niveau Harbor

    3. Sous Sélectionner un fichier (Select File), sélectionnez la banque de données OVA 1, telle que vsanDatastore, ainsi que l'emplacement de son fichier de disque, comme enregistré précédemment. L'emplacement du fichier se termine par .vmdk. Cliquez sur OK.

      Capture d'écran d'une mise à niveau Harbor

    4. Une liste Nouveau disque dur (New Hard Disk) est ajoutée dans l'onglet Modifier les paramètres (Edit Settings) > Paramètres virtuels (Virtual Settings). Cliquez sur OK.

      Capture d'écran d'une mise à niveau Harbor

    5. Attendez la fin de l'ajout du nouveau disque dans la barre Tâches récentes (Recent Tasks).

    6. Pour vérifier que le disque de données d'OVA 1 a été ajouté à OVA 2, cliquez avec le bouton droit sur sa liste et sélectionnez Modifier les paramètres (Edit Settings).

      Capture d'écran d'une mise à niveau Harbor

  6. Montez le disque avec les données OVA 1 dans le système de fichiers OVA 2 :

    1. À partir de l'invite de commande connectée à OVA 2 via ssh, exécutez lsblk pour voir à quel périphérique de traitement par bloc le disque récemment ajouté a été ajouté.

      Capture d'écran d'une mise à niveau Harbor

    2. Exécutez mkdir -p /ova1 pour créer un point de montage pour le nouveau disque dans le système de fichiers OVA 2.

      Capture d'écran d'une mise à niveau Harbor

    3. Exécutez la commande mount pour monter le périphérique de traitement par bloc sur le point de montage situé au niveau supérieur du système de fichiers, par exemple :

      mount DEVICE /ova1
      

      DEVICE est le nouveau périphérique répertorié par lsblk, par exemple /dev/sdc1.

      Capture d'écran d'une mise à niveau Harbor

  7. Sauvegardez le fichier harbor.yml dans un nom de fichier qui indique la version Harbor OVA 2, par exemple :

    Si votre nouvelle version du fichier OVA Harbor (ova2) est la version 2.8.4, remplacez harborXYZ.origin.yml par harbor284.origin.yml.

    mv /etc/goharbor/harbor/harbor.yml /etc/goharbor/harbor/harborXYZ.origin.yml
    
  8. Copiez le fichier harbor.yml du disque de données OVA 1 migré vers le répertoire Harbor OVA 2, par exemple :

    cp -pr /ova1/harbor.yml /etc/goharbor/harbor/harbor.yml
    
  9. Si votre fichier OVA 2 dispose d'une adresse IP allouée dynamiquement, ou d'une adresse IP statique ou d'un nom de domaine complet différent d'OVA 1, vous devrez peut-être mettre à jour le paramètre hostname dans son fichier /etc/goharbor/harbor/harbor.yml en conséquence. Si la valeur hostname copiée à partir d'OVA 1 est incorrecte pour OVA 2, remplacez-la par une adresse ou un nom de domaine complet correct pour OVA 2.

    Remarque

    Vous n'avez pas besoin de copier les certificats d'OVA 1 vers OVA 2. En fonction de la gestion du réseau, le certificat sur OVA 2 est nouveau ou identique au certificat OVA 1, mais il fonctionnera dans tous les cas.

  10. Supprimez les répertoires suivants d'OVA 2 :

    rm -rf /storage/data/!(ca_download)
    rm -rf /storage/log/*
    
  11. Copiez le répertoire de données du disque de données OVA 1 vers OVA 2 :

    cp -pr /ova1/data/!(ca_download) /storage/data
    
  12. Copiez le répertoire des journaux Harbor du disque de données OVA 1 vers OVA 2 :

    cp -pr /ova1/log/* /storage/log
    
  13. Démontez le disque OVA 1 d'OVA 2 :

    umount /ova1
    rm -rf /ova1
    
  14. Supprimez le disque de données OVA 1 d'OVA 2. Dans vCenter, Matériel virtuel (Virtual Hardware) > Modifier les paramètres (Edit Settings) pour OVA 2, cliquez sur le bouton X sur la ligne répertoriant le disque dur OVA 1 ajouté. Ne cochez pas la case Supprimer les fichiers à partir de la banque de données (Delete files from datastore) et cliquez sur OK pour confirmer.

    Capture d'écran d'une mise à niveau Harbor

    Capture d'écran d'une mise à niveau Harbor

  15. Mettez à niveau le fichier harbor.yml copié en exécutant migrate dans le conteneur Harbor :

    cd /etc/goharbor/harbor
    docker run -it --rm -v /:/hostfs vmware.io/goharbor/prepare:TAG migrate -i /etc/goharbor/harbor/harbor.yml
    

    TAG correspond à la balise d'image Harbor pour OVA 2, par exemple :

    root@localhost [ /etc/goharbor/harbor ]# docker images | grep vmware.io/goharbor/prepare
    vmware.io/goharbor/prepare                v2.8.4_vmware.2   a82940c8052a   2 weeks ago   163MB
    
    root@localhost [ /etc/goharbor/harbor ]# docker run -it --rm -v /:/hostfs vmware.io/goharbor/prepare:v2.8.4_vmware.2 migrate -i /etc/goharbor/harbor/harbor.yml
    migrating to version 2.7.0
    migrating to version 2.8.0
    Written new values to /etc/goharbor/harbor/harbor.yml
    
  16. Copiez la nouvelle version OVA 2 de Harbor harbor.yml dans /storage/harbor.yml:

    cp -pr /etc/goharbor/harbor/harbor.yml /storage/harbor.yml
    
  17. Exécutez le script Harbor prepare dans OVA 2. Selon que vous avez activé ou non le scanner Harbor par défaut dans OVA 1, vous devrez peut-être ajouter l'indicateur --with-trivy :

    • Scanner non activé (Scanner not enabled) :

      cd /etc/goharbor/harbor && /etc/goharbor/harbor/prepare
      
    • Scanner activé (Scanner enabled) :

      cd /etc/goharbor/harbor && /etc/goharbor/harbor/prepare --with-trivy
      
  18. Démarrez le service Harbor :

    systemctl start harbor
    
check-circle-line exclamation-circle-line close-line
Scroll to top icon