次の手順に従って、vSphere 8.x 用の TKr を実行している TKG サービス クラスタに Harbor コンテナ レジストリをインストールします。
前提条件
次の前提条件を満たす必要があります。
Harbor のデータ値の作成
Harbor のインストールを準備するには、データ値ファイルを作成します。
- リポジトリの Harbor パッケージの最新バージョンを取得します。
tanzu package available get harbor.tanzu.vmware.com -n tkg-system
または、kubectl を使用します。
kubectl -n tkg-system get packages | grep harbor
注: 要件が異なる場合を除き、通常は最新バージョンを使用する必要があります。 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 は、生成するデータ値ファイルの名前とパスです
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 レジストリをインストールします。
- Harbor の名前空間を作成します。
kubectl create ns tanzu-system-registry
- 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
- Harbor のインストールを確認します。
tanzu package installed get harbor --namespace tanzu-system-registry
LoadBalancer タイプの Envoy サービスを使用する Harbor 向けの DNS の構成
前提条件の Envoy を使用する Contour サービスが LoadBalancer を介して公開される場合は、ロード バランサの外部 IP アドレスを取得し、Harbor の FQDN の DNS レコードを作成します。
- 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]}'
- 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
- Harbor 拡張機能のインストールを確認するために、Harbor にログインします。
- Envoy サービスのロード バランサの
External-IP
アドレスを Harbor の FQDN と Notary の FQDN にマッピングする 2 つの CNAME レコードを DNS サーバに作成します。 - 外部 DNS 拡張機能をインストールします。
NodePort タイプの Envoy サービスを使用する Harbor 向けの DNS の構成
前提条件の Envoy を使用する Contour サービスが NodePort を介して公開される場合は、ワーカー ノードの仮想マシンの IP アドレスを取得し、Harbor の FQDN の DNS レコードを作成します。
注: NodePort を使用するには、
harbor-data-values.yaml
ファイルに正しい
port.https
値を指定しておく必要があります。
- クラスタがプロビジョニングされている vSphere 名前空間 にコンテキストを切り替えます。
kubectl config use-context VSPHERE-NAMESPACE
- クラスタ内のノードを一覧表示します。
kubectl get virtualmachines
- ワーカー ノードの 1 つを選択し、次のコマンドを使用して記述します。
kubectl describe virtualmachines tkg2-cluster-X-workers-9twdr-59bc54dc97-kt4cm
Vm Ip: 10.115.22.43
などの仮想マシンの IP アドレスを見つけます。- 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
- Harbor 拡張機能のインストールを確認するために、Harbor にログインします。
- ワーカー ノードの IP アドレスを Harbor の FQDN と Notary の FQDN にマッピングする 2 つの CNAME レコードを DNS サーバに作成します。
- 外部 DNS 拡張機能をインストールします。
Harbor Web インターフェイスへのログイン
Harbor をインストールして構成したら、ログインして使用を開始します。
- Harbor レジストリの Web インターフェイス (
https://core.harbor.domain
)、または使用したホスト名にアクセスします。 - ユーザー名 admin と、生成され、
harbor-data-values.yaml
ファイルに入力したたパスワードを使用して Harbor にログインします。 - Harbor ユーザー インターフェイスにアクセスできることを確認します。
- Harbor CA 証明書を取得します。
Harbor インターフェイスで、[新しいプロジェクト] を作成します。
の順に選択するか、[レジストリ証明書] をクリックして、Harbor CA 証明書 (ca.crt) をダウンロードします。
- Harbor CA 証明書を Docker クライアントのトラスト ストアに追加して、Harbor レジストリとの間でコンテナ イメージをプッシュおよびプルできるようにします。TKG サービス クラスタでのプライベート レジストリの使用を参照してください。
- Harbor の使用方法の詳細については、Harbor のドキュメントを参照してください。