GKE の VPC ネイティブネットワーク設定の確認

GKE の VPC ネイティブネットワークと Pod、Service のアドレス計画を確認します。

説明

Alias IP を使用する VPC ネイティブクラスターは、サブネットのセカンダリ範囲から Pod アドレスを割り当て、VPC のルーティングと統合します。ルートベース方式に比べて、個別のルート管理を減らせます。現在の新しい GKE クラスターは VPC ネイティブがデフォルトであり、設定省略だけで Alias IP を使っていないとは判断できません。

想定される影響

アドレス容量やルーティングの計画が不適切だと、拡張や接続に問題が起こるおそれがあります。Alias IP 自体が Pod 間通信を遮断したり、クラスターへのアクセスを非公開にしたりするものではありません。

対処方法

新しいクラスターでは ip_allocation_policy.use_ip_aliases: yes と、適切な Pod、Service のアドレス範囲を使用してください。既存クラスターのネットワークモードは変更できないため、切り替えが必要なら新しいクラスターへのワークロード移行を計画してください。ファイアウォールとネットワークポリシーは別途設定してください。

例

ネットワーク設定の抜粋です。プロジェクトと JSON 認証情報のパスを指定し、使用する VPC、サブネット、十分なセカンダリ IP 範囲を準備してください。この例はそれらのリソースを作成しません。

変更前

yaml
- name: create a cluster1
  google.cloud.gcp_container_cluster:
    name: my-cluster1
    initial_node_count: 2
    node_config:
      machine_type: n1-standard-4
      disk_size_gb: 500
    location: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: serviceaccount
    service_account_file: "{{ gcp_service_account_file }}"
    state: present

- name: create a cluster3
  google.cloud.gcp_container_cluster:
    name: my-cluster3
    initial_node_count: 2
    node_config:
      machine_type: n1-standard-4
      disk_size_gb: 500
    location: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: serviceaccount
    service_account_file: "{{ gcp_service_account_file }}"
    state: present
    ip_allocation_policy:
      create_subnetwork: no
      use_ip_aliases: no

最初のタスクは割り当てポリシーを省略し、2 番目は use_ip_aliases: no でルートベース方式を要求します。省略時の実際の値はクラスターで確認してください。

変更後

yaml
- name: create a cluster
  google.cloud.gcp_container_cluster:
    name: my-cluster
    initial_node_count: 2
    node_config:
      machine_type: n1-standard-4
      disk_size_gb: 500
    location: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: serviceaccount
    service_account_file: "{{ gcp_service_account_file }}"
    state: present
    ip_allocation_policy:
      create_subnetwork: no
      use_ip_aliases: yes

VPC ネイティブ方式を明示しています。create_subnetwork: no のため、使用するサブネットとアドレス範囲を別途設定する必要があります。

参考資料