PCNE#128(implement-vpc)

PCNE#128(implement-vpc)
GKE クラスタ用に Alias IP を割り当てるサブネットを Terraform で作成します。Pod 用と Service 用にそれぞれ独立した範囲を確保したい場合、サブネット定義に必要な要素はどれですか。
ディスカッション 0

正解:C

正解の根拠

GKE の VPC ネイティブクラスタでは、Node IP がサブネットのプライマリ範囲から、Pod IP と Service IP がそれぞれセカンダリ範囲から払い出されます。Terraform の google_compute_subnetwork ではプライマリ範囲 (ip_cidr_range) を 1 つ定義し、Pod / Service 用に secondary_ip_range ブロックを 2 つ追加する構成が標準的です。

Terraform 構成例

resource "google_compute_subnetwork" "gke" {
  name          = "gke-subnet"
  network       = google_compute_network.vpc.id
  region        = "asia-northeast1"
  ip_cidr_range = "10.10.0.0/20"

  secondary_ip_range {
    range_name    = "pods"
    ip_cidr_range = "10.20.0.0/14"
  }
  secondary_ip_range {
    range_name    = "services"
    ip_cidr_range = "10.24.0.0/20"
  }
}

範囲ごとの役割

範囲用途サイズ目安
プライマリNode の IP/20 程度
secondary (pods)Pod の IP/14 など広め
secondary (services)Service の ClusterIP/20 程度

不正解の理由

  • A: プライマリ範囲のみでは Pod / Service 用の独立した範囲が確保できず、Alias IP の前提となるセカンダリ範囲が不足します。
  • B: 1 サブネットに 2 つのプライマリ範囲は定義できず、プライマリは常に 1 つで他はセカンダリとして扱う設計になっています。
  • D: プライマリ範囲を省略するとサブネット自体が成立せず、Node IP の払い出し元が無くなるため作成に失敗します。

参考:Alias IP 範囲


コメント

コメント

コメントする

目次