自動 IP アドレス管理を使用する

このページでは、Google Kubernetes Engine(GKE)クラスタで自動 IP アドレス管理(自動 IPAM)を有効にする方法について説明します。自動 IPAM を有効にすると、GKE は自動的にクラスタにサブネットを作成し、ノードと Pod の IP アドレスを管理します。Service の場合、GKE はデフォルトで GKE が管理する範囲から IP アドレスを割り当てます。

このページは、クラウド リソースのプロビジョニングと構成、アプリとサービスのデプロイ、クラウド デプロイのネットワーキングの管理を行うオペレーター、クラウド アーキテクト、デベロッパー、ネットワーク エンジニアを対象としています。 Google Cloudのコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な GKE ユーザーのロールとタスクをご覧ください。

概要

従来、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 アドレス範囲を指定する必要はありません。

  1. 自動 IPAM を使用するクラスタを作成し、GKE に新しいサブネットを作成させるには、次のコマンドを実行します。

    gcloud container clusters create CLUSTER_NAME \
        --enable-auto-ipam \
    

    CLUSTER_NAME は、使用するクラスタの名前に置き換えます。

    GKE は次の処理を行います。

    • クラスタの新しいサブネットを作成します。
    • クラスタの初期 IP アドレス割り振りを設定し、新しいノードと Pod の IP アドレスを新しいノードプールに自動的に割り当てます。
    • サブネットとセカンダリ IP アドレス範囲の使用状況をモニタリングします。
  2. 自動 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 アドレス範囲を自動的に割り当てます。

次のステップ