Erfahren Sie, wie Harbor als Supervisor-Dienst installiert und konfiguriert wird. Sie können Harbor dann als Registrierung für Arbeitslasten verwenden, die auf Tanzu Kubernetes Grid-Clustern und vSphere-Pods ausgeführt werden. Harbor benötigt Contour als Ingress-Controller. Installieren Sie daher zuerst den Contour Supervisor-Dienst dann Harbor.

Installieren von Harbor als Supervisor-Dienst

Sie installieren Harbor als Supervisor-Dienst über die Option Arbeitslastverwaltung im vSphere Client.

Voraussetzungen

  • Stellen Sie sicher, dass Sie auf vCenter Server 8.0a oder höher aktualisiert haben. Contour- und Harbor-Supervisor-Dienste werden mit vCenter Server 8.0a und höher unterstützt.
  • Überprüfen Sie, ob Sie auf dem vCenter Server-System, dem Sie die Dienste hinzufügen, über die Berechtigung Supervisor-Dienste verwalten verfügen.
  • Installieren Sie Contour als Supervisor-Dienst auf demselben Supervisor, in dem Sie Harbor installieren möchten. Weitere Informationen hierzu finden Sie unter Installieren von Contour als Supervisor-Dienst in vSphere IaaS control plane.
  • Weisen Sie einen FQDN für den Zugriff auf die Harbor-Administrator-Benutzeroberfläche zu.

Prozedur

  1. Navigieren Sie zum Abschnitt Harbor Versions des Repositorys Supervisor-Services und laden Sie die folgenden Dateien herunter:
    • Die Harbor-Dienstdefinition, der Link lautet Harbor vX.X.X.. Beispiel Harbor 2.5.3
    • Die Harbor-Konfigurationsdatei, der Link lautet values for vX.X.X. Beispiel: values 2.5.3
    Die Dateien sehen wie folgt aus:
    • harbor.yml
    • harbor-data-values.yml
  2. Navigieren Sie im vSphere Client zu Arbeitslastverwaltung und wählen Sie Dienste aus.
  3. Stellen Sie den Harbor-Operator bereit, indem Sie auf Neuen Dienst hinzufügen klicken und die Dienstdefinition harbor.yml hochladen.
    Ein Fenster für die Bereitstellung des Harbor-Operators
    Sobald der Harbor-Operator bereitgestellt wurde, wird er auf der Registerkarte Dienste angezeigt: Ein Fenster, das darstellt, wie die Harbor- und Contour-Operatoren nach der Bereitstellung aussehen
  4. Jetzt, da der Harbor-Operator bereitgestellt ist, können Sie den Supervisor-Dienst auf demselben Supervisor installieren, auf dem Contour ausgeführt wird.
    1. Öffnen Sie die Datei harbor-data-values.yml und bearbeiten Sie die Eigenschaften nach Bedarf.
      Eigenschaft Wert Beschreibung
      hostname: myharbor.com
      
        https: 443
      FQDN Ändern Sie den FQDN, den Sie für den Zugriff auf die Harbor-Administrator-Benutzeroberfläche festgelegt haben.
      tlsCertificate:
        tlsSecretLabels: {"managed-by": "vmware-vRegistry"}
      Hinweis: Nicht ändern
      Dieser Wert ist erforderlich, damit die TKG-Integration funktioniert.
      harborAdminPassword: Harbor12345
      Er kann optional geändert werden. Das Harbor-Kennwort wird bei der Installation verwendet. Sie können es über die Harbor-Administrator-Benutzeroberfläche ändern, sobald der Dienst installiert wurde.
      secretKey: 0123456789ABCDEF
      Folge von 16 Zeichen Der für die Verschlüsselung verwendete geheime Schlüssel. Muss eine Folge von 16 Zeichen sein.
      database:
        password: change-it
      Ein sicheres Kennwort Ein anfängliches Kennwort für die Postgres-Datenbank.
      core:
        replicas: 
        secret: change-it
        xsrfKey: 0123456789ABCDEF0123456789ABCDEF
      jobservice:
        replicas: 1
        secret: change-it
      registry:
        replicas: 
        secret: change-it
      Zeichenfolgen für die geheimen Schlüssel und eine XSRF-Schlüsselzeichenfolge mit 32 Zeichen Ändern Sie diese Option, um Ihre eigenen geheimen Schlüssel einzurichten.
      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
       
      Name der Speicherklasse

      Die Speicherrichtlinien, die als Speicherklassen für die Bereitstellung von PVCs verwendet werden, in der Harbor-Registrierung, dem Auftragsdienst, der Datenbank usw.

      Legen Sie alle Eigenschaften auf vorhandene Speicherrichtlinien fest, die in Ihrer Umgebung verfügbar sind. Ändern Sie den Namen der Speicherrichtlinie in einen gültigen Speicherklassennamen, indem Sie auch alle Großbuchstaben durch Kleinbuchstaben ersetzen und alle „_“-Symbole und Leerzeichen durch einen Bindestrich „-“ ersetzen. Ändern Sie beispielsweise Harbor-Speicherrichtlinie in harbor-storage-policy.

      network:
        ipFamilies: ["IPv4"]
      Hinweis: Nicht ändern
      IPv6 wird nicht unterstützt.
    2. Gehen Sie zurück zu Arbeitslastverwaltung > Dienste und wählen Sie auf der Dienstkarte Harbor die Option Aktionen > Auf Supervisoren installieren aus.
    3. Wählen Sie den Supervisor aus, auf dem Contour ausgeführt wird, und kopieren Sie in YAML-Dienstkonfiguration den Inhalt der geänderten Datei harbor-data-values.yml und fügen Sie ihn ein.
    4. Klicken Sie auf OK.
      Sobald die Installation beginnt, können Sie sie verfolgen, indem Sie auf das Feld Supervisoren auf der Karte des Harbor-Diensts klicken. Es kann einige Sekunden dauern, bis die Zahl neben Supervisoren ansteigt. Der Dienst befindet sich im Konfigurationszustand, bis der gewünschte Zustand erreicht ist. Wenn der gewünschte Zustand erreicht ist, ändert sich der Status des Diensts zu „Wird ausgeführt“.

Ergebnisse

Sie können den vSphere-Namespace und die vSphere-Pods, die für Harbor erstellt wurden, in der Ansicht Hosts und Cluster anzeigen. Eine Ansicht des Harbor-Namespace mit allen vSphere Pods

Zuordnen des Harbor-FQDN zur IP-Adresse des Envoy-Ingress

Nachdem Harbor erfolgreich installiert wurde, schließen Sie einen Datensatz der Harbor-FQDN-Zuordnung zur IP-Adresse des Envoy-Ingress in einen externen DNS-Server ein, der mit dem Supervisor konfiguriert ist.

Tanzu Kubernetes Grid-Cluster, vSphere-Pods und der Supervisor müssen den Harbor-FQDN auflösen können, um Images aus der Registrierung abrufen zu können.

Navigieren Sie zum Auffinden der IP-Adresse des Envoy-Ingress zum Contour-Namespace, wählen Sie Netzwerk und dann Dienste aus:

Der Screenshot zeigt die Envoy-IP-Adresse.

Einrichten einer Vertrauensstellung mit dem Supervisor-Dienst von Harbor

Nach der Installation von Harbor müssen Sie eine Vertrauensstellung zwischen dem Supervisor und Harbor konfigurieren, um Harbor als Registrierung für vSphere-Pods zu verwenden. Für Tanzu Kubernetes Grid-Cluster, die sich auf demselben Supervisor wie Harbor befinden, wird automatisch eine Vertrauensstellung zwischen Harbor und dem Dienst hergestellt. Um Harbor als Registrierung für Tanzu Kubernetes Grid-Cluster zu verwenden, die auf verschiedenen Supervisoren ausgeführt werden, müssen Sie eine Vertrauensstellung zwischen Harbor und diesen Tanzu Kubernetes Grid-Clustern konfigurieren.

Herstellen einer Vertrauensstellung zwischen Harbor und dem Supervisor

So stellen Sie eine Vertrauensstellung zwischen Harbor und dem Supervisor her:
  1. Extrahieren Sie das Harbor-CA-Zertifikat aus der Benutzeroberfläche von Harbor oder mithilfe des geheimen TLS-Schlüssels auf der Steuerungsebene vom Supervisor. Sie können die Harbor-Datei ca.cert in der Harbor-Administratorbenutzeroberfläche unter Administration > Configuration > Registry Root Certificate > Download abrufen.
  2. Fügen Sie das Harbor-CA-Zertifikat zum image-fetcher-ca-bundle ConfigMap im kube-system-Namespace hinzu. Sie müssen mit einem vCenter Single Sign-On-Administratorkonto angemeldet sein und über die Berechtigung zum Bearbeiten von image-fetcher-ca-bundle verfügen.
    1. Konfigurieren Sie die Umgebungsvariable KUBE_EDITOR wie hier beschrieben:
    2. Bearbeiten Sie die ConfigMap mit dem folgenden Befehl:
      kubectl edit configmap image-fetcher-ca-bundle -n kube-system
    3. Hängen Sie den Inhalt der Harbor-Datei ca.cert an die ConfigMap unterhalb des vorhandenen Supervisor-Zertifikats an. Ändern Sie das Supervisor-Zertifikat auf keinen Fall.
      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. Speichern Sie die an der Datei vorgenommenen Änderungen. Als Ergebnis meldet kubectl:
      configmap/image-fetcher-ca-bundle bearbeitet

Einrichten einer Vertrauensstellung zwischen Harbor und Tanzu Kubernetes Grid-Clustern mit anderen Supervisoren als Harbor

Tanzu Kubernetes Grid-Cluster, die auf anderen Supervisoren als dem ausgeführt werden, auf dem Harbor installiert ist, müssen über Netzwerkkonnektivität mit Harbor verfügen. Diese Tanzu Kubernetes Grid-Cluster müssen den Harbor-FQDN auflösen können.

Um eine Vertrauensstellung zwischen Harbor und den Tanzu Kubernetes Grid-Clustern herzustellen, extrahieren Sie das Harbor-CA-Zertifikat aus der Benutzeroberfläche von Harbor oder mithilfe des geheimen TLS-Schlüssels auf der Supervisor-Steuerungsebene. Führen Sie dann die unter Integrieren eines TKG 2-Clusters mit einer privaten Containerregistrierung aufgeführten Schritte aus.