ポッドは、ECS (Elastic Compute Service) インスタンス、SLB (Server Load Balancer) インスタンス、OSS (Object Storage Service) バケットなど、クライアントとして仮想プライベートクラウド (VPC) にデプロイされたリソースにアクセスできます。 設定後にインターネットにアクセスすることもできます。 このトピックでは、外部ネットワークにアクセスするようにポッドを設定する際の注意事項について説明します。
ポッドの設定に関する注意事項
ドメイン名解決の設定
ポッドが外部ネットワークにアクセスすると、ポッドはクラスターが提供するドメイン名解決機能を使用して宛先アドレスを解決します。 次に、ポッド側のネットワークポリシーを使用して宛先にアクセスします。 ドメイン名を解決できない場合は、DNS解決エラーをトラブルシューティングする必要があります。 詳細については、「DNSトラブルシューティング」をご参照ください。
ネットワークポリシーの設定
ポッドが属する名前空間に対してネットワークポリシーが設定されているかどうか、およびネットワークポリシーがポッドが宛先にアクセスすることを禁止しているかどうかを確認します。 上記のネットワークポリシーが存在する場合は、ポリシーを変更します。 詳細については、「ACKクラスターでのネットワークポリシーの使用」をご参照ください。
セキュリティグループの設定
クラスターのセキュリティグループと、ポッドをホストするECSインスタンスのセキュリティグループが、ポッドが宛先にアクセスすることを禁止しているかどうかを確認します。 セキュリティグループが次のルールを満たしていることを確認します。
送信方向の宛先アドレスとポートにポッドがアクセスできるように、セキュリティグループルールが作成されます。
送信方向の宛先アドレスとポートへのポッドのアクセスを禁止するセキュリティグループルールは作成されません。
クラスターのセキュリティグループを管理する方法の詳細については、「クラスターのセキュリティグループの構成」をご参照ください。
宛先を設定するための注意事項
クラスター内のポッドは、ECSインスタンスやSLBインスタンスなどの既存のリソース、ApsaraDB RDSやOSSなどのクラウドサービス、クラスターによって公開されているLoadBalancerサービスなど、インターネットまたはVPCにデプロイされているリソースにアクセスできます。 ポッドの構成は、宛先によって異なります。
インターネットへのアクセス
IPv4シングルスタッククラスターでは、ポッドはIPv4アドレスのみを使用し、パブリックIPv4アドレスのみにアクセスできます。 IPv6アドレスにアクセスできません。
クラスターでデュアルスタックを有効にすると、ポッドはIPv4アドレスとIPv6アドレスの両方を使用します。 ポッドで使用されるIPv4アドレスはプライベートIPアドレスですが、IPv6アドレスはパブリックアドレスです。
ポッドの構成は、ポッドがアクセスする必要があるIPアドレスによって異なります。
IPv4シングルスタッククラスタ:
ポッドがインターネットにアクセスできるようにするには、elastic IPアドレス (EIP) をポッドに関連付けるか、NATゲートウェイを使用する必要があります。 次の表に、パブリックIPv4アドレスにアクセスするようにポッドを設定するために使用できる方法を示します。
インターネットアクセス方式
Terwayネットワークプラグイン
Flannelネットワークプラグイン
NATゲートウェイの使用
SNATルールには、ポッドのSNATエントリを含める必要があります。 NATゲートウェイを設定する方法の詳細については、「既存のACKクラスターを有効にしてインターネットにアクセスする」をご参照ください。
外部ネットワークへのアクセスに使用されるパブリックIPアドレスは、NATゲートウェイに関連付けられたEIPです。
SNATルールには、ポッドが存在するノードのSNATエントリを含める必要があります。 NATゲートウェイを設定する方法の詳細については、「既存のACKクラスターを有効にしてインターネットにアクセスする」をご参照ください。
外部ネットワークへのアクセスに使用されるパブリックIPアドレスは、NATゲートウェイに関連付けられたEIPです。
EIPとの関連付け
EIPをポッドに関連付けることができます。 詳細については、「専用EIPとポッドの関連付け」をご参照ください。
外部ネットワークへのアクセスに使用されるパブリックIPアドレスは、ポッドに関連付けられたEIPです。
ポッドは、ノードに関連付けられたEIPを使用してのみインターネットにアクセスできます。 詳細については、「EIPの関連付けまたは関連付けの解除」をご参照ください。
外部ネットワークへのアクセスに使用されるパブリックIPアドレスは、ノードに関連付けられたEIPです。
移動方法
注意
外部ネットワークへのアクセスに使用されるパブリックIPアドレス
NATゲートウェイの使用
Terwayを使用するクラスターの場合: SNATルールには、ポッドのSNATエントリを含める必要があります。
Flannelを使用するクラスターの場合: SNATルールには、ポッドが配置されているノードのSNATエントリを含める必要があります。
NATゲートウェイを設定するには、「既存のクラスターのパブリックネットワークアクセスの有効化」をご参照ください。
NATゲートウェイに関連付けられているEIP。
ポッドのノードに関連付けられているEIPを使用する (Flannelが使用されている場合のみ)
ポッドをホストするノード (ECSインスタンス) にEIPを関連付けます。 詳細については、「EIPの関連付けまたは関連付けの解除」をご参照ください。
ノードに関連付けられているEIP。
ポッドに関連付けられているEIPを使用する (Terwayが使用されている場合のみ)
EIPをポッドに関連付けます。 詳細については、「独立したパブリックEIPをポッドにマウントする」をご参照ください。
ポッドに関連付けられているEIP。
デュアルスタッククラスタ:
デュアルスタッククラスターでは、ポッドはパブリックIPv6アドレスを使用しますが、デフォルトではパブリック帯域幅はIPv6アドレスに割り当てられません。 パブリック帯域幅をポッドに割り当てる方法の詳細については、「IPv6インターネット帯域幅をポッドに割り当てる」をご参照ください。
VPC内のリソースへのアクセス
ポッドがクラスター内の他のリソース (ECS、RDS、OSSなど) にアクセスする場合、宛先には、セキュリティグループ、アクセス制御リスト (ACL) ルール、ホワイトリストメカニズムなど、アクセスのソースをブロックするいくつかのアクセス制御ルールがある場合があります。 ポッドで使用される送信元IPアドレスがブロックされている場合は、アクセス制御ルールでブロックを解除する必要があります。
Terwayモードでは、ポッドIPアドレスが使用されます。 ポッドIPアドレスからのアクセスを受け入れるには、VPC内の他のリソースで使用されるセキュリティグループルール、ACLルール、およびホワイトリストを変更する必要があります。
Flannelモードでは、ポッドが存在するノードのIPアドレスが使用されます。 ポッドが存在するECSのIPアドレスからのアクセスを受け入れるには、VPC内の他のリソースで使用されるセキュリティグループルール、ACLルール、およびホワイトリストを変更する必要があります。
ack-kubernetes-webhook-injectorを使用して、ホワイトリストを自動的に設定することもできます。 詳細については、「Alibaba Cloudサービスのポッドホワイトリストの動的設定」をご参照ください。
クラスターが使用するSLBインスタンスへのアクセス
ポッドがクラスター内のサービスによって使用されるSLBインスタンスにアクセスすると、トラフィックがバックエンドポッドに直接アクセスできるようにルーティングされるメカニズムが使用され、実際のトラフィックはクラスターから離れません。 Terway 1.1.0以前のバージョンでは、IPVLAN + eBPFアクセラレーションモードを使用するクラスターはこのメカニズムをサポートせず、SLBインスタンスのIPアドレスをアクセスに使用します。 Terway 1.2.0以降のバージョンでは、新しく作成されたクラスターはこの機能をサポートしますが、既存のクラスターはサポートしません。 このメカニズムの詳細については、Terway IPVLANモードでクラスター内の負荷分散を有効にするにはどうすればよいですか?.