ACS クラスター内の Pod は、Elastic Compute Service (ECS) インスタンス、ApsaraDB RDS インスタンス、OSS バケット、SLB インスタンスなど、Virtual Private Cloud (VPC) 内のリソースやインターネットに接続できます。アウトバウンド接続性は、送信元(Pod 側)と送信先の両方に依存します。Pod が外部ネットワークにアクセスできるようにするには、両側の構成を適切に設定してください。
送信元(Pod 側)の構成
Pod が外部アドレスにトラフィックを送信する際、リクエストはクラスターの DNS リゾルバーを経由し、Pod の名前空間に適用されているネットワークポリシーの影響を受け、さらに Pod およびクラスターにアタッチされたセキュリティグループによってチェックされます。送信先の調査を始める前に、これら 3 つの要素をすべて確認してください。
DNS 解決
Pod は、クラスターに組み込まれた Domain Name System (DNS) リゾルバーを使用して、宛先のホスト名を IP アドレスに変換します。DNS 解決に失敗した場合は、DNS 解決エラーをトラブルシューティングしてください。
ネットワークポリシー
Pod が実行されている名前空間にネットワークポリシーが適用されていないか、またそのポリシーが宛先 IP アドレスへのアウトバウンドトラフィックをブロックしていないかを確認してください。ブロッキングポリシーが存在する場合は、必要なトラフィックを許可するようにポリシーを変更します。詳細については、「ACS クラスターでのネットワークポリシーの使用」をご参照ください。
セキュリティグループ
クラスターおよび Pod にアタッチされたセキュリティグループを確認してください。アウトバウンドトラフィックが成功するためには、セキュリティグループルールが次の両方の条件を満たしている必要があります。
-
アウトバウンドルールにより、Pod が宛先 IP アドレスおよびポートに到達できるよう許可されていること。
-
宛先 IP アドレスおよびポートへのアクセスを明示的に拒否するアウトバウンドルールが存在しないこと。
送信先の構成
送信先で必要な構成は、Pod がアクセスしようとしているリソースの種類によって異なります。
インターネットへのアクセス
Pod からインターネットにアクセスするには、次の 2 つの方法があります。
| メソッド | 使用タイミング | パブリック IP アドレス | 参考ドキュメント |
|---|---|---|---|
| インターネット NAT ゲートウェイを使用 | 複数の Pod | インターネット NAT ゲートウェイに関連付けられた Elastic IP Address (EIP) | ACS クラスターのインターネットアクセスを有効化 |
| Pod に EIP を関連付け | 単一の Pod | Pod に関連付けられた EIP | Pod 向けの独立した EIP のマウント |
同一 VPC 内のクラウドリソースへのアクセス
ECS インスタンス、ApsaraDB RDS インスタンス、OSS バケットなどの送信先リソースには、Pod の IP アドレスからのトラフィックをブロックするアクセスの制御ルール(セキュリティグループ、ネットワークアクセス制御リスト (ACL)、ホワイトリストなど)が設定されている場合があります。Pod がクラスターの VPC 内のリソースに到達できない場合は、送信先リソースのアクセスの制御構成を確認し、Pod の IP アドレスからのインバウンドトラフィックを許可するルールを追加してください。
LoadBalancer サービスへのアクセス
クラスター内から発信されるトラフィックは、そのクラスターの LoadBalancer サービスに到達できません(サービスがパブリックアドレスまたはプライベートアドレスを使用するかどうかに関係なく)。この問題を解決するには、対象のサービスの外部トラフィックポリシーを変更します。詳細については、「LoadBalancer サービスによって公開された SLB インスタンスの IP アドレスにクラスターがアクセスできない場合の対処方法」をご参照ください。