Harbor コンテナ レジストリをスーパーバイザー サービスとしてインストールし、プライベート レジストリとして Harbor を実行できます。
前提条件
次の前提条件を満たす必要があります。
- vSphere 8 スーパーバイザー が有効である
- スーパーバイザー サービスについて理解している
注: ここで示す手順は、vSphere 8 および NSX 4 ネットワークで検証されています。
必要な YAML ファイルのダウンロード
Contour や Harbor などの必要な YAML ファイルをダウンロードします。
- Kubernetes Ingress コントローラ サービスのサイトから次の Contour ファイルをダウンロードします。
- Contour サービス定義ファイル:contour.yml
- Contour サービス構成ファイル:contour-data-values.yml
- Cloud Native Registry Service のサイトから次の Harbor ファイルをダウンロードします。
- Harbor サービス定義ファイル:harbor.yml
- Harbor サービス構成ファイル:harbor-data-values.yml
Contour のインストール
Harbor をインストールする前に、Contour をインストールする必要があります。
- contour.yml をアップロードします。 で、vCenter Server に
- Contour サービス定義が追加されたことを確認します。
- の順に選択します。
- の順に選択します。
- [使用可能] タブを選択します。
- [Contour] を選択し、[インストール] をクリックします。
- contour-data-values.yml の内容をコピーして [YAML サービス構成] 入力フィールドに貼り付けます。
注: Contour データ値はそのまま使用できます。構成を変更する必要はありません。Envoy のサービス タイプは LoadBalancer に設定されています。
- [OK] をクリックして、Contour のインストールを続行します。
- Contour がインストールされたことを確認します。
- svc-contour-domain-XXXX という名前の vSphere 名前空間 を選択します。
- [ネットワーク] タブを選択し、[サービス] を選択します。
- ClusterIP タイプの contour サービスと LoadBalancer タイプの envoy サービスが表示されます。envoy サービスには外部 IP アドレスが必要です。
Harbor データ値の更新
Harbor をインストールする前に、データ値ファイルを更新します。
- テキスト エディタを使用して harbor-data-values.yml ファイルを開きます。
- 以下の編集を行います(必要最小限の編集であり、他のフィールドの編集は任意)。
- 変更を保存します。
名前 値 hostname harbordomain.com(一意のホスト名を選択) tlsCertificate.tlsSecretLabels {"managed-by": "vmware-vRegistry"}(この値を確認してそのまま使用) persistence.persistentVolumeClaim.registry.storageClass "vwt-storage-policy"(スーパーバイザーの vSphere ストレージ ポリシーの名前を入力) persistence.persistentVolumeClaim.jobservice.storageClass "vwt-storage-policy"(スーパーバイザーの vSphere ストレージ ポリシーの名前を入力) persistence.persistentVolumeClaim.database.storageClass "vwt-storage-policy"(スーパーバイザーの vSphere ストレージ ポリシーの名前を入力) persistence.persistentVolumeClaim.redis.storageClass "vwt-storage-policy"(スーパーバイザーの vSphere ストレージ ポリシーの名前を入力) persistence.persistentVolumeClaim.trivy.storageClass "vwt-storage-policy"(スーパーバイザーの vSphere ストレージ ポリシーの名前を入力)
Harbor のインストール
次の手順を実行して、Harbor をインストールします。
- harbor.yml をアップロードします。 で、vCenter Server に
- Harbor サービス定義が追加されたことを確認します。
- の順に選択します。
- の順に選択します。
- [使用可能] タブを選択します。
- [Harbor] を選択し、[インストール] をクリックします。
- 編集した harbor-data-values.yml の内容をコピーして [YAML サービス構成] 入力フィールドに貼り付けます。
- [OK] をクリックして、Harbor のインストールを続行します。
- Harbor がインストールされたことを確認します。
- svc-harbor-domain-XXXX という名前の vSphere 名前空間 を選択します。
- [ネットワーク] タブを選択し、[サービス] を選択します。
- Harbor 用に複数のコンテナがインストールされます。それぞれのサービスのタイプは ClusterIP です。
Harbor 用の DNS の構成
ドメイン名を登録し、Harbor の DNS レコードを設定する必要があります。
- の順に選択します。
- [Contour] 名前空間を削除します。
- の順に選択します。
- Envoy Ingress サービスの外部 IP アドレス(10.197.154.71 など)を記録します。
- Harbor 構成で指定した Harbor ドメイン名 (FQDN) を登録します。
- AWS Route 53 または同様のサービスを使用して DNS「A」レコードを作成します。
Harbor へのログイン
Harbor DNS が設定されたら、ログインします。
- Harbor に登録したドメイン名に移動します。
- admin および Harbor 構成で指定したパスワードを使用してドメインにログインします。
- ログインしたら、パスワードをより安全なものに変更します。
Harbor レジストリを信頼するためのスーパーバイザーの構成(オプション)
TKG クラスタと Harbor の両方が同じ
スーパーバイザー にデプロイされている場合、TKG クラスタは Harbor
スーパーバイザー サービスを信頼するように自動的に構成されます。ただし、
スーパーバイザー は
vSphere ポッド の作成時に Harbor
スーパーバイザー サービスを信頼するように自動的に構成されません。Harbor CA 証明書を使用して configmap を更新することによって、
スーパーバイザー と Harbor サービス間の信頼を確立するには、次の手順を実行します。
- Harbor で、 の順に移動します。
- レジストリ ルート証明書(ca.crt という名前のファイル)をダウンロードします。
- KUBE_EDITOR 環境変数を構成します。
kubectl のテキスト エディタの構成を参照してください。
- kubectl を使用して スーパーバイザー にログインします。
Kubectl を使用した vCenter Single Sign-On ユーザーとしての スーパーバイザー への接続を参照してください。
- コンテキストを スーパーバイザー コンテキスト(IP アドレス)に切り替えます。
- 次のコマンドを使用して configmap/image-fetch-ca-bundle を編集します。
kubectl edit configmap image-fetcher-ca-bundle -n kube-system
- Harbor ca.crt ファイルの内容をコピーして、既存の証明書の下にある configmap に追加します(これは スーパーバイザー 用であるため、変更しないでください)。ファイルに加えた編集内容を保存します。Kubectl から「configmap/image-fetcher-ca-bundle edited」と報告されます。