This site will be decommissioned on January 30th 2025. After that date content will be available at techdocs.broadcom.com.

vSphere でのオフライン Harbor レジストリのアップグレード

このトピックでは、ダウンロードした OVA ファイルからプライベート Harbor イメージ レジストリをアップグレードし、オフラインの vSphere 環境の Tanzu Kubernetes Grid (TKG) をアップグレードする方法について説明します。この Harbor レジストリは、TKG が使用するコンポーネント イメージを保存および管理するために、TKG と並行して、ただし TKG とは別に実行されます。

この仮想マシンベースの Harbor 展開は、インターネットが制限された環境またはエアギャップされた環境で TKG システム イメージをホストする場合にのみサポートされます。本番環境でホスト型アプリケーションの多数のイメージを管理できるスケーラブルで高可用性の Harbor を展開するには、「Tanzu CLI を使用した TKG 2.1 ワークロード クラスタの作成と管理」の「サービス レジストリ用の Harbor のインストール」に従って、Harbor パッケージを TKG クラスタに展開します。

オフラインの Harbor レジストリをバックアップおよびリストアするには、「vSphere でのオフライン Harbor レジストリのバックアップとリストア」を参照してください。

OVA からの Harbor のアップグレード

次の手順では、2 つの OVA を使用して、vSphere で実行されている Harbor インスタンスをアップグレードします。

  • OVA 1 は、アップグレードする Harbor OVA です。たとえば、Harbor v2.6.3 OVA などです。
  • OVA 2 は、アップグレード対象の新しい Harbor バージョン(v2.7.1 など)を実行している OVA です。

OVA 1 のデータ ディスクには、イメージ、ユーザー、プロジェクト、パスワードなど、Harbor で現在使用されているすべてのデータが含まれています。アップグレードを実行するには、OVA 1 データ ディスクを既存のディスクとして OVA 2 に追加し、その内容をコピーしてデータを移行します。

OVA アップグレード プロセスは、[テンプレートのカスタマイズ (Customize Template)] > [Harbor 構成 (Harbor Configurations)] にある [管理者パスワード (Administrator Password)] 設定と [データベース パスワード (Database Password)] 設定を、OVA 1 のパスワード設定で上書きします。

  1. Tanzu Kubernetes Grid ダウンロード ページから新しい Harbor OVA をダウンロードし、「vSphere でのオフライン Harbor レジストリの展開」の手順に従って vSphere に展開します。

  2. OVA 1 をパワーオフします。

    1. vSphere で、インベントリにある OVA 1 を右クリックし、[電源 (Power)] > [ゲスト OS のシャットダウン (Shut Down Guest OS)] の順に選択します。

      Harbor のアップグレードのスクリーンショット

    2. OVA 1 (Harbor v2.6.3) のスナップショットを作成します。

      Harbor のアップグレードのスクリーンショット

      このバックアップからリストアするには、「vSphere でのオフライン Harbor レジストリのバックアップとリストア」を参照してください。

    3. OVA 1 のディスク ファイルの場所を取得します。インベントリにある OVA 1 を右クリックし、[設定の編集 (Edit Settings)] > [ディスク ファイル (Disk File)] の順に選択して、値を記録します。

      Harbor のアップグレードのスクリーンショット

    アップグレード プロセスの実行中は、OVA 1 をパワーオンしないでください。

  3. ssh を使用して、OVA 2 にログインします。

    ssh root@OVA2-IP
    
  4. OVA 2 で Harbor を停止します。

    1. Harbor が実行されていることを確認します。

      docker ps
      
    2. Harbor プロセスを停止します。

      systemctl stop harbor
      
    3. Harbor が停止し、実行されていないことを確認します。

      docker ps
      
  5. OVA 1 のデータ ディスクを「既存のディスク」として OVA 2 に追加します。

    1. vSphere で、OVA 2 仮想マシンを右クリックし、[設定の編集 (Edit Settings)] を選択します。

      Harbor のアップグレードのスクリーンショット

    2. 新しいウィンドウが開きます。右上の [新規デバイスを追加 (ADD NEW DEVICE)] ドロップダウンで、[既存のハード ディスク (Existing Hard Disk)] を選択します。

      Harbor のアップグレードのスクリーンショット

    3. [ファイルの選択 (Select File)] で、OVA 1 データストア(vsanDatastore など)と、前に記録したディスク ファイルの場所を選択します。ファイルの場所は、末尾が .vmdk です。[OK] をクリックします。

      Harbor のアップグレードのスクリーンショット

    4. [新規ハード ディスク (New Hard Disk)] のリストが、[設定の編集 (Edit Settings)] > [仮想設定 (Virtual Settings)] タブに追加されます。[OK] をクリックします。

      Harbor のアップグレードのスクリーンショット

    5. 次の [最近のタスク (Recent Tasks)] バーで、新しいディスクの追加が完了するまで待機します。

      Harbor のアップグレードのスクリーンショット

    6. 仮想ハード ディスクの設定をさらに編集(名前の変更など)するには、リストを再度右クリックします。

      Harbor のアップグレードのスクリーンショット

  6. OVA 1 データを含むディスクを OVA 2 ファイル システムにマウントします。

    1. ssh 経由で OVA 2 にログインしたコマンド プロンプトから、lsblk を実行して、新たに追加されたディスクの追加先のブロック デバイスを確認します。

      Harbor のアップグレードのスクリーンショット

    2. mkdir -p /ova263 を実行して、OVA 2 ファイル システムに新しいディスクのマウント ポイントを作成します。

      Harbor のアップグレードのスクリーンショット

    3. mount コマンドを実行して、ファイル システムの最上位レベルのマウント ポイントにブロック デバイスをマウントします。次に例を示します。

      mount DEVICE /ova263
      

      ここで DEVICE は、lsblk などの、/dev/sdc1 によってリストされる新しいデバイスです。

      Harbor のアップグレードのスクリーンショット

  7. harbor.yml ファイルを、OVA 2 Harbor バージョンを示すファイル名にバックアップします。次に例を示します。

    mv /etc/goharbor/harbor/harbor.yml /etc/goharbor/harbor/harbor271.origin.yml
    
  8. harbor.yml ファイルを、移行された OVA 1 データ ディスクから OVA 2 Harbor ディレクトリにコピーします。次に例を示します。

    cp -pr /ova263/harbor.yml /etc/goharbor/harbor/harbor.yml
    
  9. OVA 2 に、動的に割り当てられた IP アドレス、または OVA 1 とは異なる固定 IP アドレスか FQDN がある場合は、/etc/goharbor/harbor/harbor.yml ファイルの hostname 設定をそれに合わせて更新することが必要になる場合があります。OVA 1 からコピーされた hostname の値が OVA 2 にとっては正しくない場合、OVA 2 の正しいアドレスまたは FQDN に変更します。

    OVA 1 から OVA 2 に証明書をコピーする必要はありません。ネットワーク管理に応じ、OVA 2 の証明書は新しい証明書か、OVA 1 の証明書と同一になりますが、どちらも機能します。

  10. OVA 2 から次のディレクトリを削除します。

    rm -rf /storage/data/!(ca_download)
    rm -rf /storage/log/*
    
  11. データ ディレクトリを OVA 1 データ ディスクから OVA 2 にコピーします。

    cp -pr /ova263/data/!(ca_download) /storage/data
    
  12. Harbor ログ ディレクトリを OVA 1 データ ディスクから OVA 2 にコピーします。

    cp -pr /ova263/log/* /storage/log
    
  13. OVA 1 ディスクを OVA 2 からアンマウントします。

    umount /ova263
    
  14. OVA 1 データ ディスクを OVA 2 から削除します。OVA 2 について、vCenter Server の [仮想ハードウェア (Virtual Hardware)] > [設定の編集 (Edit Settings)] で、追加された OVA 1 ハード ディスクをリストしている行の [X] ボタンをクリックします。[データストアからファイルを削除します (Delete files from datastore)] チェックボックスは有効にせず、[OK] をクリックして確認します。

    Harbor のアップグレードのスクリーンショット

    Harbor のアップグレードのスクリーンショット

  15. Harbor コンテナの migrate を実行することで、コピーした harbor.yml ファイルをアップグレードします。

    cd /etc/goharbor/harbor && docker run -it --rm -v /:/hostfs vmware.io/goharbor/prepare:vOVA-2-VERSION_vmware.1 migrate -i /etc/goharbor/harbor/harbor.yml
    

    ここで、OVA-2-VERSION は OVA 2 の Harbor バージョンです(2.7.1 など)。

    Harbor のアップグレードのスクリーンショット

  16. 新しい OVA 2 バージョンの Harbor harbor.yml/storage/harbor.yml にコピーします。

    cp -pr /etc/goharbor/harbor/harbor.yml /storage/harbor.yml
    
  17. OVA 2 で Harbor prepare スクリプトを実行します。OVA 1 で Harbor のデフォルト スキャナを有効にしたかどうかに応じて、--with-trivy フラグの追加が必要になる場合があります。

    • スキャナが有効でない場合

      cd /etc/goharbor/harbor && /etc/goharbor/harbor/prepare
      
    • スキャナが有効な場合

      cd /etc/goharbor/harbor && /etc/goharbor/harbor/prepare --with-trivy
      
  18. Harbor サービスを開始します。

    systemctl start harbor
    
check-circle-line exclamation-circle-line close-line
Scroll to top icon