このトピックでは、ダウンロードした OVA ファイルからプライベート Harbor イメージ レジストリをインストールし、オフラインの vSphere 環境に Tanzu Kubernetes Grid (TKG) を展開するために必要なイメージを提供する方法について説明します。生成される Harbor レジストリは、TKG が使用するコンポーネント イメージを保存および管理するために、TKG と並行して、ただし TKG とは別個に実行されます。
重要
この仮想マシンベースの Harbor 展開は、インターネットが制限された環境またはエアギャップされた環境で TKG システム イメージをホストする場合にのみサポートされます。本番環境でホスト型アプリケーションの多数のイメージを管理できるスケーラブルで高可用性の Harbor を展開するには、『Tanzu CLI を使用した TKG 2.3 ワークロード クラスタの作成と管理』の「サービス レジストリ用の Harbor のインストール」に従って、Harbor パッケージを TKG クラスタに展開します。
Notary と Chartmuseum は Harbor v2.6 以降で廃止され、Harbor v2.6.0 リリース ノートに記載されているように、今後のリリースで削除される予定です。コンテナの署名と検証のために Sigstore Cosign に切り替えてください。
ca.crt
、server.crt
、および server.key
ファイルOVA ファイルから Harbor を展開するには、次の手順を実行します。
vCenter Server で、vSphere クラスタを右クリックし、[OVF テンプレートのデプロイ (Deploy OVF Template)]… を選択します。
[OVF テンプレートのデプロイ (Deploy OVF Template)] ウィンドウが表示されます。[ローカル ファイル (Local File)] を選択し、ダウンロードした Harbor OVA ファイルの場所を参照します。
右下の [次へ (NEXT)] をクリックします。一連の構成ペインが表示されます。
[ソースの検証 (Source Verification)]:[はい (YES)] をクリックします。
[仮想マシン名 (Virtual machine name)]:Harbor インスタンスを実行する仮想マシンに選択する名前を入力します。[次へ (NEXT)] をクリックします。
[コンピューティング リソースの選択 (Select a compute resource)]:デフォルトの選択のままにして、[次へ (NEXT)] をクリックします。
vSphere が OVF テンプレートをダウンロードしてレンダリングするため、この手順には数分かかる場合があります。
[詳細の確認 (Review details)]:[次へ (NEXT)] をクリックします。
[使用許諾契約書 (License agreements)]:ライセンスに同意して [次へ (NEXT)] をクリックしてください。
[ストレージの選択 (Select storage)]:[vsanDatastore] を選択し、[次へ (NEXT)] をクリックします。
[ネットワークの選択 (Select networks)]:デフォルトの [仮想マシン ネットワーク (VM Network)] を選択し、[次へ (NEXT)] をクリックします。
[テンプレートのカスタマイズ (Customize template)] > [仮想マシンの認証情報 (VM Credentials)]:
[root パスワード (Root Password)](必須):仮想マシンでの root
ユーザー アカウント用のパスワード。8 ~ 128 文字にする必要があります。
[root 経由の SSH を許可 (Allow SSH via Root)]:root
ユーザーとしての仮想マシンへの ssh
アクセスを許可するには、デフォルトの [有効 (Enabled)] のままにします。
[テンプレートのカスタマイズ (Customize template)] > [Harbor 構成 (Harbor Configurations)]:
[ホスト名 (Hostname)](オプション):指定されている場合は、FQDN としての Harbor ホスト名(yourdomain.com
など)。IP アドレスや localhost
にすることはできません。
[ホスト名 (Hostname)] を指定した場合、SAN (Subject Alt Names) プロパティには DNS 情報のみが含まれます。IP 情報は指定されません。
[ホスト名 (Hostname)] を指定しない場合、SAN プロパティには IP 情報のみが含まれます。DNS 情報は指定されません。
[管理者パスワード (Administrator Password)](必須):Harbor admin
ユーザーのパスワード。管理者が Harbor ユーザー インターフェイスにアクセスし、クライアント コンテナがイメージをプルおよびプッシュするために使用します。長さは 8 ~ 128 文字にする必要があります。
[Harbor データベースのパスワード (Harbor Database Password)]:Harbor 内部データベースのパスワード。指定する場合は、長さは 8 ~ 128 文字にする必要があります。
[Harbor デフォルト スキャナを有効化 (Enable Harbor Default Scanner)]:有効にすると、Trivy スキャナをインストールして有効化し、Harbor にアップロードされたイメージをスキャンします。
[Harbor に自己署名証明書を使用 (Use Self-signed Certificate For Harbor)]:
有効にして自己署名証明書を使用し、[CA 証明書 (CA Certificate)]、[サーバ証明書 (Server Certificate)]、および [サーバ キー (Server Key)] を空白のままにします。
それ以外の場合は、[Harbor に自己署名証明書を使用 (Use Self-signed Certificate For Harbor)] を無効化し、[CA 証明書 (CA Certificate)]、[サーバ証明書 (Server Certificate)]、および [サーバ キー (Server Key)] の複数行のファイルの内容を貼り付けます。フォームに貼り付けると、複数行の値が区切り文字としてスペース文字を含む 1 行の文字列に変わります。
[テンプレートのカスタマイズ (Customize template)] > [ネットワーク構成 (Networking Configurations)]:
[IP アドレス (IP Address)]、[ネットマスク (Netmask)]、および [ゲートウェイ (Gateway)]:eth0
用の固定 IP アドレス、ネットマスク、ゲートウェイ(存在する場合)。
[DNS]、[DNS ドメイン (DNS Domain)]:Harbor 仮想マシンの DNS サーバとドメイン。
(オプション)[テンプレートのカスタマイズ (Customize template)] > [Docker 構成 (Docker Configurations)]:
この構成はオプションで、Harbor v2.8.x 以降を使用する OVA でのみ使用できます。
Docker デーモン BIP 値:Docker デーモンを構成するための CIDR 形式の値。例:198.18.251.1/24
アドレス プール 1 ベース (Address Pool 1 Base)、アドレス プール 1 サイズ (Address Pool 1 Size):アドレス プール ベースとアドレス プール サイズは、ペアで構成する必要があります(存在する場合)。アドレス プール ベースとアドレス プール サイズのペアは最大 3 つまで許可されます。また、アドレス プール ベースは CIDR 形式にする必要があります(例:198.18.252.0/22)。アドレス プール サイズは 1 ~ 32 の整数にする必要があります。
[設定内容の確認 (Ready to complete)]:構成を確認して [終了 (FINISH)] をクリックします。
Docker の展開(オプション)
Harbor v2.8.x 以降を使用する OVA の場合は、上記の [Docker 構成 (Docker Configurations)] タブで構成されているように、オプションで Docker デーモン構成を OVA で実行するように設定できます。
[Docker 構成 (Docker Configurations)] に無効な引数を入力すると、firstboot systemd
サービスと Docker の両方が失敗します。
Docker のインストールを確認するには、Harbor 仮想マシンに対して ssh
を実行し、systemctl status firstboot
および systemctl status docker
を実行します。firstboot
サービスのステータスが Active: failed
と表示されている場合、展開は失敗していますが、Active: inactive (dead)
および firstboot.service: Succeeded
が表示され、docker
サービスが Active: active (running)
と表示されている場合は、展開は成功しています。
ログで詳細を確認するには、journalctl -u firstboot
および journalctl -u docker
を実行します。
Harbor の展開:
Harbor OVA を初めて展開する場合、Harbor が Docker イメージをロードするのに数分かかります。
プロセスを監視して進行していることを確認するには、ssh
で仮想マシンにログインして、次のコマンドを実行します。
watch docker ps
Harbor が 5 分ほど経過しても実行されていない場合は、デバッグのために仮想マシンのログ ファイルを取得します。
cd /etc/goharbor/harbor && ./harbor-support.sh --include-private
ログ ファイルを検索して解凍します。/storage/log/harbor_appliance_logs_2022-11-30T09-39-12Z.tar.gz
のような名前です。
次のように「Error: Unable to retrieve manifest or certificate file
」と表示される場合は、Harbor OVA の展開を再試行してください。
インターネットが制限された環境で、Tanzu Kubernetes Grid v2.3 を実行するために Harbor のプロキシ キャッシュ機能を使用することはできません。Harbor プロキシ キャッシュを使用して、以前のバージョンの Tanzu Kubernetes Grid のイメージや、アプリケーション イメージなどの Tanzu 以外のイメージをプロキシすることはできます。
root
パスワードを忘れた場合は、「Resetting a Lost Root Password」の手順に従って回復します。
OVA から展開された Harbor インスタンスには、次の 2 つのディスクがあります。
/storage
としてマウントされています。要求に対応するために Harbor のデータ ディスクのサイズを増やす必要がある場合は、設定の変更中に Harbor 仮想マシンを一時的にパワーオフする必要があります。仮想マシンに動的 IP アドレスがある場合、仮想マシンの再起動では、次の手順を追加で実行する必要があります。
Harbor インスタンスのデータ ディスクを拡張するには、次の手順を実行します。
vSphere の [ホストおよびクラスタ (Hosts and Clusters)] ビューで、Harbor OVA 仮想マシンを右クリックし、[電源 (Power)] > [パワーオフ (Power Off)] を選択します。
Harbor OVA 仮想マシンをもう一度右クリックし、[設定の編集 (Edit Settings)] を選択します。
[設定の編集 (Edit Settings)] ウィンドウが表示されます。[仮想ハードウェア (Virtual Hardware)] で、[ハード ディスク 2 (Hard disk 2)] の設定を希望する容量に増やします。[OK] をクリックします。
Harbor OVA 仮想マシンをもう一度右クリックし、[電源 (Power)] > [パワーオン (Power On)] を選択して仮想マシンを再起動します。
Harbor 仮想マシンを再起動したことにより、仮想マシンのホスト アドレス構成によっては、追加の手順の実行が必要になる場合があります。
固定 IP アドレス:追加の手順はありません。
動的 IP アドレス:Harbor 仮想マシンの IP アドレスが変更された場合:
FQDN:Harbor 仮想マシンの IP アドレスが変更された場合は、仮想マシンの /etc/hosts
ファイルまたは DNS レコードでそのアドレスを更新します。
Harbor 仮想マシンの IP アドレスが変更されたら、証明書をローテーションします。
仮想マシンに ssh
接続します。
Harbor サービスを停止します。
systemctl stop harbor
古い証明書の server.crt
、server.key
、および ca.crt
ファイルを移動するか、名前を変更することでバックアップします。
server.crt
は /storage/data/secret/cert/server.crt
にありますserver.key
は /storage/data/secret/cert/server.key
にありますca.crt
は /storage/data/ca_download/ca.crt
にあります新しい証明書の server.crt
、server.key
、ca.crt
を上記の場所に保存し、ファイルの所有権と権限を古いファイルと同じ設定内容に設定します。
Harbor サービスを開始します。
systemctl start harbor
この Harbor レジストリを使用してインターネットが制限された環境に管理クラスタを展開した後、次の 2 つの方法のいずれかを使用して、TKG ワークロード クラスタで Harbor を使用することができます。
外部 Harbor レジストリを使用する。このレジストリが信頼された CA 証明書を使用している場合、ワークロード クラスタとレジストリ間の接続は安全です。中央レジストリで自己署名証明書を使用している場合は、TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY
を無効にして、TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE
オプションを指定できます。このオプションを設定すると、自己署名証明書がワークロード クラスタに自動的に挿入されます。
Harbor の 2 番目のインスタンスを TKG 内の共有サービスとして展開する。VMware では、TKG によって管理される共有サービスとして Harbor パッケージを展開することをお勧めします。詳細については、「サービス レジストリ用の Harbor のインストール」を参照してください。
ロード バランシングを使用するインフラストラクチャでは、VMware は、「Harbor レジストリと外部 DNS」の説明に従って、外部 DNS パッケージ サービスを Harbor サービスと一緒にインストールすることをお勧めします。