ソースネットワークアドレス変換 (SNAT) は、パブリック IP アドレスを持たない Virtual Private Cloud (VPC) 内のリソースがインターネットにアクセスできるようにするプロキシサービスです。ACS クラスターの作成時に SNAT を設定しなかった場合、Pod のインターネットアクセスを有効にするには、手動で SNAT を設定する必要があります。
背景情報
インターネット NAT Gateway は、SNAT と宛先ネットワークアドレス変換 (DNAT) の両方の機能を提供するネットワークアドレス変換サービスです。詳細については、「インターネット NAT Gateway」および「NAT Gateway の課金」をご参照ください。
クラスター内の Pod が、パブリックレジストリからイメージをプルする場合など、インターネットアクセスを必要とする場合は、クラスターの VPC にインターネット NAT Gateway を作成し、SNAT エントリを設定します。これにより、クラスター内のすべての Pod がインターネットにアクセスできるようになります。
特定の Pod のみがインターネットアクセスを必要とする場合は、その Pod に Elastic IP アドレス (EIP) を直接バインドできます。手順については、「アノテーションを使用して Pod に EIP をバインドする」をご参照ください。
操作手順
既存のクラスターに SNAT を設定し、インターネットアクセスを有効にするには、次の手順に従います。
ACS クラスターを作成する際、SNAT の設定 で VPC 用の SNAT を自動的に設定する を選択できます。これにより、システムがクラスターの SNAT を自動的に設定します。
-
NAT Gateway コンソールにログインします。
-
インターネット NAT Gateway を作成します。
-
インターネット NAT ゲートウェイの作成 をクリックします。
-
NAT Gateway のパラメーターを設定し、今すぐ購入 をクリックして、購入を完了します。
次の表に、主要なパラメーターを示します。詳細については、「インターネット NAT Gateway」をご参照ください。
パラメーター
説明
リージョン 、 VPC
ご利用のクラスターと一致するリージョンと VPC を選択します。
アクセスモード
ネットワークアーキテクチャとセキュリティ要件に基づいてモードを選択します。このトピックでは、後で設定 を例として使用します。
説明VPC 内のすべてのリソースにインターネットアクセスを許可したくない場合は、後で設定 を選択します。たとえば、VPC にクラスターで使用されていない vSwitch が含まれている場合に推奨されます。
-
一元管理 :このモードを選択した場合、NAT Gateway にバインドする EIP を指定する必要があります。システムは自動的に VPC レベルの SNAT エントリを作成します。
-
後で設定 :このモードを選択した場合、手動で EIP をバインドし、SNAT エントリを作成する必要があります。
-
-
-
NAT Gateway に EIP をバインドします。
NAT Gateway の作成時に 一元管理 を選択した場合、EIP はすでにバインドされています。このステップはスキップできます。
-
パブリック NAT ゲートウェイ ページで、対象の NAT Gateway を見つけます。次に、[操作] 列でアイコンをクリックし、EIP に関連付ける を選択します。
-
ダイアログボックスで EIP を設定し、OK をクリックします。
-
-
SNAT エントリを作成します。
NAT Gateway の作成時に 一元管理 を選択した場合、VPC レベルの SNAT エントリはすでに存在します。このステップはスキップできます。
-
パブリック NAT ゲートウェイ ページで、対象の NAT Gateway の ID をクリックします。
-
SNAT の管理 タブをクリックし、SNAT エントリの作成 をクリックします。
-
SNAT エントリを設定し、OK をクリックします。
次の表に、主要なパラメーターを示します。詳細については、「SNAT エントリの作成と管理」をご参照ください。
パラメーター
説明
SNAT エントリの粒度
ネットワークアーキテクチャとセキュリティ要件に基づいて粒度を選択します。vSwitch 粒度 を選択することを推奨します。
vSwitch の選択
SNAT エントリの粒度 を vSwitch 粒度 に設定した場合は、クラスターが使用する vSwitch を選択します。
vSwitch ID は、ACS クラスターの クラスター情報 ページの クラスターリソース タブで確認できます。
Elastic IP Address の選択
NAT Gateway にバインドされている EIP を選択します。
-
-
NAT Gateway の設定を確認します。
-
NAT Gateway とクラスターが同じ VPC 内にあり、EIP が NAT Gateway にバインドされていることを確認します。
-
SNAT エントリをチェックして、クラスターが使用する vSwitch にバインドされていることを確認します。
SNAT エントリリストの [ステータス] 列に [利用可能] と表示されていれば、vSwitch は正常にバインドされています。
-
検証
-
方法 1:パブリックレジストリのイメージを使用する Pod を作成します。イメージが正常にプルされ、Pod が正常に作成されたことを確認します。
test-podPod の [イベント] タブに、Successfully pulled image "centos:7" in 16.902sのようなメッセージを含む Normal イベントが表示されていれば、イメージはパブリックレジストリから正常にプルされています。 -
方法 2:クラスター内の Pod から
pingコマンドを実行して、パブリックインターネットアドレスにアクセスします。アドレスが到達可能で、パケット損失がないことを確認します。例:
:~$ kubectl get pod NAME READY STATUS RESTARTS AGE test-pod 1/1 Running 0 24m :~$ kubectl exec -it test-pod -- bash [root@test-pod /]# ping aliyun.com -c 2 PING aliyun.com (140.205.60.46) 56(84) bytes of data. 64 bytes from 140.205.60.46 (140.205.60.46): icmp_seq=1 ttl=95 time=4.99 ms 64 bytes from 140.205.60.46 (140.205.60.46): icmp_seq=2 ttl=95 time=4.81 ms --- aliyun.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 4.813/4.905/4.997/0.092 ms