中国本土以外のcontainer Service for Kubernetes (ACK) クラスターに存在するクロスリージョンコンテナイメージをプルするには、Global Accelerator (GA) インスタンスを作成し、そのグローバルネットワークアクセラレーションサービスを使用します。
前提条件
Kubernetes 1.24以降を実行するACK Proクラスターが作成されます。 クラスターの作成方法の詳細については、「ACK管理クラスターの作成」をご参照ください。 クラスターのアップグレード方法の詳細については、「手動でACKクラスターをアップグレードする」をご参照ください。
kubectlクライアントがACKクラスターに接続されています。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
使用状況ノート
ネットワークアクセスの動作を調整します。 対象のWebサイトに違法な情報が含まれている場合、アクセスできない場合があります。
課金の概要
ACKクラスターが負担する料金に加えて、インスタンス料金、パフォーマンスキャパシティユニット (CU) 料金、ネットワーク送信帯域幅料金など、GAインスタンスの関連コストもあります。 詳細については、「課金ルール」および「GAインスタンスの課金の概要」をご参照ください。
手順1: 標準GAインスタンスの作成
標準のGAインスタンスは、異なるアクセラレーションリージョンのユーザーを、異なるリージョンにデプロイされたオリジンサーバーに接続し、レイヤー4 (TCPおよびUDPプロトコル) およびレイヤー7 (HTTPおよびHTTPSプロトコル) でアクセラレーションサービスを提供します。 ネットワークアクセラレーションが必要な中国本土以外のリージョンを設定できます。 docker.ioなど、データをプルするイメージリポジトリのドメイン名を追加することもできます。
このトピックで作成された標準のGAインスタンスは、クロスボーダー通信の高速化のためにデフォルトでBGP (マルチISP) Proを使用します。
にログインします。GAコンソール.
インスタンス ページで、 [GAインスタンスの作成] > [従量課金標準インスタンス] をクリックし、プロンプトに従ってパラメーターを設定します。 ページのメモを読み、設定を完了して送信します。
この手順では、いくつかの主要なパラメーターに基づいて従量課金の標準GAインスタンスを作成する方法を紹介します。 詳細については、「標準GAインスタンスの作成と管理」をご参照ください。
設定
説明
基本的なインスタンス設定
インスタンスの課金方法
デフォルトの課金方法は従量課金です。 次の料金が請求される場合があります。
インスタンス料金とCU料金の詳細については、「従量課金GAインスタンスの課金」をご参照ください。
データ転送料金の詳細については、「データ転送課金」をご参照ください。
アクセラレーションエリアの設定
アクセラレーションエリア
ACKクラスターがデプロイされているリージョンをアクセラレーションエリアとして選択します。 この例では、杭州と上海が選択されています。
説明エリアとリージョンの詳細については、「アクセラレーションエリアとリージョン」をご参照ください。
アクセラレーションエリアとして中国本土を選択した場合、関連するドメイン名のインターネットコンテンツプロバイダ (ICP) ファイリングを申請する必要があります。 詳細については、「ドメイン名の管理」をご参照ください。
帯域幅の割り当て
最大帯域幅: アクセラレーションリージョンの帯域幅。 この例では、200 Mbpsが使用されます。
IP プロトコル: Global AcceleratorサービスにアクセスするためのIPアドレスプロトコル。 この例では、IPv4が使用されます。
リスナーの設定
プロトコル
リスナーが使用するネットワーク伝送プロトコル。 この例では、TCPが使用される。
ポート
リスナーがリクエストを受信してエンドポイントに転送するポートを指定します。 有効な値: 1 ~ 65499
リスナーごとに最大30個のポートを指定できます。 複数のリスナーポートはコンマ (,) で区切ります。 たとえば、80,90、8080を入力できます。
この例では、
80,443
と入力します。エンドポイントグループの設定
リージョン
ネットワークの高速化が必要な中国本土以外の地域。 この例では、米国 (バージニア) が選択されています。.
エンドポイント設定
エンドポイントは、クライアント要求を受信して処理するバックエンドサービスです。 次の例に基づいてエンドポイントを設定します。
バックエンドサービスタイプ: この例では、カスタムドメイン名が選択されています。
バックエンドサービス: データをプルするイメージリポジトリのドメイン名。 この例では、
docker.io
と入力します。重み: エンドポイントの重みを指定します。 有効な値:0~255 。 GAは、エンドポイントの重みに基づいてネットワークトラフィックをエンドポイントにルーティングします。
警告エンドポイントの重みを0に設定すると、Global Acceleratorはエンドポイントへのネットワークトラフィックの配信を停止します。 作業は慎重に行ってください。
この例では、
255
を入力します。
設定が完了したら、プロンプトに従ってGAインスタンスの詳細ページに入ります。
GAインスタンスの詳細ページで、 [アクセラレーションエリア] タブをクリックし、エリアリストの [高速化IPアドレス] 列の下にある、ACKクラスターがデプロイされているエリアの高速化IPアドレスをステップ3: クラスターノードのDNSレコードの設定で記録します。
手順2: GAインスタンスの転送ルールの設定
ターゲットイメージの他のドメイン名の転送ルールを設定する必要がある場合は、リスナーに仮想エンドポイントグループを追加できます。
リスナーの仮想エンドポイントグループを作成した後、カスタム転送ルールを作成し、そのルールを仮想エンドポイントグループに関連付けることができます。 転送ルールをエンドポイントグループに関連付けた後、リスナーは、転送条件を満たすリクエストを、デフォルトのエンドポイントグループまたは転送ルールで指定された仮想エンドポイントグループに転送します。 このように、GAは同時に複数のエンドポイントへのアクセスを高速化できます。 転送ルールの作成方法の詳細については、「転送ルールの作成と管理」をご参照ください。
GAインスタンスの詳細ページで、 [リスナー] タブをクリックし、リスナーリストの [リスナーID /名前] 列にあるリスナーのIDをクリックして、リスナーの詳細ページに移動します。
[エンドポイントグループ] タブをクリックし、 [仮想エンドポイントグループの追加] をクリックし、プロンプトに従って設定を完了します。
エンドポイント設定の例は次のとおりです。
バックエンドサービスタイプ: カスタムドメイン名を選択します。
バックエンドサービス: データをプルするイメージソースのドメイン名 (例:
production.cloudflare.docker.com
) 。重み: デフォルト
255
を使用します。
リスナーの詳細ページで、 [転送ルール] タブをクリックし、 [転送ルールの追加] をクリックし、プロンプトに従って新しい転送ポリシーを設定します。
次の設定が使用されます。
If (Matching All Conditions): ホストマッチングルールをExact Matchとして選択します。 転送ホストは、
production.cloudflare.docker.com
など、データをプルするイメージソースのドメイン名である必要があります。次に: [設定] [転送] [仮想エンドポイントグループ] を選択し、前の手順で追加した仮想エンドポイントグループを選択します。
ステップ3: DNSレコードの設定
ドメインネームシステム (DNS) レコードを設定する方法は2つあります。 DNSレコードをACKクラスターノードの /etc/hosts
ファイルに追加して、オンプレミスのドメイン名解決用のエントリを追加できます。 内部DNS解決用にPrivateZoneを設定することもでき、設定が有効になった後に課金されます。 PrivateZoneの課金の詳細については、「課金」をご参照ください。
ACKクラスターノードのオンプレミスドメイン名解決レコードの設定
転送ルールを作成した後、対応するDNSレコードをACKクラスターノードに追加する必要もあります。 これにより、ノードは、GAインスタンスの高速化IPアドレスを介してデータをプルするイメージリポジトリのドメイン名にアクセスできます。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
ノードリストの下で、イメージをプルするノードを選択し、バッチ操作ページの下部で、操作タイプをシェルスクリプトの実行をクリックし、OK.
ACS-ECS-BulkyRunCommandとして実行するテンプレートを選択します。これは、複数のECSインスタンスでCloud Assistantコマンドをバッチで実行することをサポートします。 残りの設定はデフォルトのままにして、次のステップに進みます。
ノードの /etc/hostsファイルに対応するDNSレコード (レコードA) をバッチ追加するように指示されたシェルスクリプトを入力します。 で取得した高速化IPアドレスとしてIPアドレスを設定します。ステップ2: GAインスタンスの転送ルールのと、データをプルするターゲットイメージとしてのドメイン名を設定します。 設定を完了し、[作成] をクリックします。
たとえば、
echo
コマンドを使用してDNS設定を設定できます。タスクが完了すると、ECSインスタンスにログインして、対応するDNSレコードがノードに存在することを確認できます。 また、中国本土の外部にあるコンテナーイメージをノードがプルできるかどうかをテストすることもできます。
PrivateZoneの設定
転送ルールを作成した後、対応するDNSレコードを追加するようにPrivateZoneを設定する必要もあります。 これにより、ノードは、GAインスタンスの高速化IPアドレスを介してデータをプルするイメージリポジトリのドメイン名にアクセスできます。
ターゲットGAインスタンスのCNAMEアクセラレーションドメイン名を取得します。
にログインします。GAコンソール.
左側のナビゲーションウィンドウで、[標準インスタンス] を選択します。
インスタンス ページで、管理する基本GAインスタンスを見つけ、インスタンスIDをクリックします。
[インスタンス情報] タブで、GAインスタンスのCNAMEを取得します。
ターゲットACKクラスターノードが属するVPC IDを取得します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。
[クラスター情報] ページで、[基本情報] タブをクリックしてVPC IDを取得します。
PrivateZone DNSレコードの設定
GAインスタンスのアクセラレーションドメイン名 (
docker.io
production.cloudflare.docker.com
) としてアクセスするドメイン名のCNAME解決レコードを設定します。 トップレベルドメイン名が異なるため、それぞれio
とcloudflare.docker.com
の2つの組み込み権限ゾーンを作成する必要があります。 次の例は、組み込みの権限ゾーンcloudflare.docker.com
を作成する方法を示しています。Alibaba Cloud DNS コンソールにログインします。
左側のナビゲーションウィンドウで、[プライベートDNS (PrivateZone)] をクリックします。 右上隅の [設定モード] をクリックします。 次に、[組み込み権限モジュール] タブをクリックします。 このタブで、[ユーザー定義ゾーン] タブをクリックします。
[ユーザー定義ゾーン] タブで、[新しいゾーンの追加] をクリックし、ダイアログボックスに
cloudflare.docker.com
を入力して、[ゾーンタイプ] の [ビルトイン認可アクセラレーションゾーン] を選択し、[サブドメイン名の再帰的解決プロキシ] を有効にして、[OK] をクリックします。[組み込み権限ゾーン] 列の [
cloudflare.docker.com
] をクリックし、[リソースレコードの設定] タブの [レコードの追加] をクリックします。[レコードの追加] ダイアログボックスで、パラメーターを設定します。 OKをクリックします。
パラメーター
設定
レコードタイプ
ドメイン名を別のドメイン名に指定するには、CNAMEを選択します。
ホスト名
組み込みの権威ゾーンが
cloudflare.docker.com
の場合は、本番
を入力します。組み込みの権限ゾーンが
io
の場合は、docker
と入力します。
レコード値
ステップ1で取得したCNAMEを入力します。
TTL
キャッシュ時間。 値が小さいほど、レコードの変更はさまざまな場所でより速く有効になります。 値はデフォルトで1分です。
[ゾーン設定] タブで、[ゾーンの有効範囲] の横にあるアイコンをクリックします。
Alibaba Cloud VPCの [現在のアカウント] を選択し、[標準VPC] を選択して、対象のクラスターインスタンスがデプロイされているリージョンを選択します。 手順2で仮想プライベートネットワークを選択し、[OK] をクリックします。
設定が完了したら、ECSインスタンスにログインして、ノードが中国本土の外部にあるコンテナイメージをプルできるかどうかをテストできます。