模擬問題集 › GCP-PCNE › 練習問題 3

GCP-PCNE 練習問題 3|マネージド ネットワーク サービスの構成

Professional Cloud Network Engineer・無料公開(全 200 問中 15 問を無料公開中)

問題
Google Kubernetes Engine(GKE)上のコンテナ化されたアプリケーション環境を管理しています。メインのエンドポイント用に名前付きポート http-api を定義した Kubernetes Service マニフェストを使って、マイクロサービスをデプロイしました。現在、このマイクロサービスを公開するために外部 HTTP(S) ロードバランサを構成しています。構成が実際のポート番号に依存せず、ベスト プラクティスに従うようにする必要があります。どうすればよいですか。

選択肢と解説

  • 1
    GKE ノードのインスタンス グループをバックエンドとして使用するバックエンド サービスを作成し、そのバックエンド サービスで名前付きポート http-api を構成する。
  • ✓
    Kubernetes Service 用に自動的に作成された GCE_VM_IP_PORT ネットワーク エンドポイント グループ(NEG)をバックエンド構成で参照し、トラフィックに名前付きポート http-api を指定する。
  • 3
    Kubernetes Service マニフェストにアノテーションを追加して GCE_VM_IP ネットワーク エンドポイント グループ(NEG)を作成し、バックエンド サービスがこの NEG を使用するように構成する。
  • 4
    Kubernetes Ingress マニフェストにアノテーションを追加して http-api のポート番号を直接指定し、バックエンド サービスがこのハードコードされたポート番号を使用するように構成する。

解説

【正解】B

【0からの解説】
①前提知識
・ネットワーク エンドポイント グループ(NEG)は、ロードバランサのバックエンドとして「IP アドレス(+ポート)」の集合を登録する仕組みです。ゾーン NEG には、エンドポイントが「IP:ポート」の GCE_VM_IP_PORT 型と、「IP のみ」の GCE_VM_IP 型があります。
・GKE のコンテナ ネイティブ負荷分散では、GCE_VM_IP_PORT 型の NEG に Pod の IP アドレスとポートを直接登録します。ロードバランサからノードを経由せず Pod に直接届くため、余分なホップ(kube-proxy による再転送)がなく、ヘルスチェックも Pod 単位で正確になります。VPC ネイティブ クラスタでは Ingress/Gateway が NEG を既定で使い、Service の cloud.google.com/neg アノテーションによって NEG が自動作成・自動更新されます。
・Kubernetes の Service では、targetPort に数値ではなく名前付きポート(例: http-api)を指定でき、実際のコンテナ ポート番号は Pod 側の定義から解決されます。NEG のエンドポイントは、この名前付きポートが解決された Pod の IP:ポートとして GKE コントローラが自動で登録・更新します。

②要件と制約語の整理
・外部 HTTP(S) ロードバランサ(現在の外部アプリケーション ロードバランサ)で公開する
・構成を実際のポート番号から独立させる(名前付きポートを使う)
・ベスト プラクティスに従う

③正解の理由
Service 用に自動作成された GCE_VM_IP_PORT NEG をバックエンドとして参照し、名前付きポート http-api を指定すれば、ポート番号が変わっても GKE が NEG のエンドポイントを自動で更新するため、ロードバランサ側の構成を変える必要がありません。Google が推奨するコンテナ ネイティブ負荷分散の形でもあります。

【誤りの選択肢】
A:インスタンス グループ(ノード)をバックエンドにする方式は、NodePort 経由でノードに届いた後に kube-proxy が Pod に再転送するため、余分なホップと不正確なヘルスチェックが生じます。インスタンス グループの名前付きポートはノード側のポート番号(NodePort)への対応付けであり、Kubernetes Service の名前付きポートとは別物です。コンテナ ネイティブ負荷分散が推奨される現在では、ベスト プラクティスに劣ります。
C:GCE_VM_IP 型の NEG はポートを持たない「IP のみ」のエンドポイントで、内部パススルー ネットワーク ロードバランサ(GKE のサブセット化)などのレイヤ 4 用です。外部 HTTP(S) ロードバランサのバックエンドには使えず、名前付きポートによる指定もできません。
D:ポート番号を直接ハードコードしており、「構成が実際のポート番号に依存しない」という要件に真っ向から反します。ポートが変わるたびにマニフェストとバックエンドの修正が必要になります。

【参考】
スタンドアロン NEG によるコンテナ ネイティブのロード バランシング | GKE networking
ゾーン ネットワーク エンドポイント グループの概要 | Cloud Load Balancing
アプリケーション ロードバランサ用の GKE Ingress | GKE networking
← 練習問題 2練習問題 4 →
GCP-PCNE の模擬問題集は全 200 問

本番形式の練習テスト 4 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

GCP-PCNE の模試を受ける料金プランを見る

GCP-PCNE の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15