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


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

このページは、クラウド リソースのプロビジョニングと構成、アプリとサービスのデプロイ、クラウド デプロイのネットワーキングの管理を行うオペレーター、クラウド アーキテクト、デベロッパー、ネットワーク エンジニアを対象としています。 Google Cloudのコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な 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 アドレス範囲を指定する必要はありません。

  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 アドレス範囲を自動的に割り当てます。

次のステップ