このトピックでは、image-syncer を使用して、自作 Harbor から Container Registry Enterprise Edition にイメージを同期する方法について説明します。
始める前に
- Container Registry サービスが有効である必要があります。
Container Registry コンソールにログインし、 Container Registry サービスを有効化します。
- Container Registry Enterprise Edition インスタンスが作成されます。
このタスクについて
名前空間の作成
- Container Registry コンソールにログインします。
- 左側のナビゲーションウィンドウで、 の順に選択します。
- 名前空間ページで、右上隅にある[名前空間の作成]をクリックします。
- 名前空間の作成ダイアログボックスで名前空間をカスタマイズし、[確定] をクリックします。
RAM ユーザーへの権限付与
Resource Access Management (RAM) ユーザーとして後続の操作を実行する場合、RAM ユーザーを作成し、RAM ユーザーにアクセス権限を付与する必要があります。 Alibaba Cloud アカウントを使用して後続の操作を実行する場合は、このセクションをスキップしてください。
パブリックネットワークへのアクセスの設定
デフォルトでは、Container Registry Enterprise Edition インスタンスはパブリックネットワークにアクセスできません。 したがって、パブリックネットワークのアクセス制御ポリシーを設定する前に、パブリックネットワークへのアクセスを有効にする必要があります。
アクセス資格情報の設定
プライベートイメージをプルするか、イメージをアップロードする前に、docker login コマンドを実行して、アクセス資格情報を使用してレジストリにログインする必要があります。 以下の手順に従って、アクセス資格情報を設定します。
- 左側ナビゲーションウィンドウで、 をクリックします。
- アクセス資格情報ページで [パスワードの設定] をクリックします。
- [パスワードの設定] ダイアログボックスで [パスワード]、[パスワードの確認] を設定し、[OK] をクリックします。
image-syncer の設定
アクセス資格情報のパスワードを使用して、image-syncer を設定します。
- image-syncer がパブリックネットワーク上のサーバーで実行されている場合、パブリックネットワークのエンドポイントを使用して Container Registry Enterprise Edition インスタンスにアクセスする必要があります。
- image-syncer が VPC の ECS インスタンスで実行されている場合、VPC のエンドポイントを使用して Container Registry Enterprise Edition インスタンスにアクセスする必要があります。 さらに、ECS インスタンスが存在する VPC から見えるようにエンドポイントを設定する必要があります。
{
"auth": {
"harbor.myk8s.paas.com:32080": {
"username": "admin",
"password": "xxxxxxxxx",
"insecure": true
},
"ruohe-test-registry.cn-shanghai.cr.aliyuncs.com": {
"username": "ruohehhy",
"password": "xxxxxxxx"
}
},
"images": {
"harbor.myk8s.paas.com:32080/library/nginx": ""
}
}
harbor.myk8s.paas.com:32080
: 自作 Harbor レジストリのエンドポイント。 実際の値に置き換える必要があります。username
: 自作 Harbor レジストリのユーザー名。 この例では、値は admin です。password
: 自作 Harbor レジストリのパスワード。insecure
: このパラメーターを true に設定します。
ruohe-test-registry.cn-shanghai.cr.aliyuncs.com
: パブリックネットワークの Container Registry Enterprise Edition インスタンスのエンドポイント。username
: アクセス資格情報のユーザー名。password
: アクセス資格情報のパスワード。
"harbor.myk8s.paas.com:32080/library/nginx": ""
: harbour.myk8s.paas.com:32080 にある library/nginx リポジトリにアクセスします。
image-syncer を使用したイメージ同期
同期結果
イメージを同期するとき、image-syncer は同期タスクを生成し、同期タスクを実行し、失敗したタスクを再試行します。 失敗したタスクには、実行に失敗した同期タスクと、生成に失敗した同期タスクが含まれます。 各同期タスクは、指定されたタグでイメージを同期します。 設定ファイルのイメージ同期ルールでタグが指定されていない場合、image-syncer は元のタグをすべて保持することにより、このルールに基づいて同期タスクを生成します。
- イメージが正常に同期されると、次の図に示すメッセージが表示されます。
- たとえば、ユーザー名またはパスワードが正しくないためにイメージの同期に失敗すると、次の図に示すメッセージが表示されます。
- 次の図に示すように、実行中に image-syncer はログ情報を表示します。