ACK クラスターでリージョンをまたいで海外のソースからコンテナイメージをプルするには、Global Accelerator (GA) インスタンスを作成して、そのグローバルネットワークアクセラレーションサービスを使用できます。
前提条件
バージョン 1.24 以降の ACK マネージドクラスター Pro 版が作成されていること。詳細については、「ACK マネージドクラスターの作成」をご参照ください。クラスターをアップグレードするには、「クラスターを手動でアップグレードする」をご参照ください。
考慮事項
ネットワークアクセス行為を規制する必要があります。アクセスしているターゲット Web サイトに違法な情報が含まれている場合、正常にアクセスできない可能性があります。
課金
この機能を使用すると、ACK クラスターの関連コストに加えて、GA インスタンス料金も発生します。これらの料金には、インスタンス料金、パフォーマンスキャパシティーユニット (CU) 料金、およびネットワーク帯域幅料金が含まれます。詳細については、「プロダクトの課金」をご参照ください。
ステップ 1: 中規模 GA インスタンスの作成
中規模 GA インスタンスは、複数のアクセスリージョンと複数のソースサイトリージョンを持つ完全に接続されたネットワークを提供し、レイヤー 4 (TCP および UDP) とレイヤー 7 (HTTP および HTTPS) のプロトコルアクセラレーションをサポートします。GA インスタンスに対してネットワークアクセラレーションが必要な海外リージョンと、プルするイメージリポジトリのアクセスアドレス (docker.io など) を設定できます。
この例で作成された中規模 GA インスタンスのアクセラレーションネットワーク回線は、デフォルトでプレミアム帯域幅のクロスボーダーアクセラレーションに設定されています。
Global Accelerator コンソールにログインします。
インスタンス ページで、[従量課金の中規模インスタンスを作成] をクリックします。ページプロンプトに従って、さまざまな設定ウィザードページで設定を行い、ページ上の注意をよく読み、設定項目の確認と送信を完了します。
このステップでは、いくつかの主要な設定項目に基づいて、従量課金の中規模 GA インスタンスを作成する方法を紹介します。詳細については、「中規模 Global Accelerator インスタンスの作成と管理」をご参照ください。
構成
説明
基本インスタンス構成
課金方法
デフォルトは [従量課金] です。
従量課金の標準 GA インスタンスの料金には、GA インスタンス料金、CU 料金、および データ転送料金 が含まれます。
アクセラレーションエリアの設定
アクセラレーションエリア
ACK クラスターが配置されているリージョンをアクセラレーションエリアとして選択します。この例では、杭州と上海が選択されています。
説明GA がサポートするアクセラレーションエリアについては、「アクセラレーションエリアとリージョン」をご参照ください。
帯域幅の割り当て
帯域幅ピーク: アクセラレーションリージョンの帯域幅。この例では、両方とも 200 Mbps に設定されています。
IP プロトコル: GA にアクセスするための IP アドレスプロトコル。この例では、両方とも [IPv4] に設定されています。
リスナーの設定
プロトコル
リスナーのネットワーク転送プロトコルタイプ。この例では、TCP に設定されています。
ポート
リクエストを受信してエンドポイントに転送するために使用されるリスナーポートを指定します。ポート番号は [1~65499] の範囲内である必要があります。
各リスナーに最大 30 個のポートを指定できます。複数のポートはカンマ (,) で区切ります (例: 80,90,8080)。
この例では、
80,443に設定されています。エンドポイントグループの設定
リージョン
ネットワークアクセラレーションが必要な海外リージョン。この例では、米国 (バージニア) に設定されています。
エンドポイントの設定
エンドポイントは、クライアントがアクセスを要求するターゲットホストです。以下の例に従ってエンドポイントを設定できます。
バックエンドサービスタイプ: この例では、[カスタムドメイン名] を選択します。
バックエンドサービス: プルするイメージレジストリのアクセスドメイン名アドレス。この例では、
docker.ioに設定されています。重み: エンドポイントの重みを入力します。有効値は 0~255 です。Global Accelerator は、設定した重みに基づいてトラフィックをエンドポイントにルーティングします。
警告エンドポイントの重みが 0 に設定されている場合、Global Accelerator はそのエンドポイントへのトラフィックの配信を停止します。注意して進めてください。
この例では、
255に設定されています。
設定が完了したら、ページプロンプトに従って GA インスタンスの詳細ページに移動します。
GA インスタンスの詳細ページで、[アクセラレーションエリア] タブをクリックします。エリアリストの [高速化 IP] 列で、ACK クラスターが配置されているリージョンの高速化 IP 情報を記録し、ステップ 3: DNS レコードの設定 で使用します。
ステップ 2: GA インスタンスの転送ルールの設定
ターゲットイメージの他の関連ドメイン名アドレスの転送ルールを設定するには、リスナーに仮想エンドポイントグループを追加できます。
リスナーの仮想エンドポイントグループを作成した後、カスタム転送ルールを作成し、それを仮想エンドポイントグループに関連付けることができます。関連付け後、リスナーは転送条件を満たすアクセスリクエストを対応するデフォルトのエンドポイントグループまたは仮想エンドポイントグループに転送できるため、1 つの Global Accelerator インスタンスで複数のターゲットエンドポイントへのアクセスを高速化できます。詳細については、「転送ルールの追加と管理」をご参照ください。
GA インスタンスの詳細ページで、[リスナー] タブをクリックし、リスナーリストの ID と名前列にあるリスナー ID をクリックして、[リスナー] の詳細ページに移動します。
[エンドポイントグループ] タブをクリックし、[仮想エンドポイントグループを追加] をクリックします。ページプロンプトに従って設定を完了します。
[エンドポイントの設定] の設定例は次のとおりです。
バックエンドサービスタイプ: カスタムドメイン名を選択します。
バックエンドサービス: プルするイメージソースに関連するドメイン名アドレス (例:
production.cloudflare.docker.com)。重み:
255のままにします。
リスナー設定ページで、[転送ルール] タブをクリックし、[+新しいルールを挿入] をクリックします。ページプロンプトに従って新しい転送ルールを設定します。
主要な設定項目の設定例は次のとおりです。
ドメイン名: ドメイン名の一致ルールについては、[完全一致とワイルドカード] を選択します。転送ドメイン名は、プルするターゲットイメージソースに関連するドメイン名アドレスです (例:
production.cloudflare.docker.com)。転送アクション: 仮想エンドポイントグループへの転送を設定し、前のステップで追加した仮想エンドポイントグループを選択します。
ステップ 3: DNS レコードの設定
ACK クラスターノードの /etc/hosts ファイルに名前解決レコードを追加することで、ローカルドメイン名の名前解決を実装できます。また、内部 DNS 名前解決 (PrivateZone) のドメイン名解決レコードを設定することで、内部 DNS 名前解決を実装することもできます。これは設定が有効になった後に料金が発生します。課金情報については、「プロダクトの課金」をご参照ください。以下に 2 つの設定方法の比較を示します。
属性 | ローカルドメイン名解決レコード | Cloud DNS PrivateZone 名前解決レコード |
設定場所 | ターゲットノードの | Alibaba Cloud DNS PrivateZone で設定します。 |
適用範囲 | ノード設定に限定されます。Pod に適用するには、カスタム Hosts を設定する必要があります。 | VPC 内のすべてのノードとその内部の Pod に適用されます。 |
保守性 | ノード上で手動で設定および保守する必要があります。 | 一元管理され、保守と更新が容易です。 |
シナリオ | 特定ノードの問題を一時的に解決したり、小規模なデプロイメントに適しています。 | 大規模クラスターでの統一されたドメイン名解決のニーズに適しており、長期的な安定性を確保します。 |
更新の有効化速度 | 変更はすぐに有効になりますが、複数のノードで手動操作が必要です。 | TTL 設定、内部 DNS のリフレッシュに依存し、個々のノードでの手動更新は不要です。 |
キャッシュ時間 (TTL) | ローカルファイルで設定され、変更後すぐに有効になり、キャッシュ遅延の影響はありません。 | デフォルトは 1 分で、調整可能であり、名前解決レコードの更新が各場所で有効になるまでの時間に影響します。 |
ローカルドメイン名解決レコード
転送ルールを作成した後、ACK クラスターノードにドメイン名解決レコードを追加して、ノードが GA インスタンスの高速化 IP を介してプルするイメージのドメイン名アドレスにアクセスできるようにする必要があります。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、変更したいクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
ローカルでの名前解決を設定します。
既存のノード: ノードリストで、イメージをプルする必要があるノードを選択し、ページ下部の [一括操作] をクリックし、操作タイプとして [シェルコマンドを実行] を選択して、[OK] をクリックします。
新しいノード: 左側のナビゲーションウィンドウで、 を選択し、ターゲットノードプールの列にある アクション をクリックし、[編集] をクリックします。[詳細オプション (オプション)] で、[インスタンスのユーザーデータ] に次のシェルスクリプトの内容を設定し、[OK] をクリックします。
echo "47.XX.XX.5 production.cloudflare.docker.com" >> /etc/hosts echo "47.XX.XX.5 docker.io" >> /etc/hosts echo "47.XX.XX.5 registry-1.docker.io" >> /etc/hosts # Docker レジストリのドメイン名。 echo "47.XX.XX.5 auth.docker.io" >> /etc/hosts # Docker 認証サービスのドメイン名。
実行テンプレートとして ACS-ECS-BulkyRunCommand を選択します。これは、複数の ECS インスタンスでクラウドアシスタントコマンドをバッチで実行することをサポートします。残りの設定項目はデフォルトを使用し、次のステップに進むことができます。
ページプロンプトに従って、シェルスクリプトを入力し、対応するドメイン名解決レコード (A レコード) をノードの
/etc/hostsファイルに一括で追加します。IP アドレスを ステップ 2: GA インスタンスの転送ルールの設定 で取得した 2 つの高速化 IP として設定し、ドメイン URL をプルするターゲットイメージの関連ドメイン名アドレスとして設定します。パラメーター設定を完了し、このタスクを作成します。たとえば、
echoコマンドを使用してドメイン名解決を実装できます。
タスクが完了したら、ECS インスタンスにログインして、対応するドメイン名解決レコードがノードに存在することを確認し、ノードが海外のソースからコンテナイメージを正常にプルできるかどうかをテストできます。
Cloud DNS PrivateZone 名前解決レコード
転送ルールを作成した後、Cloud DNS PrivateZone を設定して対応するドメイン名解決レコードを追加し、ノードが GA インスタンスの高速化 IP を介してプルするイメージのドメイン名アドレスにアクセスできるようにする必要もあります。
ターゲット GA インスタンスの CNAME 高速化ドメイン名を取得します。
Global Accelerator コンソールにログインします。
左側のナビゲーションウィンドウで、[中規模インスタンス] を選択します。
インスタンス ページで、ターゲットの基本 Global Accelerator インスタンスを見つけ、インスタンス ID をクリックします。
[インスタンス情報] ページで、ターゲット GA インスタンスの CNAME 高速化ドメイン名を取得します。

ターゲット ACK クラスターノードが属する VPC (VPC) ID を取得します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、ターゲットクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、クラスター情報 をクリックします。
[クラスター情報] ページで、[基本情報] タブをクリックし、[ネットワーク] タブの下にある VPC ID を取得します。
Cloud DNS PrivateZone ドメイン名解決レコードを設定します
アクセスドメイン名の DNS の CNAME 名前解決レコードを GA インスタンスの高速化ドメイン名に設定します。
docker.ioとproduction.cloudflare.docker.comはトップレベルドメインが異なるため、ioとcloudflare.docker.comの 2 つの権限のあるドメイン名を作成する必要があります。次の例では、cloudflare.docker.com権限のあるドメイン名の作成方法を示します。Alibaba Cloud DNS コンソールにログインします。
左側のナビゲーションウィンドウで [内部ドメイン名解決] をクリックし、次に [ビルトイン権威] をクリックし、このタブの下にある [カスタムドメイン名] をクリックします。
[カスタムドメイン名] タブで、[ドメイン名 (ゾーン) を追加] をクリックし、[ビルトイン権威ドメイン名 (ゾーン)] 入力ボックスに
cloudflare.docker.comを入力し、[サブドメイン再帰解決プロキシ] を有効にし、[ドメインタイプ] に [ビルトイン権威アクセラレーションゾーン] を選択して、[OK] をクリックします。[カスタムドメイン名] タブで、
cloudflare.docker.com行の [アクション] をクリックし、[名前解決設定] をクリックします。次に、[名前解決レコード] タブで、[レコードを追加] をクリックします。[レコードを追加] ダイアログボックスで、[フォーム入力モード] を選択します。名前解決レコードのパラメーター設定が完了したら、[OK] をクリックして設定を完了します。
パラメーター
構成
レコードタイプ
CNAME を選択します。これはドメイン名を別のドメイン名にポイントします。
ホストレコード
ビルトイン権威ドメイン名 (ゾーン) が
cloudflare.docker.comの場合、productionを入力します。ビルトイン権威ドメイン名 (ゾーン) が
ioの場合、次のドメイン名を順番に入力します。docker:docker.ioは Docker のメインドメイン名です。registry-1.docker:registry-1.docker.ioは Docker レジストリのドメイン名です。auth.docker:auth.docker.ioは Docker 認証サービスのドメイン名です。
レコード値
ステップ 1 で取得した CNAME 高速化ドメイン名を入力します。
TTL
キャッシュ時間。値が小さいほど、レコードの変更が各場所で早く有効になります。デフォルトは 1 分です。
[カスタムドメイン名] タブで、
cloudflare.docker.com行の [アクション] をクリックし、[有効範囲設定] をクリックします。有効範囲設定のサイドバーで、[Alibaba Cloud VPC 内部ネットワークで有効] については、[現在のアカウント] を選択し、次に [標準 VPC] を選択し、ターゲットクラスターインスタンスが配置されているリージョンを選択します。ステップ 2 で取得した VPC ID を選択し (VPC 名にマウスを合わせると対応する VPC ID が表示されます)、[OK] をクリックします。
設定が完了したら、ECS インスタンスにログインして、ノードが海外のソースからコンテナイメージを正常にプルできるかどうかをテストできます。