Container Registry Personal Edition インスタンスから Container Registry Enterprise Edition インスタンスにイメージを移行するには、イメージのドメイン名を変更する必要があります。この問題を解決するために、Container Registry Enterprise Edition は、Personal Edition インスタンスのドメイン名をサポートするドメイン名互換性機能を公開しています。この機能を使用すると、イメージのドメイン名を変更することなく、Personal Edition インスタンスのドメイン名を使用して Enterprise Edition インスタンスにアクセスできます。
前提条件
Enterprise Edition インスタンスが作成されていること。詳細については、「Container Registry Enterprise Edition インスタンスを作成する」をご参照ください。
Personal Edition インスタンスのデータが Enterprise Edition インスタンスに移行されていること。詳細については、「Personal Edition インスタンスから Enterprise Edition インスタンスにイメージをインポートする」をご参照ください。
Personal Edition インスタンスのドメイン名を使用して Enterprise Edition インスタンスにアクセスするには、Enterprise Edition インスタンスをホワイトリストに追加する必要があります。
制限事項
1 つのリージョンでは、ドメイン名互換性機能は 1 つの Enterprise Edition インスタンスに対してのみ有効にできます。
Personal Edition インスタンスのドメイン名を使用して、サードパーティが Personal Edition インスタンスでホストしているイメージをプルする場合、サードパーティのパブリックイメージのみをプルできます。
Enterprise Edition インスタンスの名前空間名が Personal Edition インスタンスの名前空間名と同じである場合、Personal Edition インスタンスの名前空間からイメージをプルすることはできません。そのため、Enterprise Edition インスタンスの名前空間名には、acs などの Container Service for Kubernetes (ACK) 固有の文字列を使用しないでください。これは、公式の ACK コンテナイメージへのアクセスの失敗を防ぐことができます。
Personal Edition インスタンスのパブリックドメイン名を使用する場合は、Personal Edition インスタンスのパブリックドメイン名を Enterprise Edition インスタンスのパブリックエンドポイントに解決するように手動で設定する必要があります。
RAM ユーザーを使用して Enterprise Edition インスタンスにログインし、イメージをプルする場合は、Enterprise Edition インスタンスでアクセス認証情報を設定し、対応するリソースに対する権限を RAM ユーザーに付与する必要があります。詳細については、「RAM 認証ルール」をご参照ください。
背景情報
Personal Edition インスタンスと Enterprise Edition インスタンスでサポートされているドメイン名には、以下が含まれます。
2024 年 9 月 9 日から、Container Registry は Personal Edition インスタンスのエンドポイントを調整します。詳細については、「新しい Personal Edition インスタンスの制限」をご参照ください。
例:中国 (杭州) リージョンの Personal Edition インスタンスでサポートされているドメイン名:
中国サイト (aliyun.com) のデフォルトのパブリックドメイン名:registry.cn-hangzhou.aliyuncs.com
中国サイト (aliyun.com) のデフォルトのプライベートドメイン名:registry-vpc.cn-hangzhou.aliyuncs.com
国際サイト (alibabacloud.com) のデフォルトのパブリックドメイン名:registry-intl.cn-hangzhou.aliyuncs.com
国際サイト (alibabacloud.com) のデフォルトのプライベートドメイン名:registry-intl-vpc.cn-hangzhou.aliyuncs.com
例:中国 (杭州) リージョンの Enterprise Edition インスタンスでサポートされているドメイン名:
デフォルトのパブリックドメイン名:<Enterprise Edition インスタンスの名前>-registry.cn-hangzhou.cr.aliyuncs.com
デフォルトのプライベートドメイン名:<Enterprise Edition インスタンスの名前>-registry-vpc.cn-hangzhou.cr.aliyuncs.com
カスタムドメイン名:登録されているすべてのドメイン名。
仕組み
Personal Edition インスタンスのドメイン名は、プライベート環境内の Enterprise Edition インスタンスのパブリックエンドポイントまたは VPC エンドポイントに解決されます。
クラウド上:システムは自動的に Alibaba Cloud DNS PrivateZone (PrivateZone) を使用して、Personal Edition インスタンスの VPC ドメイン名をゾーンに追加し、Personal Edition インスタンスの VPC ドメイン名を Enterprise Edition インスタンスの VPC エンドポイントに解決します。Personal Edition インスタンスのパブリックドメイン名を使用して Enterprise Edition インスタンスにアクセスする場合は、PrivateZone を手動で設定する必要があります。その後、PrivateZone は Personal Edition インスタンスのパブリックドメイン名を Enterprise Edition インスタンスのパブリックエンドポイントに解決します。Personal Edition インスタンスの VPC ドメイン名を使用して Enterprise Edition インスタンスにアクセスすることをお勧めします。
オンプレミス:Personal Edition インスタンスのドメイン名を Enterprise Edition インスタンスのエンドポイントに解決するように設定する必要があります。イメージがプッシュまたはプルされると、システムは Enterprise Edition インスタンスのエンドポイント内の名前空間名に基づいてトラフィックを分散します。名前空間名が Enterprise Edition インスタンスのエンドポイントに存在する場合、トラフィックは Enterprise Edition インスタンスに分散されます。それ以外の場合、トラフィックは Personal Edition インスタンスに分散されます。
シナリオ
シナリオ | ドメイン名互換性機能を使用する | Enterprise Edition インスタンスのエンドポイントを使用する |
| 推奨。 | 非推奨。 |
イメージの配布環境は複雑で、ドメイン名解決を設定するコストは高くなります。たとえば、イメージをサードパーティに提供する必要があります。 | 非推奨。 | 推奨。 |
リージョン内の他のユーザーの Personal Edition インスタンスのプライベートイメージを使用する必要があります。 | 非推奨。 | 推奨。 |
手順 1:Enterprise Edition インスタンスのドメイン名互換性機能を有効にする
Container Registry コンソール にログインします。
上部のナビゲーションバーで、リージョンを選択します。
[インスタンス] ページで、管理する Enterprise Edition インスタンスをクリックします。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[ドメイン] ページで、[Personal Edition インスタンスドメインのサポート] をオンにします。
重要ドメイン名互換性機能を使用するには、[チケットの送信]を行い、Enterprise Edition インスタンスをホワイトリストに追加するように申請する必要があります。
[解決の設定] ダイアログボックスで、[Personal Edition インスタンスドメインのサポート機能を有効にすることを確認する] を選択し、[確認] をクリックします。
Personal Edition インスタンスドメインのサポート機能を有効にすると、Personal Edition インスタンスのプライベートドメイン名とパブリックドメイン名が [ドメイン] ページに表示されます。たとえば、Personal Edition インスタンスが中国 (杭州) リージョンにある場合、Personal Edition インスタンスレジストリの registry.cn-hangzhou.aliyuncs.com というパブリックドメイン名と、Personal Edition インスタンスの registry-vpc.cn-hangzhou.aliyuncs.com というプライベートドメイン名が [ドメイン] ページに表示されます。
重要ドメイン名互換性機能を有効にするには、数秒かかります。この期間中は、名前空間とネットワークアクセス制御機能は使用できません。
手順 2:ドメイン名解決を設定する
Personal Edition インスタンスのドメイン名を使用して Enterprise Edition インスタンスにアクセスするには、ドメイン名解決を設定する必要があります。ドメイン名解決を設定する操作は、ドメイン名の種類によって異なります。
Personal Edition インスタンスのプライベートドメイン名を使用する場合、Alibaba Cloud DNS PrivateZone はプライベートドメイン名を自動的に解決します。
Personal Edition インスタンスのパブリックドメイン名を使用する場合、ローカルホストの CIDR ブロックをパブリックエンドポイントのホワイトリストに手動で追加し、Personal Edition インスタンスのドメイン名解決を設定する必要があります。この例では、Personal Edition インスタンスのパブリックドメイン名を使用します。
Enterprise Edition インスタンスの CIDR ブロックをパブリックエンドポイント ホワイトリストに追加し、Personal Edition インスタンスのパブリック ドメイン名を取得します。
コンテナレジストリ コンソール にログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[アクセス制御] ページで、[インターネット] タブをクリックします。
[インターネット] タブで、[ドメインアドレス] を見つけてコピーします。
[エンドポイント] を有効にして、[インターネットホワイトリストの追加] をクリックします。
[インターネットホワイトリストの追加] ダイアログボックスで、ローカルホストの CIDR ブロックと説明を入力し、[確認] をクリックします。
次のコマンドを実行して、Personal Edition インスタンスの IP アドレスをクエリします。
ping <Endpoint of the Personal Edition instance>コマンド出力から Personal Edition インスタンスの IP アドレスを取得します。
ローカルホストの次の情報を入力し、保存します。
<IP address of the domain name> <Public domain name of the Personal Edition instance>
手順 3:Personal Edition インスタンスのドメイン名を使用して Enterprise Edition インスタンスにアクセスする
ドメイン名互換性機能を有効にすると、Personal Edition インスタンスのドメイン名を使用して Enterprise Edition インスタンスにログインし、Enterprise Edition インスタンスのイメージリポジトリにイメージをプッシュできます。
[ドメイン] ページで、Personal Edition インスタンスのパブリックドメイン名を見つけてコピーします。この例では、パブリックドメイン名 registry.cn-hangzhou.aliyuncs.com を使用します。
Docker クライアントで次のコマンドを実行して、Enterprise Edition インスタンスにログインします。
docker login registry.cn-hangzhou.aliyuncs.comコマンド出力で、アカウントとパスワードを入力します。
login succeededと表示された場合、Enterprise Edition インスタンスにログインしています。イメージをプッシュします。
次のコマンドを実行して、イメージにタグを付けます。
docker tag <Image ID> registry.cn-hangzhou.aliyuncs.com/<Namespace name>/<Image repository name>:<Image tag>次のコマンドを実行して、イメージを Container Registry Enterprise Edition インスタンスにプッシュします。
docker push registry.cn-hangzhou.aliyuncs.com/<Namespace name>/<Image repository name>:<Image tag>Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、[リポジトリ] > [リポジトリ] を選択します。 イメージリポジトリの名前をクリックし、[イメージバージョン] を選択します。 プッシュしたイメージが [イメージバージョン] ページに表示されている場合、Personal Edition インスタンスのドメイン名を使用して Enterprise Edition インスタンスへのアクセスが成功しています。
関連情報
Container Registry Enterprise Edition インスタンスから Docker イメージをプルする方法については、「Container Registry Enterprise Edition インスタンスを使用してイメージをプッシュおよびプルする」をご参照ください。