次の手順に従って、vSphere 8.x 用の TKr を実行している TKG サービス クラスタに Harbor コンテナ レジストリをインストールします。

前提条件

Harbor のデータ値の作成

Harbor のインストールを準備するには、データ値ファイルを作成します。

  1. リポジトリの Harbor パッケージの最新バージョンを取得します。
    tanzu package available get harbor.tanzu.vmware.com -n tkg-system

    または、kubectl を使用します。

    kubectl -n tkg-system get packages | grep harbor
    注: 要件が異なる場合を除き、通常は最新バージョンを使用する必要があります。
  2. harbor-data-values.yaml ファイルを生成します。
    tanzu package available get harbor.tanzu.vmware.com/2.9.1+vmware.1-tkg.1 --default-values-file-output harbor-data-values.yaml
    ここで、
    • 2.9.1+vmware.1-tkg.1 はターゲット パッケージのバージョンです
    • harbor-data-values.yaml は、生成するデータ値ファイルの名前とパスです
  3. harbor-data-values.yaml ファイルを編集し、次のパラメータの値を更新します。

    必要に応じて追加のパラメータを構成します。Harbor パッケージ リファレンスを参照してください。

    フィールド 説明
    hostname Harbor 管理コンソールおよびレジストリ サービスにアクセスするための FQDN。「yourdomain.com」を一意のホスト名に置き換えます。
    harborAdminPassword パスワードを強力で一意のものに変更します(インストール後にユーザー インターフェイスで変更することもできます)。
    persistence.persistentVolumeClaim.database.storageClass: vSphere 名前空間の vSphere ストレージ ポリシーの名前を入力します。
    persistence.persistentVolumeClaim.jobservice.storageClass: vSphere 名前空間の vSphere ストレージ ポリシーの名前を入力します。
    persistence.persistentVolumeClaim.redis.storageClass: vSphere 名前空間の vSphere ストレージ ポリシーの名前を入力します。
    persistence.persistentVolumeClaim.registry.storageClass: vSphere 名前空間の vSphere ストレージ ポリシーの名前を入力します。
    persistence.persistentVolumeClaim.trivy.storageClass: vSphere 名前空間の vSphere ストレージ ポリシーの名前を入力します。
    tlsCertificate.tlsSecretLabels: {"managed-by": "vmware-vRegistry"}

Harbor のインストール

次の手順を実行して、Harbor レジストリをインストールします。
  1. Harbor の名前空間を作成します。
    kubectl create ns tanzu-system-registry
  2. Harbor をインストールします。
    tanzu package install harbor --package harbor.tanzu.vmware.com --version 2.9.1+vmware.1-tkg.1 --values-file harbor-data-values.yaml --namespace tanzu-system-registry
  3. Harbor のインストールを確認します。
    tanzu package installed get harbor --namespace tanzu-system-registry

LoadBalancer タイプの Envoy サービスを使用する Harbor 向けの DNS の構成

前提条件の Envoy を使用する Contour サービスが LoadBalancer を介して公開される場合は、ロード バランサの外部 IP アドレスを取得し、Harbor の FQDN の DNS レコードを作成します。
  1. LoadBalancer タイプの Envoy サービスの External-IP アドレスを取得します。
    kubectl get service envoy -n tanzu-system-ingress
    返された External-IP アドレスが次の例のように表示されます。
    NAME    TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)                      AGE
    envoy   LoadBalancer   10.99.25.220   10.195.141.17   80:30437/TCP,443:30589/TCP   3h27m
    または、次のコマンドを使用して External-IP アドレスを取得することもできます。
    kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
  2. Harbor 拡張機能のインストールを確認するには、次の例のように、ロード バランサの External-IP アドレスにマッピングされる Harbor および Notary の FQDN を指定してローカルの /etc/hosts ファイルを更新します。
    127.0.0.1 localhost
    127.0.1.1 ubuntu
    #TKG Harbor with Envoy Load Balancer IP
    10.195.141.17 core.harbor.domain
    10.195.141.17 core.notary.harbor.domain
    
  3. Harbor 拡張機能のインストールを確認するために、Harbor にログインします。
  4. Envoy サービスのロード バランサの External-IP アドレスを Harbor の FQDN と Notary の FQDN にマッピングする 2 つの CNAME レコードを DNS サーバに作成します。
  5. 外部 DNS 拡張機能をインストールします。

NodePort タイプの Envoy サービスを使用する Harbor 向けの DNS の構成

前提条件の Envoy を使用する Contour サービスが NodePort を介して公開される場合は、ワーカー ノードの仮想マシンの IP アドレスを取得し、Harbor の FQDN の DNS レコードを作成します。
注: NodePort を使用するには、 harbor-data-values.yaml ファイルに正しい port.https 値を指定しておく必要があります。
  1. クラスタがプロビジョニングされている vSphere 名前空間 にコンテキストを切り替えます。
    kubectl config use-context VSPHERE-NAMESPACE
  2. クラスタ内のノードを一覧表示します。
    kubectl get virtualmachines
  3. ワーカー ノードの 1 つを選択し、次のコマンドを使用して記述します。
    kubectl describe virtualmachines tkg2-cluster-X-workers-9twdr-59bc54dc97-kt4cm
  4. Vm Ip: 10.115.22.43 などの仮想マシンの IP アドレスを見つけます。
  5. Harbor 拡張機能のインストールを確認するには、次の例のように、ワーカー ノードの IP アドレスにマッピングされる Harbor および Notary の FQDN を指定してローカルの /etc/hosts ファイルを更新します。
    127.0.0.1 localhost
    127.0.1.1 ubuntu
    #TKG Harbor with Envoy NodePort
    10.115.22.43 core.harbor.domain
    10.115.22.43 core.notary.harbor.domain
    
  6. Harbor 拡張機能のインストールを確認するために、Harbor にログインします。
  7. ワーカー ノードの IP アドレスを Harbor の FQDN と Notary の FQDN にマッピングする 2 つの CNAME レコードを DNS サーバに作成します。
  8. 外部 DNS 拡張機能をインストールします。

Harbor Web インターフェイスへのログイン

Harbor をインストールして構成したら、ログインして使用を開始します。
  1. Harbor レジストリの Web インターフェイス (https://core.harbor.domain)、または使用したホスト名にアクセスします。

    Harbor レジストリの Web インターフェイス。

  2. ユーザー名 admin と、生成され、harbor-data-values.yaml ファイルに入力したたパスワードを使用して Harbor にログインします。

    Harbor のログイン画面。ユーザー名 admin と生成されたパスワードが入力されています。

  3. Harbor ユーザー インターフェイスにアクセスできることを確認します。

    ログイン後に Harbor ユーザー インターフェイスの [プロジェクト] タブが表示されます。

  4. Harbor CA 証明書を取得します。

    Harbor インターフェイスで、[プロジェクト] > [ライブラリ] の順に選択するか、[新しいプロジェクト] を作成します。

    [レジストリ証明書] をクリックして、Harbor CA 証明書 (ca.crt) をダウンロードします。

  5. Harbor CA 証明書を Docker クライアントのトラスト ストアに追加して、Harbor レジストリとの間でコンテナ イメージをプッシュおよびプルできるようにします。TKG サービス クラスタでのプライベート レジストリの使用を参照してください。
  6. Harbor の使用方法の詳細については、Harbor のドキュメントを参照してください。