Harbor をインストールし、スーパーバイザー サービス として構成する方法を確認してください。この操作の後、Tanzu Kubernetes Grid クラスタおよび vSphere ポッド で実行されているワークロードでは、Harbor をレジストリとして使用できます。Harbor には Ingress コントローラとして Contour が必要であるため、最初に Contour スーパーバイザー サービス をインストールしてから Harbor をインストールします。

スーパーバイザー サービス としての Harbor のインストール

vSphere Client の [Workload Management] オプションを使用して Harbor を スーパーバイザー サービス としてインストールします。

前提条件

  • vCenter Server 8.0a 以降にアップグレードしたことを確認します。Contour および Harbor の スーパーバイザー サービス は、vCenter Server 8.0a 以降でサポートされます。
  • サービスを追加する vCenter Server システムに関するスーパーバイザー サービスの管理権限があることを確認します。
  • Harbor をインストールする スーパーバイザー に、Contour を スーパーバイザー サービスとしてインストールします。vSphere IaaS control plane での スーパーバイザー サービス としての Contour のインストールを参照してください。
  • Harbor 管理ユーザー インターフェイスにアクセスするための FQDN を指定します。

手順

  1. Supervisor-Services リポジトリの Harbor Versions セクションに移動して、次のファイルをダウンロードします。
    • Harbor サービス定義。リンクの名前は Harbor vX.X.X. です。例:Harbor 2.5.3
    • Harbor 構成ファイル。リンクの名前は values for vX.X.X です。例:values 2.5.3
    生成されたファイルは、次のようになります。
    • harbor.yml
    • harbor-data-values.yml
  2. vSphere Client[ワークロード管理] に移動し、[サービス] を選択します。
  3. [サービスの新規追加] をクリックし、harbor.yml サービス定義をアップロードして、Harbor オペレータをデプロイします。
    Harbor オペレータのデプロイを示すウィンドウ
    Harbor オペレータがデプロイされると、このオペレータが [サービス] タブに表示されます。 Harbor オペレータと Contour オペレータのデプロイ後の外観を示すウィンドウ
  4. Harbor オペレータがデプロイされ、Contour が実行されている スーパーバイザースーパーバイザー サービス をインストールできます。
    1. harbor-data-values.yml ファイルを開き、必要に応じてプロパティを編集します。
      プロパティ 説明
      hostname: myharbor.com
      
        https: 443
      FQDN Harbor 管理ユーザー インターフェイスにアクセスするために指定した FQDN に変更します。
      tlsCertificate:
        tlsSecretLabels: {"managed-by": "vmware-vRegistry"}
      注: 変更しない
      TKG 統合が機能するためには、この値が必要です。
      harborAdminPassword: Harbor12345
      必要に応じて変更する インストール中に使用される Harbor のパスワード。サービスがインストールされたら、Harbor 管理ユーザー インターフェイスを使用して変更できます。
      secretKey: 0123456789ABCDEF
      16 文字からなる文字列 暗号化に使用されるプライベート キー。16 文字の文字列にする必要があります。
      database:
        password: change-it
      安全なパスワード Postgres データベースで使用される初期パスワード。
      core:
        replicas: 
        secret: change-it
        xsrfKey: 0123456789ABCDEF0123456789ABCDEF
      jobservice:
        replicas: 1
        secret: change-it
      registry:
        replicas: 
        secret: change-it
      シークレットの文字列と 32 文字の XSRF キー文字列 変更して独自のシークレットを設定します。
      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
       
      ストレージ クラスの名前

      Harbor のレジストリ、ジョブ サービス、データベースなど、PVC をプロビジョニングするためのストレージ クラスとして使用されるストレージ ポリシー。

      各プロパティを、環境内で使用可能な既存のストレージ ポリシーに設定します。すべての大文字を小文字に置き換えて、ストレージ ポリシー名を有効なストレージ クラス名に変更するとともに、すべての「_」記号とスペースをダッシュ「-」に置き換えます。たとえば、Harbor Storage Policyharbor-storage-policy に変更します。

      network:
        ipFamilies: ["IPv4"]
      注: 変更しない
      IPv6 はサポートされていません。
    2. [ワークロード管理] > [サービス] に戻り、[Harbor] サービス カードで [アクション] > [スーパーバイザーへのインストール] の順に選択します。
    3. Contour が実行されている スーパーバイザー を選択し、[YAML サービス構成] で、変更した harbor-data-values.yml ファイルの内容をコピーし、貼り付けます。
    4. [OK] をクリックします。
      インストールが開始したら、Harbor サービス カードの [スーパーバイザー] フィールドをクリックしてインストールを追跡できます。 [スーパーバイザー] の横にある数字が増えるまで、数秒かかる場合があります。目的の状態に達するまで、サービスの状態は [設定中] になります。目的の状態に達すると、サービスの状態は [実行中] に変化します。

結果

Harbor 用に作成された vSphere 名前空間vSphere ポッド は、 [ホストおよびクラスタ] ビューで確認できます。 Harbor 名前空間と含まれるすべての vSphere Pod のビュー

Harbor FQDN の Envoy Ingress IP アドレスへのマッピング

Harbor が正常にインストールされたら、スーパーバイザー が構成された外部 DNS サーバに、Envoy Ingress IP アドレスに対する Harbor FQDN のマッピングのレコードを追加します。

Tanzu Kubernetes Grid クラスタ、vSphere ポッド、および スーパーバイザー のレジストリからイメージをプルするには、Harbor FQDN を解決できる必要があります。

Envoy Ingress IP アドレスを見つけるには、Contour 名前空間に移動し、 [ネットワーク] を選択して [サービス] を選択します。

スクリーンショットは Envoy IP アドレスを示しています。

Harbor スーパーバイザー サービス との信頼の確立

Harbor をインストールした後に Harbor を vSphere ポッド のレジストリとして使用するには、スーパーバイザー と Harbor 間に信頼を構成する必要があります。Harbor と同じ スーパーバイザー にある Tanzu Kubernetes Grid クラスタには、Harbor に対する信頼が自動的に確立されます。異なる スーパーバイザー で実行される Tanzu Kubernetes Grid クラスタのレジストリとして Harbor を使用するには、Harbor とこれらのTanzu Kubernetes Grid クラスタ間に信頼を構成する必要があります。

Harbor と スーパーバイザー 間の信頼の確立

Harbor と スーパーバイザー 間に信頼を確立するには:
  1. Harbor ユーザー インターフェイスを使用するか、スーパーバイザー 制御プレーンの TLS シークレットを使用して、Harbor CA を抽出します。Harbor の ca.cert は、Harbor 管理ユーザー インターフェイスの [管理] > [構成] > [レジストリ ルート証明書] > [ダウンロード] で取得できます。
  2. kube-system 名前空間の image-fetcher-ca-bundle ConfigMap に Harbor CA を追加します。vCenter Single Sing-On 管理アカウントを使用してログインしているほかに、image-fetcher-ca-bundle を編集する権限を保持している必要があります。
    1. こちらの説明に従って、KUBE_EDITOR 環境変数を構成します。
    2. 次のコマンドを使用して、ConfigMap を編集します。
      kubectl edit configmap image-fetcher-ca-bundle -n kube-system
    3. Harbor の ca.cert ファイルの内容を、既存の スーパーバイザー 証明書の下にある ConfigMap に追加します。スーパーバイザー 証明書を変更しないでください。
      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. ファイルに加えた編集内容を保存します。その結果、kubectl から次のように報告されます。
      configmap/image-fetcher-ca-bundle edited

Harbor とは異なる スーパーバイザー で実行されている Tanzu Kubernetes Grid クラスタと Harbor の間の信頼の確立

Harbor のインストール場所とは異なる スーパーバイザー で実行されている Tanzu Kubernetes Grid クラスタは、Harbor にネットワーク接続されている必要があります。これらの Tanzu Kubernetes Grid クラスタで Harbor の FQDN を解決できる必要があります。

Harbor と Tanzu Kubernetes Grid クラスタ間の信頼を確立するには、Harbor ユーザー インターフェイスを使用するか、スーパーバイザー 制御プレーンの TLS シークレットを使用して、Harbor CA を抽出します。その後、TKG 2 クラスタとプライベート コンテナ レジストリの統合に記載されている手順に従います。