Come installare e configurare Harbor come Servizio supervisore. È possibile utilizzare Harbor come registro per i carichi di lavoro in esecuzione sui cluster Tanzu Kubernetes Grid e sui Pod vSphere. Harbor richiede Contour come controller di ingresso, pertanto sarà necessario installare il Servizio supervisore Contour prima di installare Harbor.

Installazione di Harbor come Servizio supervisore

È possibile installare Harbor come Servizio supervisore tramite l'opzione Gestione carico di lavoro in vSphere Client.

Prerequisiti

  • Verificare di aver effettuato l'aggiornamento a vCenter Server 8.0a o versioni successive. I Servizi supervisori Contour e Harbor sono supportati con vCenter Server 8.0a e versioni successive.
  • Verificare di disporre del privilegio Gestisci servizi supervisore nel sistema vCenter Server in cui si aggiungono i servizi.
  • Installare Contour come Servizio supervisore nello stesso Supervisore in cui si desidera installare Harbor. Vedere Installazione di Contour come Servizio supervisore in vSphere IaaS control plane.
  • Designare un nome di dominio completo per accedere all'interfaccia utente di amministrazione di Harbor.

Procedura

  1. Passare alla sezione Versioni Harbor del repository Supervisor-Services e scaricare i file seguenti:
    • La definizione del servizio Harbor; il collegamento è denominato Harbor vX.X.X. . Ad esempio, Harbor 2.5.3
    • Il file di configurazione di Harbor; il collegamento è denominato values for vX.X.X. Ad esempio, values 2.5.3
    I file risultanti sono simili ai seguenti:
    • harbor.yml
    • harbor-data-values.yml
  2. In vSphere Client accedere a Gestione carico di lavoro e selezionare Servizi.
  3. Distribuire l'operatore Harbor facendo clic su Aggiungi nuovo servizio e caricando la definizione del servizio harbor.yml.
    Una finestra che mostra la distribuzione dell'operatore Harbor
    Una volta distribuito, l'operatore Harbor viene visualizzato nella scheda Servizi: Una finestra che mostra l'aspetto degli operatori Harbor e Contour dopo che sono stati distribuiti
  4. Ora che l'operatore Harbor è stato distribuito, è possibile installare il Servizio supervisore nello stesso Supervisore in cui viene eseguito Contour.
    1. Aprire il file harbor-data-values.yml e modificare le proprietà in base alle esigenze.
      Proprietà Valore Descrizione
      hostname: myharbor.com
      
        https: 443
      FQDN Passare al nome di dominio completo designato per accedere all'interfaccia utente di amministrazione di Harbor.
      tlsCertificate:
        tlsSecretLabels: {"managed-by": "vmware-vRegistry"}
      Nota: Non effettuare modifiche
      Questo valore è necessario per il funzionamento dell'integrazione TKG.
      harborAdminPassword: Harbor12345
      Facoltativamente, è possibile effettuare modifiche La password di Harbor utilizzata durante l'installazione. Una volta installato il servizio, è possibile modificarla tramite l'interfaccia utente di amministrazione di Harbor.
      secretKey: 0123456789ABCDEF
      Stringa di 16 caratteri Chiave segreta utilizzata per la crittografia. Deve essere una stringa di 16 caratteri.
      database:
        password: change-it
      Una password sicura Una password iniziale per il database Postgres.
      core:
        replicas: 
        secret: change-it
        xsrfKey: 0123456789ABCDEF0123456789ABCDEF
      jobservice:
        replicas: 1
        secret: change-it
      registry:
        replicas: 
        secret: change-it
      Stringhe per i segreti e una stringa di 32 caratteri della chiave XSRF Effettuare le modifiche necessarie a configurare i propri segreti.
      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
       
      Nome della classe di storage

      I criteri di storage che verranno utilizzati come classi di storage per il provisioning delle PVC nel registro Harbor, nel servizio dei processi, nel database e così via.

      Impostare ciascuna proprietà sui criteri di storage esistenti disponibili nell'ambiente. Modificare il nome del criterio di storage con un nome di classe di storage valido sostituendo inoltre tutte le lettere maiuscole con lettere minuscole e tutti i simboli "_" e gli spazi con un trattino, "-". Ad esempio, modificare Criterio di storage Harbor in criterio-di-storage-harbor.

      network:
        ipFamilies: ["IPv4"]
      Nota: Evitare modifiche
      IPv6 non è supportato.
    2. Tornare a Gestione carico di lavoro > Servizi e, nella scheda del servizio Harbor, selezionare Azioni > Installa nei supervisori.
    3. Selezionare il Supervisore in cui viene eseguito Contour e in Configurazione servizio YAML copiare e incollare il contenuto del file harbor-data-values.yml modificato.
    4. Fare clic su OK.
      Una volta avviata l'installazione, è possibile monitorarla facendo clic sul campo Supervisori nella scheda del servizio Harbor. Potrebbero essere necessari alcuni secondi prima che il numero accanto a Supervisori aumenti. Il servizio si trova nello stato Configurazione finché non viene raggiunto lo stato desiderato. Quando viene raggiunto lo stato desiderato, lo stato del servizio diventa In esecuzione.

risultati

È possibile visualizzare il Spazio dei nomi vSphere e i Pod vSphere creati per Harbor dalla vista Host e cluster. Una vista dello spazio dei nomi Harbor con tutti i pod vSphere contenuti

Mappatura dell'FQDN di Harbor all'indirizzo IP di ingresso di Envoy

Dopo che Harbor è stato installato correttamente, includere un record della mappatura del nome di dominio completo all'indirizzo IP in entrata di Envoy in un server DNS esterno configurato con il Supervisore.

Per poter estrarre le immagini dal registro, i cluster Tanzu Kubernetes Grid, i Pod vSphere e il Supervisore devono essere in grado di risolvere il nome di dominio completo di Harbor.

Per individuare l'indirizzo IP in entrata di Envoy, passare allo spazio dei nomi di Contour, selezionare Rete, quindi selezionare Servizi:

La schermata mostra l'indirizzo IP di Envoy.

Instaurazione di una relazione di attendibilità con il registro Harbor del Servizio supervisore

Una volta installato Harbor, è necessario configurare la relazione di attendibilità tra il Supervisore e l'Harbor da utilizzare come registro per Pod vSphere. Per i cluster Tanzu Kubernetes Grid che si trovano nello stesso Supervisore di Harbor, la relazione di attendibilità con Harbor viene stabilita automaticamente. Per utilizzare Harbor come registro per i cluster Tanzu Kubernetes Grid eseguiti in Supervisori diversi è necessario configurare l'attendibilità tra Harbor e questi cluster Tanzu Kubernetes Grid.

Creazione di una relazione di attendibilità tra Harbor e il Supervisore

Per stabilire una relazione di attendibilità tra Harbor e il Supervisore:
  1. Estrarre il certificato CA di Harbor dall'interfaccia utente di Harbor o utilizzando il segreto TLS sul piano di controllo del Supervisore. È possibile ottenere il ca.cert di Harbor nell'interfaccia utente di amministrazione di Harbor accedendo a Amministrazione > Configurazione > Certificato root di registro > Scarica.
  2. Aggiungere il certificato CA di Harbor alla mappa di configurazione image-fetcher-ca-bundle nello spazio dei nomi kube-system. Per modificare image-fetcher-ca-bundle, è necessario eseguire l'accesso con un account amministratore di vCenter Single Sign-On e disporre dell'autorizzazione appropriata.
    1. Configurare la variabile di ambiente KUBE_EDITOR come descritto qui:
    2. Modificare il file ConfigMap utilizzando il comando seguente:
      kubectl edit configmap image-fetcher-ca-bundle -n kube-system
    3. Aggiungere i contenuti del file ca.cert di Harbor a ConfigMap sotto il certificato esistente del Supervisore. Assicurarsi di non modificare il certificato del Supervisore.
      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. Salvare le modifiche apportate al file. Di conseguenza, kubectl segnala:
      configmap/image-fetcher-ca-bundle edited

Creazione di una relazione di attendibilità tra Harbor e il cluster Tanzu Kubernetes Grid in esecuzione su Supervisori diversi da Harbor

I cluster Tanzu Kubernetes Grid in esecuzione su Supervisori differenti da quello in cui è installato Harbor devono disporre di una connettività di rete con Harbor. Questi cluster Tanzu Kubernetes Grid devono essere in grado di risolvere il nome di dominio completo di Harbor.

Per stabilire una relazione di attendibilità tra Harbor e i cluster Tanzu Kubernetes Grid, estrarre il certificato CA di Harbor dall'interfaccia utente di Harbor o utilizzando il segreto TLS sul piano di controllo del Supervisore, quindi seguire i passaggi elencati inIntegrazione di un cluster TKG 2 con un registro di container privato.