説明
Alias IP を使用する VPC ネイティブクラスターは、サブネットのセカンダリ範囲から Pod アドレスを割り当て、VPC のルーティングと統合します。ルートベース方式に比べて、個別のルート管理を減らせます。現在の新しい GKE クラスターは VPC ネイティブがデフォルトであり、設定省略だけで Alias IP を使っていないとは判断できません。
想定される影響
アドレス容量やルーティングの計画が不適切だと、拡張や接続に問題が起こるおそれがあります。Alias IP 自体が Pod 間通信を遮断したり、クラスターへのアクセスを非公開にしたりするものではありません。
対処方法
新しいクラスターでは ip_allocation_policy.use_ip_aliases: yes と、適切な Pod、Service のアドレス範囲を使用してください。既存クラスターのネットワークモードは変更できないため、切り替えが必要なら新しいクラスターへのワークロード移行を計画してください。ファイアウォールとネットワークポリシーは別途設定してください。
例
ネットワーク設定の抜粋です。プロジェクトと JSON 認証情報のパスを指定し、使用する VPC、サブネット、十分なセカンダリ IP 範囲を準備してください。この例はそれらのリソースを作成しません。
変更前
- 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 でルートベース方式を要求します。省略時の実際の値はクラスターで確認してください。
変更後
- 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 のため、使用するサブネットとアドレス範囲を別途設定する必要があります。