このページでは、Google Kubernetes Engine(GKE)クラスタで自動 IP アドレス管理(自動 IPAM)を有効にする方法について説明します。自動 IPAM を有効にすると、GKE はクラスタにサブネットを自動的に作成し、ノードと Pod の IP アドレスを管理します。Service の場合、GKE はデフォルトで GKE が管理する範囲から IP アドレスを割り当てます。
このページは、クラウド リソースのプロビジョニングと構成、アプリとサービスのデプロイ、クラウド デプロイのネットワーキングの管理を行うオペレーター、クラウド アーキテクト、デベロッパー、ネットワーク エンジニアを対象としています。 Trusted Cloud by S3NSのコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な GKE Enterprise ユーザーロールとタスクをご覧ください。
概要
従来、GKE クラスタを作成するときは、ノード IP アドレスのプライマリ範囲と Pod と Service の IP アドレスの 2 つのセカンダリ範囲を使用して、サブネットを手動で構成します。Pod IP アドレス範囲を手動で構成する場合、設定する IP アドレス範囲の正確なサイズを把握することは困難です。十分な IP アドレスを割り当てないと、クラスタのスケーリングと新しい Pod の作成が制限される可能性があります。逆に、IP アドレスを過剰に割り当てると、他のリソースが使用できる貴重な IP アドレス空間が無駄になる可能性があります。
GKE 自動 IPAM はこの問題を解決し、次の利点があります。
複雑さの軽減: 自動 IPAM は、サブネットを自動的に作成し、そのサブネットに適切な IP アドレス範囲を割り当てることで、IP アドレス割り当ての複雑さを軽減します。
IP アドレス範囲の自動調整: 自動 IPAM を有効にすると、GKE はノードと Pod の IP アドレス範囲を小さくして開始します。クラスタのスケールアップまたはスケールダウンに応じて、GKE は、クラスタレベルで定義された重複しない複数の IP アドレス範囲を使用して、追加の IP アドレス範囲を動的に追加または削除します。この自動化されたアプローチにより、GKE クラスタのライフサイクル全体で IP アドレスの健全性と効率が最適化されます。
IP アドレス管理の簡素化: 自動 IPAM により、GKE クラスタの IP アドレス割り振りを綿密に計画して管理する必要がなくなります。
自動 IPAM は、既存のノードプールがスケールアップまたはスケールダウンされたときに、これらのノードプールにすでに割り当てられている IP アドレス範囲を追加または削除しません。クラスタ内の IP アドレス空間が不足している新しいノードプールを作成すると、自動 IPAM によって追加のサブネットと IP アドレス範囲が作成されます。
自動 IPAM は、新しいクラスタを作成するときに有効にできます。既存のクラスタで自動 IPAM を有効または無効にすることもできます。
始める前に
作業を始める前に、次のタスクが完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、
gcloud components update
を実行して最新のバージョンを取得する。
制限事項
GKE クラスタで自動 IPAM を使用する場合は、次の制限事項に注意してください。
- クラスタは VPC ネイティブ クラスタである必要があります。ルートベース クラスタは、自動 IPAM をサポートしていません。
- 共有 VPC を使用するクラスタでは、自動 IPAM を使用できません。
- 自動 IPAM は、マルチネットワーク機能を備えたクラスタで有効にできます。ただし、複数のネットワーク インターフェースを使用して新しいノードプールを作成する場合、自動 IPAM は機能しません。自動 IPAM を使用するには、ノードプールのマルチネットワーキング機能を無効にする必要があります。
- クラスタに IPv4/IPv6 デュアルスタック ネットワーキングがある場合、自動 IPAM はクラスタ内の IPv4 アドレスのみを割り振って管理します。
- 自動 IPAM を有効にすると、デフォルトのノードプールを含むすべてのノードプールのデフォルトの最大ノードサイズは、/24 の CIDR ブロックを持つ 252 ノードになります。
- デフォルトでは、GKE は自動 IPAM を使用するクラスタでノードあたり最大 48 個の Pod を許可します。
- 自動 IPAM を使用するクラスタでは、Pod CIDR 範囲をオーバープロビジョニングできません。
自動 IPAM を使用してクラスタを作成する
新しいクラスタを作成して自動 IPAM を有効にすると、GKE で新しいサブネットを作成するか、使用する既存のサブネットを指定できます。既存のサブネットを指定する場合は、クラスタで使用可能なセカンダリ IP アドレス範囲が十分にあることを確認してください。クラスタを作成して自動 IPAM を有効にするときに、IP アドレス範囲を指定する必要はありません。
自動 IPAM を使用してクラスタを作成し、GKE に新しいサブネットを作成させるには、次のコマンドを実行します。
gcloud container clusters create CLUSTER_NAME \ --enable-auto-ipam \
CLUSTER_NAME
は、使用するクラスタの名前に置き換えます。GKE は次の処理を行います。
- クラスタの新しいサブネットを作成します。
- クラスタの初期 IP アドレス割り当てを設定し、新しいノードと Pod の IP アドレスを新しいノードプールに自動的に割り当てます。
- サブネットとセカンダリ IP アドレス範囲の使用状況をモニタリングします。
自動 IPAM を使用してクラスタを作成し、独自のサブネットを指定するには、既存のサブネットにクラスタを作成するの手順に沿って操作し、コマンドで
--enable-auto-ipam
フラグを使用します。次に例を示します。gcloud container clusters create CLUSTER_NAME \ --enable-auto-ipam \ --subnetwork=SUBNET_NAME \
次の値を置き換えます。
CLUSTER_NAME
: クラスタの名前。SUBNET_NAME
: 既存のサブネットの名前。ノードにはサブネットのプライマリ IP アドレス範囲が使用されます。サブネットは、クラスタによって使用されるリージョンと同じリージョンに存在する必要があります。
既存のクラスタを更新する
既存のクラスタで自動 IPAM を有効または無効にできます。
自動 IPAM を有効にする
既存のクラスタで自動 IPAM を有効にするには、次のコマンドを実行します。
gcloud container clusters update CLUSTER_NAME \
--enable-auto-ipam
このコマンドを実行すると、十分な IP アドレス空間がない新しいノードプールを作成するときに、GKE はクラスタに新しい IP アドレス範囲を作成して管理します。
自動 IPAM を無効にする
既存のクラスタで自動 IPAM を無効にするには、次のコマンドを実行します。
gcloud container clusters update CLUSTER_NAME \
--disable-auto-ipam
CLUSTER_NAME
は、使用するクラスタの名前に置き換えます。
クラスタで自動 IPAM を無効にした後:
- 自動 IPAM で作成されたサブネットとセカンダリ IP アドレス範囲の所有権は、GKE が保持します。これらのリソースは、GKE クラスタを削除すると削除されます。
- 新しいノードプールを作成すると、GKE はデフォルトのサブネットと関連付けられたセカンダリ IP アドレス範囲を自動的に割り当てます。
次のステップ
- GKE での IP アドレスの割り振りについて学習する。
- VPC ネイティブ クラスタを作成する方法を学習する。