このトピックでは、自己管理型 Harbor から Container Registry Enterprise Edition インスタンスへ、Harbor のリモートレプリケーション機能を使用してイメージを同期し、ジオディザスタリカバリを実現する方法について説明します。
Harbor のリモートレプリケーションによる同期を利用したくない場合や、より高速な同期が必要な場合は、「自己管理型 Harbor を 10 分で Container Registry Enterprise Edition に移行する」をご参照ください。
前提条件
Container Registry Enterprise Edition インスタンスを作成します。詳細については、「Enterprise Edition インスタンスの作成」をご参照ください。
操作手順
Harbor から Container Registry へのイメージ同期
Harbor がオンプレミスデータセンターにデプロイされている場合は、まずそのデータセンターと VPC を接続してください。詳細については、「クロスリージョンまたはデータセンターからの Enterprise Edition インスタンスへのアクセス」をご参照ください。
ステップ 1:名前空間の作成
Container Registry コンソール にログインします。
上部ナビゲーションバーでリージョンを選択します。
左側ナビゲーションウィンドウで [インスタンス] をクリックします。
インスタンス ページで、対象の Enterprise Edition インスタンスをクリックします。
Enterprise Edition インスタンスの管理ページで、 の順に選択します。
名前空間 ページで、名前空間を作成 をクリックします。
名前空間を作成 サイドバーで、名前空間 名を設定し、リポジトリの自動作成 を オン または 閉じる に設定します。OK をクリックします。
パラメーター
説明
名前空間
同期する Harbor プロジェクトの名前を入力します。例:test-project。
リポジトリの自動作成
オン を選択します。
説明閉じる を選択した場合、イメージを同期する前に、Container Registry Enterprise Edition に該当するリポジトリを作成しておく必要があります。
ステップ 2:Harbor での送信先レジストリの設定
Harbor にログインします。
左側ナビゲーションウィンドウで、 の順に選択します。
リポジトリ ページで、NEW ENDPOINT をクリックします。

[New Endpoint] ダイアログボックスで、以下のパラメーターを設定します。
パラメーター
説明
プロビジョナー
Docker Registry を選択します。
Endpoint Name
任意の名前を入力します。
説明
任意の説明を入力します。
Endpoint URL
送信先の Container Registry Enterprise Edition インスタンスのエンドポイント URL を入力します。アクセスの制御が有効になっていることを確認してください。詳細については、「VPC に対するアクセスの制御の設定」および「インターネットに対するアクセスの制御の設定」をご参照ください。
VPC:
例:
https://<instance-name>-registry-vpc.cn-qingdao.cr.aliyuncs.comインターネット:
例:
https://<instance-name>-registry.cn-qingdao.cr.aliyuncs.com
Access ID
Alibaba Cloud アカウントのユーザー名を入力します。
アクセス用パスワード
Container Registry のログインパスワードを入力します。詳細については、「永続パスワードの使用」をご参照ください。

パラメーターを設定したら、Test Connection をクリックします。「Connection tested successfully」というメッセージが表示されたら、OK をクリックします。

ステップ 3:レプリケーションルールの設定
Harbor にログインします。
左側ナビゲーションウィンドウで、System Management > Replications を選択します。
[Replications] ページで、ルールの作成 をクリックします。

ルールの作成 ダイアログボックスで、以下のパラメーターを設定し、保存 をクリックします。
パラメーター
説明
名前
任意の名前を入力します。
説明
任意の説明を入力します。
Replication mode
Push-based を選択します。
Source resource filter
同期するソースリソースをフィルターします。Harbor UI の案内に従ってこのパラメーターを設定できます。デフォルトでは、すべてのリソースが同期されます。
指定
ステップ 2 で作成した送信先を選択します。
対象
名前空間には、ターゲット ACR 上の名前空間を入力します。リポジトリフラット化により、イメージをコピーする際にリポジトリのディレクトリ階層を減らすことができます。Replace 1 level を選択することを推奨します。例:
harbor-project/nginx -> acr-ns/nginxトリガーモード
カスタムモードを選択します。Harbor のイメージ変更を同期するために、イベント駆動 を選択することを推奨します。
{value, select, EccStatus {リンク状態} ApplicationStatus {申請状況} PeerCity {IDCのある都市} PeerLocation {IDCアドレス} IdcSP {IDCオペレーター} PortType {IDCポートタイプ} AccessPointId {アクセスポイント} Bandwidth {帯域幅} PortSpecification {ポート仕様} Distance {距離} GmtCreate {作成時間 RoomLocation {部屋の場所} ContactTel {電話番号} ContactMail {メールボックス} RedundantEccId {冗長リンク} Region {領域} EstimatedTime {予想時間}other {{value}}}
同期時の最大ネットワーク帯域幅を制限します。デフォルト値は -1 で、制限なしを意味します。

[Replications] ページで、作成したルールを選択し、コピー をクリックします。これにより、既存のイメージが Container Registry Enterprise Edition インスタンスに手動で同期されます。タスクのステータスが Succeeded に変わると、レプリケーションが完了します。その後、ソースリポジトリの変更は、イベント駆動型トリガーに基づいて自動的に Container Registry Enterprise Edition インスタンスに同期されます。

ディザスタリカバリ用のカスタムドメイン名の設定
この機能により、インスタンスにカスタムドメイン名と SSL 証明書を追加し、そのドメイン名を使って HTTPS 経由でアクセスできるようになります。
ネットワーク環境に応じて、以下のディザスタリカバリソリューションを選択してください。
ソリューション 1:Alibaba Cloud 上の Harbor、インターネット経由でのアクセス
ここでは、Container Registry Enterprise Edition インスタンスが中国 (杭州) リージョンにあり、Harbor インスタンスが中国 (張家口) リージョンにある例を紹介します。両方のインスタンスに同じドメイン名を設定し、PrivateZone を使用しています。PrivateZone の設定方法の詳細については、「カスタムドメイン名を使用した Container Registry Enterprise Edition インスタンスへのアクセス」をご参照ください。
以下の表は、Container Registry Enterprise Edition インスタンスおよび Harbor インスタンスの基本情報を示しています。
インスタンス ID | パブリックドメイン名 | 関連付けられた VPC | カスタムドメイン名 |
ACR-A | a-registry.cn-hangzhou.cr.aliyuncs.com | vpc-aaaaa | cross-region.registry.io |
Harbor-B | - | vpc-bbbbb | cross-region.registry.io |
中国 (張家口) リージョンの Harbor インスタンスが障害を起こし、イメージのプッシュまたはプルができなくなった場合、PrivateZone の DNS レコードを変更することで、Container Registry Enterprise Edition インスタンスに切り替えることができます。以下の手順に従ってください。
Alibaba Cloud DNS コンソール にログインします。
左側ナビゲーションウィンドウで、イントラネットドメイン名の解決 をクリックします。
組み込みの権威 タブで、ゾーン名
cross-region.registry.io(インスタンスのカスタムドメイン名)を検索します。2 つのゾーンが表示されるので、vpc-bbbbbVPC に関連付けられたゾーンをクリックします。[解決設定] タブで、対象のレコードを見つけ、操作 列の 変更 をクリックします。
Modify Record パネルで、以下のパラメーターを設定し、OK をクリックします。
パラメーター
説明
レコードタイプ
CNAME を選択します。
ホストレコード
@ に設定します。
レコード値
a-registry.cn-hangzhou.cr.aliyuncs.com(Container Registry インスタンスのパブリックドメイン名)TTL
デフォルト値のままとします。
ソリューション 2:外部 Harbor、インターネット経由でのアクセス
Container Registry Enterprise Edition インスタンスのカスタムドメイン名を、自己管理型 Harbor で使用しているドメイン名(例:www.ha****.com)に設定します。詳細については、「カスタムドメイン名を使用した Container Registry Enterprise Edition インスタンスへのアクセス」をご参照ください。
自己ホスト型 Harbor インスタンスが障害を起こし、イメージのプッシュまたはプルができなくなった場合、ドメイン名 www.harbor.com の DNS レコードを変更し、Container Registry Enterprise Edition インスタンスのパブリック IP アドレスに解決されるようにします。これにより、インターネット経由でインスタンスにアクセスできるようになります。
ソリューション 3:外部 Harbor、VPC 経由でのアクセス
自己管理型 Harbor が障害を起こし、イメージのプッシュまたはプルができなくなった場合、まず Container Registry Enterprise Edition インスタンスの IP アドレスを取得します。次に、自己管理型 Harbor で使用しているドメイン名(例:www.harbor.com)が Container Registry Enterprise Edition インスタンスの IP アドレスに解決されるように、ルーティングルールおよび DNS レコードを設定します。これにより、VPC 経由で Container Registry Enterprise Edition インスタンスにアクセスできるようになります。詳細については、「クロスリージョンまたはデータセンターからの Enterprise Edition インスタンスへのアクセス」をご参照ください。