操作シナリオ
以前から本番環境でパーソナル版共有サービスを安定的に利用しているお客様が、専有のエンタープライズ版インスタンスへのアップグレードを希望する場合、パーソナル版内の既存イメージデータをエンタープライズ版インスタンスにインポートするとともに、既存のビルドシステムやリリースシステム内のイメージアドレス設定を変更して、エンタープライズ版インスタンスにアクセスする必要があります。実際の本番シナリオでは、イメージアドレスはビルドプラットフォーム、リリースプラットフォーム、Kubernetes クラスター内のアプリケーション YAML 定義など複数のプロセスで使用されるため、統一的な変更コストが高くなります。
上記のシナリオと問題に対応するため、エンタープライズ版はパーソナル版サービスドメイン名互換機能を提供します。お客様は既存のパーソナル版イメージアドレスとアクセス認証情報を使用して、エンタープライズ版インスタンス内のイメージをプッシュおよびプルできるようになります。また、スマートオリジン取得に対応しており、エンタープライズ版内に対応するイメージがない場合、パーソナル版サービス内の対応するイメージへ自動的にオリジン取得リクエストを行います。これにより、イメージリポジトリ移行がお客様の運用保守と開発にもたらす負担を最大限に軽減し、より高い安定性、強力な機能、高性能を備えたエンタープライズ版サービスへの迅速な切り替えを促進します。
前提条件
現在、ホワイトリストユーザーのみがパーソナル版ドメイン名を使用したエンタープライズ版インスタンスへのアクセス機能を利用できます。利用を申請するには、チケットを提出してください。 基礎知識
パーソナル版インスタンスとエンタープライズ版インスタンスでサポートされるドメイン名は以下のとおりです。
パーソナル版インスタンスのドメイン名
パブリックネットワークとプライベートネットワークのドメイン名を区別せず、VPC 内からのアクセスは、デフォルトでプライベートネットワーク経由となります。
メインサービスリージョン(広州、上海、南京、北京、成都、重慶):ccr.ccs.tencentyun.com。
その他のリージョン:独立したサービスとドメイン名を有しています。例えば中国香港 リージョン:hkccr.ccs.tencentyun.com。
エンタープライズ版インスタンスドメイン名
パブリックネットワークとプライベートネットワークのドメイン名を区別し、カスタムドメイン名もサポートします。
デフォルトドメイン名:{エンタープライズ版インスタンス名}.tencentcloudcr.com。
プライベートネットワーク専用ドメイン名:{エンタープライズ版インスタンス名}-vpc.tencentcloudcr.com。
カスタムドメイン名:カスタムドメイン名の登録をサポートします。
広州リージョンのパーソナル版サービス内のネームスペース team-a にある nginx:latest イメージをエンタープライズ版インスタンス company-a へ移行する場合を例とします:
パーソナル版アクセスアドレス:ccr.ccs.tencentyun.com/team-a/nginx:latest。
エンタープライズ版アクセスアドレス:company-a.tencentcloudcr.com/team-a/nginx:latest。
原理紹介
エンタープライズ版インスタンスを新規作成すると、パーソナル版ドメイン名をサポートする証明書がデフォルトで発行され、パーソナル版の認証・認可リクエストの処理もサポートされます。
お客様はプライベートネットワーク環境内で、パーソナル版ドメイン名をエンタープライズ版のプライベートネットワークアクセスエンドポイントに名前解決するだけで済みます(プライベートネットワークアクセス制御の設定を参照してください)。プライベートネットワーク内でパーソナル版イメージリポジトリアドレスにアクセスすると、自動的にエンタープライズ版サービスにアクセスし、パーソナル版サービスのユーザー名とパスワードで認証と認可を完了できます。お客様は、Private DNS 製品を使用するか、クラスターノードの Host 設定を自身で管理して DNS 名前解決を行うかを選択できます。 お客様がパーソナル版ドメイン名を使用してエンタープライズ版インスタンスにアクセスする必要がなくなった場合、プライベートネットワーク内の強制名前解決を解除するだけで、パーソナル版サービスに正常にアクセスできます。
使用制限
1. 同一リージョンでは、1 つのエンタープライズ版インスタンスでのみパーソナル版ドメイン名互換機能を有効にして使用できます。
2. パブリックネットワーク環境を使用している場合は、DNS 名前解決をエンタープライズ版インスタンスのアクセスエンドポイントに手動で設定する必要があります。
3. パーソナル版ドメイン名を使用してエンタープライズ版サービスにアクセスする場合、エンタープライズ版内の対応するネームスペースにあるイメージリポジトリが優先的にリクエストされます。そのため、エンタープライズ版インスタンス内で library、tke、public などの特殊なネームスペース名を使用しないでください。使用した場合、TKE クラスターが製品の公式イメージにアクセスできなくなり、基盤サービスに異常が発生する原因となります。
操作ガイド
基礎環境の確認
1. パーソナル版サービスを有効にして使用しています。
2. エンタープライズ版サービスを購入し、パーソナル版サービス内の一部のイメージをエンタープライズ版インスタンスに同期しました。
3. 既存の TKE クラスター(TKE Serverless クラスターを含む)があり、クラスターが属する VPC がエンタープライズ版インスタンスに接続済みです。詳細はプライベートネットワークアクセス制御の設定を参照してください。 4. TKE クラスター内でパーソナル版およびエンタープライズ版のイメージをプライベートネットワーク経由で正常にプルできることが検証されています。
Private DNS 名前解決の設定
2. プライベートドメインの新規作成
2.1 ドメイン名:tencentyun.com。
2.2 VPC の関連付け:エンタープライズ版が接続済みの VPC を選択します。
2.3 サブドメイン再帰的名前解決:有効のままにします。
2.4 その他のオプションはデフォルトのままで問題ありません。
3. Private DNS 名前解決の設定
3.1 新規作成したプライベートドメインをクリックして詳細ページに移動します。
3.2 DNS レコードにレコードを追加し、以下のとおり設定します:
ホストレコード:メインサービスリージョンを使用している場合は ccr.ccs と設定します。その他のリージョンでは、対応するドメイン名プレフィックス(例:hkccr.ccs)を入力してください。
レコードタイプ:CNAME。
レコード値:エンタープライズ版インスタンスのドメイン名です。デフォルトドメイン名またはカスタムドメイン名を使用できます。デフォルトドメイン名またはカスタムドメイン名について、製品コンソール内で自動名前解決が設定済みであることを確認してください。
その他はデフォルトのままで問題ありません。
3.3 その他のオプションはデフォルトのままで問題ありません。
アクセス効果の検証
上記の設定が完了すると、パーソナル版ドメイン名を使用してエンタープライズ版インスタンスにアクセスできることを検証できます。
シナリオ 1:パーソナル版ドメイン名を使用したエンタープライズ版インスタンスへ移行済みイメージのプル
1. 同期ツールを使用するか、手動でイメージをエンタープライズ版インスタンスにプッシュします。例:company-a.tencentcloudcr.com/team-a/nginx:latest。対応するパーソナル版イメージリポジトリアドレスは ccr.ccs.tencentyun.com/team-a/nginx:latest です。
2. クラスターノードにログインして手動でイメージをプルするか、新しいワークロードを作成してイメージプルを実行します。以下の点に注意してください:
イメージアドレスは ccr.ccs.tencentyun.com/team-a/nginx:latest のままにします。
アクセス認証情報は、設定済みのパーソナル版アクセス認証情報のままにします。
3. クラスターがこのイメージを正常にプルできることを検証します。
シナリオ 2:パーソナル版ドメイン名を使用したエンタープライズ版インスタンスへ未移行のイメージのプル
1. パーソナル版にはすでにイメージ「ccr.ccs.tencentyun.com/team-b/apache:latest」が存在しますが、このイメージはまだエンタープライズ版に同期されていません。
2. クラスターノードにログインして手動でイメージをプルするか、新しいワークロードを作成してイメージプルを実行します。以下の点に注意してください:
イメージアドレスは ccr.ccs.tencentyun.com/team-b/apache:latest のままにします。
アクセス認証情報は、設定済みのパーソナル版アクセス認証情報のままにします。
3. クラスターがこのイメージを正常にプルできることを検証します。
シナリオ 3:パーソナル版ドメイン名を使用したエンタープライズ版インスタンスへのイメージのプッシュ
1. Docker CLI または CI プラットフォームを使用してイメージをプッシュします。パーソナル版アドレスを使用します:ccr.ccs.tencentyun.com/team-a/nginx:latest。
2. エンタープライズ版インスタンス内にすでに team-a ネームスペースが存在する場合は、プッシュできます。存在しない場合は、エラーとなって失敗します。
使用上の推奨事項
適用シナリオ
ドメイン名互換機能は、以下のシナリオでのみ使用することを推奨します:
ビルド環境、プロジェクトコード、アプリケーションのデプロイでパーソナル版イメージが大量に使用されており、エンタープライズ版の独立ドメインへの切り替えコストが高い。
イメージのビルドおよび配信環境は固定されており、DNS 名前解決を一度設定するだけでコストが低く抑えられます。
イメージ配布シナリオが複雑で、かつサードパーティユーザーや複雑なネットワーク環境からエンタープライズ版内のイメージへのアクセスをサポートする必要がある場合は、本番環境のデプロイの混乱を防ぐため、パーソナル版ドメイン名互換機能の使用は推奨しません。
カナリア切り替え
パーソナル版ドメイン名を使用してエンタープライズ版インスタンス内のイメージへのアクセスを開始した初期は、パーソナル版とエンタープライズ版の両方にイメージをプッシュすることを推奨します。これにより、名前解決設定に異常が発生した場合でも、クラスターは一時的にパーソナル版サービスへのアクセスに切り替えることができます。その後、既存のパーソナル版イメージアドレス設定を徐々にエンタープライズ版アドレスに調整し、最終的にドメイン名互換機能の使用を停止してください。