Découvrez comment installer et configurer Harbor en tant que Service de superviseur. Vous pouvez ensuite utiliser Harbor comme registre pour les charges de travail s'exécutant sur des clusters Tanzu Kubernetes Grid et Espaces vSphere. Harbor requiert Contour comme contrôleur d'entrée. Par conséquent, vous devez d'abord installer le Service de superviseur Contour, puis installer Harbor.

Installer Harbor en tant que Service de superviseur

Harbor s'installe en tant que Service de superviseur via l'option Gestion de la charge de travail dans vSphere Client.

Conditions préalables

  • Vérifiez que vous avez effectué la mise à niveau vers vCenter Server 8.0a ou une version ultérieure. Les Services de superviseur Contour et Harbor sont pris en charge avec vCenter Server 8.0a et versions ultérieures.
  • Vérifiez que vous disposez du privilège Gérer les services de superviseur sur le système vCenter Server sur lequel vous ajoutez les services.
  • Installez Contour en tant que Service de superviseur sur le même Superviseur que celui sur lequel vous souhaitez installer Harbor. Reportez-vous à la section Installer Contour en tant que Service de superviseur dans vSphere with Tanzu.
  • Désignez et utilisez le nom de domaine complet pour accéder à l'interface utilisateur d'administration de Harbor.

Procédure

  1. Accédez à la section Versions de Harbor du référentiel Supervisor-Services et téléchargez les fichiers suivants :
    • Définition du service Harbor. Le lien se nomme Harbor vX.X.X. Par exemple Harbor 2.5.3
    • Le fichier de configuration Harbor. Le lien se nomme valeurs pour vX.X.X. Par exemple valeurs 2.5.3
    Les fichiers qui en résultent ressemblent à ceci :
    • harbor.yml
    • harbor-data-values.yml
  2. Dans vSphere Client, accédez à Gestion de la charge de travail, puis sélectionnez Services.
  3. Déployez l'opérateur Harbor en cliquant sur Ajouter un nouveau service et en téléchargeant la définition de service harbor.yml.
    Une fenêtre affiche le déploiement de l'opérateur Harbor
    Une fois l'opérateur Harbor déployé, il s'affiche sur l'onglet Services : Une fenêtre indiquant comment les opérateurs Harbor et Contour se présentent après leur déploiement
  4. Maintenant que l'opérateur Harbor est déployé, vous pouvez installer le Service de superviseur sur le même Superviseur que celui sur lequel Contour s'exécute.
    1. Ouvrez le fichier harbor-data-values.yml et modifiez les propriétés si nécessaire.
      Propriété Valeur Description
      hostname: myharbor.com
      
        https: 443
      Nom de domaine complet Passez au nom de domaine complet que vous avez désigné pour accéder à l'interface utilisateur d'administration Harbor.
      tlsCertificate:
        tlsSecretLabels: {"managed-by": "vmware-vRegistry"}
      Note : Ne pas changer
      Cette value est nécessaire au fonctionnement de l'intégration TKG par défaut.
      harborAdminPassword: Harbor12345
      Modification facultative Mot de passe Harbor utilisé lors de l'installation. Vous pouvez le modifier via l'interface utilisateur d'administrateur Harbor une fois le service installé.
      secretKey: 0123456789ABCDEF
      Chaîne de 16 caractères Clé secrète utilisée pour le chiffrement. Doit être une chaîne de 16 caractères.
      database:
        password: change-it
      Un mot de passe sécurisé Mot de passe initial utilisé pour la base de données Postgres.
      core:
        replicas: 
        secret: change-it
        xsrfKey: 0123456789ABCDEF0123456789ABCDEF
      jobservice:
        replicas: 1
        secret: change-it
      registry:
        replicas: 
        secret: change-it
      Chaînes pour les secrets et chaîne de clé XSRF de 32 caractères Modifiez pour configurer vos propres secrets.
      persistence:
        persistentVolumeClaim:
          registry:
            storageClass: "insert-storage-class-name-here"
            subPath: ""
            accessMode: ReadWriteOnce
            size: 10Gi
          jobservice:
            storageClass: "insert-storage-class-name-here"
            subPath: ""
            accessMode: ReadWriteOnce
            size: 1Gi
          database:
            storageClass: "insert-storage-class-name-here"
            subPath: ""
            accessMode: ReadWriteOnce
            size: 1Gi
          redis:
            storageClass: "insert-storage-class-name-here"
            subPath: ""
            accessMode: ReadWriteOnce
            size: 1Gi
          trivy:
            storageClass: "insert-storage-class-name-here"
            subPath: ""
            accessMode: ReadWriteOnce
            size: 5Gi
       
      Nom de la classe de stockage

      Stratégies de stockage qui seront utilisées comme classes de stockage pour le provisionnement des PVC dans le registre Harbor, le service de tâche, la base de données, etc.

      Définissez chacune des propriétés sur les stratégies de stockage existantes disponibles dans votre environnement. Remplacez le nom de la stratégie de stockage par un nom de classe de stockage valide en remplaçant toutes les lettres majuscules par des lettres minuscules. Remplacez également tous les symboles « _ » et les espaces par un tiret « - ». Par exemple, changez Stratégie Stockage Harbor en stratégie-stockage-harbor.

      network:
        ipFamilies: ["IPv4"]
      Note : Ne pas changer
      IPv6 n'est pas pris en charge.
    2. Revenez à Gestion de la charge de travail > Services et, dans la carte de service Harbor, sélectionnez Actions > Installer sur les superviseurs.
    3. Sélectionnez le Superviseur sur lequel Contour s'exécute et, dans Configuration du service YAML, collez le contenu du fichier harbor-data-values.yml modifié que vous avez copié.
    4. Cliquez sur OK.
      Une fois que l'installation a commencé, vous pouvez la suivre en cliquant sur le champ Superviseurs sur la carte de service Harbor. Il faut parfois plusieurs secondes pour que le nombre en regard de Superviseurs augmente. Le service est dans l'état Configuration jusqu'à ce que l'état souhaité soit atteint. Lorsque l'état souhaité est atteint, l'état du service passe à En cours d'exécution.

Résultats

Vous pouvez afficher le Espace de noms vSphere et les Espaces vSphere créés pour Harbor dans la vue Hôtes et cluster. Vue de l'espace de noms Harbor avec tous les espaces vSphere

Mapper le nom de domaine complet Harbor à l'adresse IP d'entrée Envoy

Une fois Harbor installé avec succès, incluez un enregistrement du mappage du nom de domaine complet Harbor à l'adresse IP d'entrée Envoy dans un serveur DNS externe configuré avec le Superviseur.

Les clusters Tanzu Kubernetes Grid, les Espaces vSphere et le Superviseur doivent être en mesure de résoudre le nom de domaine complet Harbor pour pouvoir extraire des images du registre.

Pour localiser l'adresse IP d'entrée Envoy, accédez à l'espace de noms Contour, sélectionnez Réseau, puis sélectionnez Services :

La capture d'écran montre l'adresse IP Envoy.

Établissement d'une relation de confiance avec le Service de superviseur Harbor

Une fois Harbor installé, vous devez configurer la relation de confiance entre le Superviseur et Harbor pour l'utiliser comme registre pour les Espaces vSphere. Les clusters Tanzu Kubernetes Grid qui se trouvent sur le même Superviseur que Harbor ont automatiquement établi une relation de confiance avec Harbor. Pour utiliser Harbor en tant que registre pour des clusters Tanzu Kubernetes Grid qui s'exécutent sur des Superviseurs différents, vous devez configurer la relation de confiance entre Harbor et ces clusters Tanzu Kubernetes Grid.

Établir une relation de confiance entre Harbor et le Superviseur

Pour établir une relation de confiance entre Harbor et le Superviseur :
  1. Extrayez l'autorité de certification Harbor à partir de l'interface utilisateur de Harbor ou à l'aide du secret TLS sur le plan de contrôle du Superviseur. Vous pouvez obtenir le fichier ca.cert Harbor dans l'interface utilisateur d'Harbor sous Administration > Configuration > Certificat racine du registre > Télécharger.
  2. Ajoutez l'autorité de certification Harbor au ConfigMap image-fetcher-ca-bundle dans l'espace de noms kube-system. Vous devez être connecté avec un compte d'administration vCenter Single Sign-On et avoir l'autorisation de modifier le image-fetcher-ca-bundle.
    1. Configurez la variable d'environnement KUBE_EDITOR comme cela est décrit ici :
    2. Modifiez le ConfigMaps à l'aide de la commande suivante :
      kubectl edit configmap image-fetcher-ca-bundle -n kube-system
    3. Ajoutez le contenu du fichier ca.cert de Harbor au ConfigMap sous le certificat Superviseur existant. Veillez à ne pas modifier le certificat du Superviseur.
      apiVersion: v1
      data:
        ca-bundle: |-
          -----BEGIN CERTIFICATE-----
          MIIC/jCCAeagAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl
          ...
          qB72tWi8M5++h2RGcVash0P1CUZOHkpHxGdUGYv1Z97Wl89dT2OTn3iXqn8d1JAK
          aF8=
          -----END CERTIFICATE-----
          -----BEGIN CERTIFICATE-----
          MIIDKDCCAhCgAwIBAgIQBbUsj7mqXXC5XRhqqU3GiDANBgkqhkiG9w0BAQsFADAU
          ...
          5q7y87vOLTr7+0MG4O01zK0dJYx2jVhZlsuduMYpfqRLLewVl0eGu/6vr2M=
          -----END CERTIFICATE-----    
      kind: ConfigMap
      metadata:
        creationTimestamp: "2023-03-15T14:28:34Z"
        name: image-fetcher-ca-bundle
        namespace: kube-system
        resourceVersion: "713"
        uid: 6b7611a0-25fa-40f7-b4f5-e2a13bd0afe3
    4. Enregistrez les modifications apportées au fichier. Il en résulte que kubectl signale :
      configmap/image-fetcher-ca-bundle modifié

Établissement d'une relation de confiance entre Harbor et le cluster Tanzu Kubernetes Grid s'exécutant sur des Superviseurs différents de Harbor

Les clusters Tanzu Kubernetes Grid s'exécutant sur des Superviseurs différents de celui sur lequel Harbor est installé doivent disposer d'une connectivité réseau avec Harbor. Ces clusters Tanzu Kubernetes Grid doivent être en mesure de résoudre le nom de domaine complet Harbor.

Pour établir une relation de confiance entre Harbor et les clusters Tanzu Kubernetes Grid, extrayez l'autorité de certification Harbor à partir de l'interface utilisateur de Harbor ou à l'aide du secret TLS sur le plan de contrôle du Superviseur, puis suivez les étapes répertoriées dans la section Intégrer un cluster TKG 2 à un registre de conteneur privé.