GKE クラスターの Pod 間の通信を制御し、フロントエンド Pod がバックエンド Pod にのみ通信でき、それ以外の Pod 間通信を拒否したいと考えています。最も適切なアプローチはどれですか?
- A. Cloud Armor ポリシーを GKE クラスターに適用する
- B. Kubernetes NetworkPolicy でラベルベースの通信ルールを設定する
- C. GCE のファイアウォールルールでノード間の通信を制限する
- D. 各 Pod に異なる IAM サービスアカウントを紐付けて通信を制御する
解答と解説を見る
正解: B
Kubernetes NetworkPolicy を使うと、Pod のラベルセレクターを使って Pod 間の Ingress/Egress 通信を細かく制御できます。例えば、バックエンド Pod に NetworkPolicy を設定してフロントエンドラベルを持つ Pod からの通信のみを許可し、その他の Pod からの通信を拒否できます。GCE のファイアウォールルールはノードレベルの制御で、同一ノード上の Pod 間通信を制御することはできません。IAM サービスアカウントは Google Cloud API へのアクセス制御であり、Pod 間のネットワーク通信制御には使いません。Cloud Armor は HTTP(S) ロードバランサーへのトラフィック保護で、クラスター内部の Pod 間通信制御には適用できません。