ドメイン名互換性機能により、イメージの再タグ付けや再デプロイなしに、Personal Edition インスタンスのドメイン名を使って Container Registry Enterprise Edition インスタンスにアクセスできます。トラフィックは名前空間名に基づいて Enterprise Edition インスタンスにルーティングされるため、既存の Kubernetes マニフェスト、CI/CD パイプライン、およびデプロイスクリプトを変更せずに引き続き使用できます。
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
Container Registry Enterprise Edition インスタンスが存在すること。詳細については、「Container Registry Enterprise Edition インスタンスの作成」をご参照ください。
Personal Edition インスタンスから Enterprise Edition インスタンスへイメージを移行済みであること。詳細については、「Personal Edition インスタンスから Enterprise Edition インスタンスへのイメージのインポート」をご参照ください。
Enterprise Edition インスタンスがホワイトリストに追加されていること。申請するには、チケットを送信してください。
制限事項
この機能は、リージョンごとに 1 つの Enterprise Edition インスタンスに対してのみ有効化できます。
Personal Edition のドメイン名を使用したサードパーティ製イメージのプルは、パブリックイメージにのみ対応しています。Personal Edition インスタンス上にホストされたサードパーティの非公開イメージにはアクセスできません。
Enterprise Edition インスタンスに Personal Edition インスタンスと同じ名前の名前空間が存在する場合、Personal Edition の名前空間内のイメージはプルできません。Container Service for Kubernetes (ACK) の公式コンテナイメージへのアクセスが中断されないよう、Enterprise Edition インスタンスの名前空間名として
acsなどの ACK 固有の文字列を使用しないでください。Personal Edition インスタンスのパブリックドメイン名を使用する場合は、手動で名前解決を構成する必要があります。VPC プライベートドメイン名は自動的に解決されます。
RAM ユーザーが Enterprise Edition インスタンスにログインしてイメージをプルする必要がある場合は、Enterprise Edition インスタンス上でアクセス認証情報を構成し、該当リソースに対する RAM ユーザーの権限を付与してください。詳細については、「RAM 認証ルール」をご参照ください。
適切なアクセス方法の選択
| シナリオ | ドメイン名互換性機能 | Enterprise Edition エンドポイント |
|---|---|---|
| 環境構築、プロジェクトコーディング、アプリケーションデプロイなどで大規模にイメージが使用されており、ビルドおよびディストリビューション環境が固定されているため、DNS 構成を一度行うコストが低い。 | 推奨 | 非推奨 |
| イメージのディストリビューション環境が複雑(例:サードパーティとイメージを共有している)ため、ドメイン名解決の構成コストが高い。 | 非推奨 | 推奨 |
| 同一リージョン内の Personal Edition インスタンス上で他のユーザーがホストしている非公開イメージにアクセスする必要がある。 | 非推奨 | 推奨 |
仕組み
Personal Edition のドメイン名は、Enterprise Edition インスタンスのパブリックエンドポイントまたは VPC エンドポイントに解決されます。
Alibaba Cloud 上(VPC): Alibaba Cloud DNS PrivateZone(PrivateZone)が自動的に Personal Edition インスタンスの VPC ドメイン名をゾーンに追加し、Enterprise Edition インスタンスの VPC エンドポイントに解決します。手動構成が不要なため、VPC ドメイン名を使用することを推奨します。
Alibaba Cloud 上(パブリック): PrivateZone はパブリックドメイン名を自動的に解決しません。パブリックドメイン名を Enterprise Edition インスタンスのパブリックエンドポイントに解決するには、PrivateZone を手動で構成する必要があります。
オンプレミス環境: ローカル DNS を構成して、Personal Edition のドメイン名を Enterprise Edition のエンドポイントに解決します。イメージのプッシュまたはプル時に、トラフィックは名前空間名に基づいてルーティングされます。名前空間が Enterprise Edition インスタンスに存在する場合は Enterprise Edition インスタンスに、存在しない場合は Personal 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 インスタンスのドメイン名 — 中国 (杭州) リージョン:
| タイプ | ドメイン名 |
|---|---|
| デフォルトのパブリックドメイン名 | <instance-name>-registry.cn-hangzhou.cr.aliyuncs.com |
| デフォルトのプライベートドメイン名 | <instance-name>-registry-vpc.cn-hangzhou.cr.aliyuncs.com |
| カスタムドメイン名 | 登録済みの任意のドメイン名 |
ステップ 1:ドメイン名互換性機能を有効化する
機能を有効化する前に、チケットを送信して、Enterprise Edition インスタンスをホワイトリストに追加してください。
Container Registry コンソールにログインします。
上部ナビゲーションバーでリージョンを選択します。
インスタンスページで、管理対象の Enterprise Edition インスタンスをクリックします。
左側ナビゲーションウィンドウで、リポジトリ > ドメインを選択します。
ドメインページで、Personal Edition インスタンスドメインのサポートをオンにします。
名前解決の構成ダイアログボックスで、Personal Edition インスタンスドメインのサポート機能を有効化することを確認しますを選択し、確認をクリックします。
機能が有効化されると、Personal Edition インスタンスのパブリックおよびプライベートドメイン名がドメインページに表示されます。たとえば、中国 (杭州) リージョンでは、registry.cn-hangzhou.aliyuncs.com(パブリック)およびregistry-vpc.cn-hangzhou.aliyuncs.com(プライベート)が表示されます。
機能の有効化には数秒かかります。この間、名前空間およびネットワークアクセス制御機能は利用できません。
ステップ 2:ドメイン名の名前解決を構成する
ドメイン名の種類に応じて、名前解決の構成方法が異なります。
VPC プライベートドメイン名(推奨)
特別な操作は不要です。PrivateZone が自動的に Personal Edition インスタンスの VPC プライベートドメイン名を Enterprise Edition インスタンスの VPC エンドポイントに解決します。
パブリックドメイン名
手動で解像度を設定する:
ローカルホストの CIDR ブロックをパブリックエンドポイントのホワイトリストに追加し、Personal Edition インスタンスのパブリックドメイン名を取得します。
Container Registry コンソールにログインします。
上部ナビゲーションバーでリージョンを選択します。
左側ナビゲーションウィンドウで、インスタンスをクリックします。
Enterprise Edition インスタンス管理ページの左側ナビゲーションウィンドウで、リポジトリ > アクセス制御を選択します。
インターネットタブをクリックします。
タブに表示されているドメインアドレスをコピーします。
エンドポイントをオンにして、インターネットホワイトリストの追加をクリックします。
インターネットホワイトリストの追加ダイアログボックスで、ローカルホストの CIDR ブロックと説明を入力し、確認をクリックします。
Personal Edition インスタンスの IP アドレスを照会します。
ping <Endpoint of the Personal Edition instance>出力結果の IP アドレスをメモします。
ローカルの hosts ファイルに次のエントリを追加して保存します。
<IP address of the domain name> <Public domain name of the Personal Edition instance>
ステップ 3:ログインしてイメージをプッシュする
ドメインページで、Personal Edition インスタンスのパブリックドメイン名をコピーします。ここでは例として
registry.cn-hangzhou.aliyuncs.comを使用します。Docker クライアントから Enterprise Edition インスタンスにログインします。
docker login registry.cn-hangzhou.aliyuncs.comプロンプトが表示されたら、アカウント名とパスワードを入力します。
Login Succeededと表示されれば、ログインが成功しています。イメージにタグを付けます。
docker tag <Image ID> registry.cn-hangzhou.aliyuncs.com/<Namespace name>/<Image repository name>:<Image tag>イメージをプッシュします。
docker push registry.cn-hangzhou.aliyuncs.com/<Namespace name>/<Image repository name>:<Image tag>結果を確認します。Enterprise Edition インスタンス管理ページの左側ナビゲーションウィンドウで、リポジトリ > リポジトリを選択します。イメージリポジトリ名をクリックしてイメージバージョンタブを選択します。プッシュしたイメージが表示されていれば、ドメイン名互換性機能が正しく動作しています。
次のステップ
Container Registry Enterprise Edition インスタンスを使用してイメージをプッシュおよびプルする — Enterprise Edition エンドポイントを直接使用してイメージをプルする方法について学習します。