このドキュメントでは、Google Kubernetes Engine(GKE)でシングルスタック IPv6 クラスタを作成、構成、管理する方法について説明します。
IPv6 専用ネットワーキング環境でコンテナ化されたワークロードを実行すると、プライベート IPv4 アドレス空間(RFC 1918)の枯渇を回避できます。シングルスタック IPv6 クラスタをデプロイする場合は、内部リソースと外部リソースへの上り(内向き)接続と下り(外向き)接続を維持しながら、Pod、ノード、Service に IPv6 アドレスのみを割り当てます。
概要
ワークロードがスケールし、クラスタの密度が高くなると、プライベート IPv4 アドレス空間がすぐに枯渇する可能性があります。IPv4 専用クラスタとデュアルスタック クラスタでは、すべての Pod に IPv4 アドレスが必要です。これにより、VPC ネットワーク全体に CIDR ブロックを割り振ることが、スケーリングの大きなボトルネックになる可能性があります。
GKE シングルスタック IPv6 クラスタでは、クラスタのデータプレーン全体に IPv6 アドレスのみを割り当て、IPv4 アドレスの制約を完全に排除します。ワーカーノードはシングルスタック IPv6 Compute Engine VM インスタンスで実行され、Pod と Service は IPv6 接続を介して通信します。
IP アドレスの割り振り(IPAM)
シングルスタック IPv6 クラスタは、次のプレフィックス サイズを使用して、サブネットワーク、ノード、Pod、Service に IPv6 アドレスを割り振ります。
| リソース | CIDR ブロック プレフィックス | 説明 |
|---|---|---|
| サブネットワーク | /64 |
IPv6 専用サブネットワーク CIDR ブロックとして指定します。 |
| ノード | /96 |
サブネットワーク CIDR ブロックから GKE によって自動的に割り当てられ、ノードごとに約 42 億 9, 000 万の一意の IPv6 アドレスが提供されます。 |
| Pod | /112 |
ノードの /96 サブ範囲のサブセットから割り当てられます。 |
| サービス | /64 |
ClusterIP Service の 2600:2D00:0:4::0:0/64 IPv6 アドレス範囲から GKE によって自動的に割り当てられます。 |
外部 IPv6 アクセスタイプと内部 IPv6 アクセスタイプ
クラスタ サブネットワークを設定するときに、2 つの IPv6 アクセスタイプから選択して、インターネット ルーティングを制御できます。
- 内部(ULA):
INTERNALアクセスタイプのサブネットワークは、fd20::/20範囲内の一意のローカル ユニキャスト アドレス(ULA)を使用します。通信は、VPC ネットワーク、ピアリング ネットワーク、ハイブリッド接続に限定されます。ノードと Pod は、パブリック IPv6 インターネット リソースに直接アクセスしたり、直接インターネット上り(内向き)トラフィックを受信したりできません。 - 外部(GUA):
EXTERNALアクセスタイプのサブネットワークは、グローバル ユニキャスト アドレス(GUA)を使用します。ノードと Pod にはグローバルに一意の IPv6 アドレスが割り当てられ、VPC ファイアウォール ルールとルーティング テーブルに従って、上り(内向き)と下り(外向き)の両方でパブリック IPv6 インターネット リソースと通信できます。
始める前に
作業を始める前に、次のタスクが完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API を有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化します。gcloud CLI をインストール済みの場合は、
gcloud components updateコマンドを実行して最新のバージョンを取得します。以前のバージョンの gcloud CLI では、このドキュメントのコマンドを実行できない場合があります。
要件と制限事項
シングルスタック IPv6 クラスタを使用するには、次の要件と制限事項を満たしていることを確認してください。
- クラスタで GKE バージョン 1.37.1-gke.3020000 以降を実行する必要があります。
- クラスタは、GKE Dataplane V2 を使用する VPC ネイティブ クラスタである必要があります。シングルスタック IPv6 クラスタは、ルートベース クラスタをサポートしていません。
- シングルスタック IPv6 クラスタは、ワーカーノードとしてシングルスタック IPv6 VM インスタンスのみをサポートし、混合ノードプールまたはデュアルスタック ノードプールはサポートしません。
- クラスタ DNS プロバイダ(
--cluster-dns=clouddns)として Cloud DNS を使用する必要があります。シングルスタック IPv6 クラスタはkube-dnsをサポートしていません。 - シングルスタック IPv6 クラスタでのコントロール プレーンへのアクセスでは、次の 2 つの異なるパスが使用されます。
- 外部クライアント: クラスタ外のクライアント(
kubectlを使用するクライアントなど)は、GKE Frontend(GKFE)を介してドメインベースのエンドポイントからコントロール プレーンにアクセスします。 - 内部ワークロード: ノードと Pod は、Private Service Connect を介してコントロール プレーンに安全に接続します。この通信をサポートするには、
INTERNALIPv6 アクセスタイプ(--private-endpoint-subnetwork)のサブネットワークを指定または作成する必要があります。
- 外部クライアント: クラスタ外のクライアント(
- 内部(
INTERNAL)IPv6 サブネットワークでは、ノードと Pod は Cloud NAT ゲートウェイを使用せずに IPv6 経由で Google API と Artifact Registry にアクセスできます。ただし、次の点を考慮してください。- 外部 IPv4 専用エンドポイント(外部 IPv4 専用コンテナ レジストリなど)に到達するには、DNS64 と Cloud NAT(NAT64)を構成する必要があります。
INTERNALサブネットワーク上のノードと Pod は、Google の外部にある外部パブリック IPv6 エンドポイントに到達できません。これは、一意のローカルアドレス(ULA)がパブリック IPv6 インターネットでルーティングできず、Cloud NAT が IPv6 から IPv6(NAT66)への変換をサポートしていないためです。
- シングルスタック IPv6 クラスタは、
--private-ipv6-google-access-typeクラスタフラグと--enable-private-nodesクラスタフラグをサポートしていません。代わりに、VPC サブネットワークでプライベート Google アクセスと IPv6 アクセスタイプ(INTERNALまたはEXTERNAL)を直接構成します。 - シングルスタック IPv6 クラスタは、マルチサブネット構成をサポートしていません。
- シングルスタック IPv6 クラスタは、GKE Ingress をサポートしていません。レイヤ 7 アプリケーション ロードバランサを構成するには、Gateway API を使用します。
- GKE マルチネットワーキング API は IPv6 Pod ネットワークをサポートしていません。セカンダリ Pod ネットワークは IPv4 専用にする必要があります。詳細については、Pod のマルチネットワーク サポートをご覧ください。
- IPv6 のみのクラスタは Cloud Service Mesh をサポートしていません。
- シングルスタック IPv6 クラスタでお客様所有 IPv6 アドレス(BYOIPv6)を使用できます。BYOIPv6 プレフィックスに適用される要件については、IPv6 サブプレフィックスを作成して使用するをご覧ください。
ワークロード メタデータ サーバーの構成
IPv6 専用 Pod で実行されているワークロードは、標準の IPv4 メタデータ サーバー アドレス(169.254.169.254)にアクセスできないため、次の調整を適用します。
- ドメイン名
metadata.google.internal(推奨)またはリテラル ULA IPv6 アドレス[fd20:ce::254]を使用してメタデータ サーバーにアクセスするように、アプリケーションとクライアント ライブラリを構成します。 ハードコードされた IPv4 メタデータ サーバー エンドポイント(以前のバージョンの Google API クライアント ライブラリなど)でクライアント ライブラリまたはアプリケーションを使用する場合は、コンテナ イメージまたは Pod 仕様で
GCE_METADATA_HOST環境変数を設定します。env: - name: GCE_METADATA_HOST value: "metadata.google.internal"
シングルスタック IPv6 クラスタを作成する
シングルスタック IPv6 クラスタを作成するには、Google Cloud CLI を使用します。
クラスタとサブネットワークを同時に作成する
既存のカスタム サブネットワークがない場合は、Standard シングルスタック IPv6 クラスタを作成し、GKE で必要なノード サブネットワークと --private-endpoint-subnetwork を 1 つのコマンドで自動的にプロビジョニングできます。
次のコマンドを実行します。
gcloud beta container clusters create CLUSTER_NAME \
--cluster-version=VERSION \
--enable-dataplane-v2 \
--cluster-dns=clouddns \
--stack-type=ipv6 \
--network=NETWORK_NAME \
--create-subnetwork name=SUBNET_NAME \
--ipv6-access-type=ACCESS_TYPE \
--location=COMPUTE_LOCATION
次のように置き換えます。
CLUSTER_NAME: 新しいクラスタ用の名前。VERSION: GKE バージョン 1.37.1-gke.3020000 以降。NETWORK_NAME: 既存のカスタムモード VPC ネットワークの名前。SUBNET_NAME: 作成する新しいノード サブネットワークの名前。ACCESS_TYPE: サブネットワークのインターネット ルーティングの可否。プライベート ULA アドレス指定の場合はINTERNAL、パブリック GUA アドレス指定の場合はEXTERNALを指定します。省略した場合のデフォルトはEXTERNALです。COMPUTE_LOCATION: クラスタのコンピューティング リージョンまたはコンピューティング ゾーン。
カスタム サブネットワークに Standard クラスタを作成する
既存のサブネットワークまたはカスタム サブネットワークを使用するには、クラスタを作成する前に、VPC ネットワーク、PSC コントロール プレーン サブネットワーク、ノード サブネットワークを作成します。
ULA 内部 IPv6 アドレスが有効になっているカスタムモードの VPC ネットワークを作成します。
gcloud compute networks create NETWORK_NAME \ --subnet-mode=CUSTOM \ --enable-ula-internal-ipv6専用の内部 PSC コントロール プレーン サブネットワークを作成します。
gcloud compute networks subnets create PSC_SUBNET_NAME \ --stack-type=ipv6_only \ --ipv6-access-type=INTERNAL \ --network=NETWORK_NAME \ --region=COMPUTE_REGIONCOMPUTE_REGIONは、クラスタをデプロイするリージョン(us-central1など)に置き換えます。PSC コントロール プレーンのサブネットワークに--stack-type=ipv4_ipv6を指定することもできます。ノード サブネットワークを作成します。内部アクセス(
INTERNAL)または外部アクセス(EXTERNAL)を選択します。gcloud compute networks subnets create NODE_SUBNET_NAME \ --stack-type=ipv6_only \ --ipv6-access-type=ACCESS_TYPE \ --network=NETWORK_NAME \ --region=COMPUTE_REGION両方のサブネットワークを参照するシングルスタック IPv6 Standard クラスタを作成します。
gcloud container clusters create CLUSTER_NAME \ --cluster-version=VERSION \ --enable-dataplane-v2 \ --cluster-dns=clouddns \ --stack-type=ipv6 \ --network=NETWORK_NAME \ --subnetwork=NODE_SUBNET_NAME \ --private-endpoint-subnetwork=PSC_SUBNET_NAME \ --location=COMPUTE_LOCATION
カスタム サブネットワークに Autopilot クラスタを作成する
Autopilot クラスタは、指定したノード サブネットワークからスタックタイプを自動的に継承します。IPv6 のみのサブネットワークを選択すると、GKE はシングルスタック IPv6 Autopilot クラスタを作成します。
前のセクションで説明したように、カスタム VPC ネットワーク、内部 PSC サブネットワーク、IPv6 のみのノード サブネットワークが作成されていることを確認します。
Autopilot クラスタを作成します。
gcloud container clusters create-auto CLUSTER_NAME \ --cluster-version=VERSION \ --network=NETWORK_NAME \ --subnetwork=NODE_SUBNET_NAME \ --private-endpoint-subnetwork=PSC_SUBNET_NAME \ --location=COMPUTE_LOCATION
マネージド ノードを含む Standard クラスタを作成する
ワークロード レベルで構成されたマネージド ノードを使用するシングルスタック IPv6 Standard クラスタを作成することもできます。Standard クラスタでマネージド ComputeClass を構成する方法については、Standard クラスタの Autopilot クラスをご覧ください。
ノードと Pod にお客様所有 IPv6 アドレスを使用する
ノードと Pod が Google 提供のアドレスではなくお客様所有の IPv6 アドレス(BYOIPv6)を使用するシングルスタック IPv6 クラスタを作成できます。これを行うには、パブリック委任プレフィックス(PDP)のリージョン IPv6 サブプレフィックスから取得した外部 IPv6 アドレス範囲を使用してノード サブネットワークを作成します。ノードと Pod は、そのプレフィックスから IPv6 アドレスを受け取り、それらのアドレスを使用してインターネットや相互に通信します。
EXTERNAL_IPV6_SUBNETWORK_CREATIONモードでパブリック委任プレフィックスのリージョン IPv6 サブプレフィックスを作成します。詳細については、IPv6 サブプレフィックスを作成するをご覧ください。EXTERNALIPv6 アクセスタイプを使用してノード サブネットワークを作成し、--ip-collectionフラグを使用してサブプレフィックスを参照します。Compute Engine は、サブプレフィックスからサブネットワークの/64IPv6 アドレス範囲を割り振ります。gcloud compute networks subnets create NODE_SUBNET_NAME \ --stack-type=ipv6_only \ --ipv6-access-type=EXTERNAL \ --ip-collection=SUB_PREFIX_NAME \ --network=NETWORK_NAME \ --region=COMPUTE_REGIONSUB_PREFIX_NAMEは、前の手順で作成したサブプレフィックスの名前に置き換えます。サブプレフィックスは、サブネットワークと同じリージョンに存在する必要があります。Compute Engine に割り当てを任せるのではなく、サブプレフィックスから特定の/64範囲を選択するには、--external-ipv6-prefixフラグを追加します。カスタム サブネットワークに Standard クラスタを作成するまたはカスタム サブネットワークに Autopilot クラスタを作成するの手順に沿って、このノード サブネットワークにクラスタを作成します。PSC コントロール プレーンのサブネットワークには、BYOIPv6 アドレス範囲は必要ありません。
GKE がクラスタを作成したら、ノードと Pod にプレフィックスの IPv6 アドレスがあることを確認します。
kubectl get nodes -o wide kubectl get pods --all-namespaces -o wide
次の点にご注意ください。
- この手順では、
EXTERNALIPv6 アクセスタイプのノード サブネットワークを使用します。これにより、ノードと Pod は、プレフィックスからグローバルにルーティング可能なアドレスを取得します。INTERNAL_IPV6_SUBNETWORK_CREATIONモードのサブプレフィックスを参照して、INTERNALIPv6 アクセスタイプのノード サブネットワークを使用することもできます。この場合、ノードと Pod は内部 BYOIPv6 アドレスを取得し、内部 IPv6 アクセスタイプの接続制限が適用されます。詳細については、外部リソースとプライベート リソースに接続するをご覧ください。 - LoadBalancer Service を使用して BYOIPv6 アドレスでワークロードを公開するには、お客様所有 IPv6 アドレス(BYOIPv6)をご覧ください。BYOIPv6 ノード サブネットワークは必要ありません。
- BYOIPv6 プレフィックスに適用される要件については、IPv6 サブプレフィックスを作成して使用するをご覧ください。
クラスタのスタックタイプを確認する
クラスタの作成が完了したら、クラスタを一覧表示して、クラスタがシングルスタック IPv6 モードで実行されていることを確認します。
gcloud beta container clusters list
出力で、STACK_TYPE 列が IPV6 に設定されていることを確認します。
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STACK_TYPE STATUS
v6-only-cluster-1 us-central1-c 1.37.0-gke.1000000 gke-3a3234-123456.us-central1-c.gke.goog e2-medium 1.37.0-gke.1000000 1 IPV6 RUNNING
シングルスタック IPv6 クラスタでのロード バランシング
シングルスタック IPv6 クラスタ内で実行されているアプリケーションは、レイヤ 7 ロードバランサとレイヤ 4 ロードバランサの両方を使用して公開できます。
レイヤ 7 アプリケーション ロード バランシング(Gateway API): Kubernetes Gateway API を使用して、レイヤ 7 アプリケーション ロードバランサ(
gke-l7-rilb、gke-l7-regional-external-managed、gke-l7-global-external-managed)をデプロイします。これらの Gateway は、内部と外部の IPv4 クライアントと IPv6 クライアントの両方にサービスを提供しながら、内部 IPv6 専用 Pod エンドポイントにトラフィックを透過的にルーティングできます。GKE Ingress は、シングルスタック IPv6 クラスタではサポートされていません。シングルスタック IPv6 クラスタにリージョン ゲートウェイ(gke-l7-rilbとgke-l7-regional-external-managed)をデプロイする場合は、次のサブネットワーク要件に注意してください。- プロキシ専用サブネットワーク: シングルスタック IPv6 クラスタでは、リージョン プロキシ専用サブネットワーク(
--purpose=REGIONAL_MANAGED_PROXY)はデュアルスタック(--stack-type=IPV4_IPV6)である必要があります。IPv4 のみとデュアルスタックのクラスタでは、サブネットワークは IPv4 のみまたはデュアルスタックのいずれかになります。 - ゲートウェイ VIP サブネットワーク: IPv4 リージョン外部ゲートウェイ(サブネットワークから VIP を割り振らない)とは異なり、IPv6 リージョン外部ゲートウェイ(
gke-l7-regional-external-managed)にはEXTERNALIPv6 アクセスを持つサブネットワークが必要です。また、リージョン内部ゲートウェイ(gke-l7-rilb)にはINTERNALIPv6 アクセスを持つサブネットワーク(または内部 IPv4 VIP の IPv4 範囲)が必要です。クラスタのノード サブネットワークではなく、カスタム サブネットワークからエフェメラル リージョン Gateway VIP を割り振るには、Gateway に接続されたGCPGatewayPolicyのspec.default.subnetworkフィールドにサブネットワーク名を指定します。
構成手順については、Gateway をデプロイするをご覧ください。
- プロキシ専用サブネットワーク: シングルスタック IPv6 クラスタでは、リージョン プロキシ専用サブネットワーク(
レイヤ 4 パススルー ロード バランシング(Service API):
type: LoadBalancerで構成された Kubernetes Service を使用して、IPv6 クライアントにワークロードを公開できます。クラスタノードがINTERNAL(ULA)サブネットワークまたはEXTERNAL(GUA)サブネットワークで実行されているかどうかに応じて、専用のロードバランサ サブネットワークをプロビジョニングし、networking.gke.io/load-balancer-subnetアノテーションを使用して参照する必要があります。- 内部ロードバランサについては、シングルスタック IPv6 クラスタに内部 LoadBalancer Service を作成するをご覧ください。
- 外部ロードバランサについては、シングルスタック IPv6 クラスタに外部 LoadBalancer Service を作成するをご覧ください。
- ロードバランサに BYOIPv6 アドレスを割り当てるには、お客様所有 IPv6 アドレス(BYOIPv6)を使用するをご覧ください。外部 LoadBalancer Service は、ノード サブネットワークのアクセスタイプに関係なく、BYOIPv6 パブリック委任プレフィックスから直接アドレスを割り振ることができます。
外部リソースとプライベート リソースに接続する
シングルスタック IPv6 クラスタのワークロードは、インターネット経由で外部サービスと通信したり、 Google Cloudのプライベート サービスと通信したりする必要があります。
パブリック IPv6 インターネット リソースに接続する
クラスタノードが EXTERNAL IPv6 アクセスタイプ(--ipv6-access-type=EXTERNAL)で構成されたサブネットワークで実行されている場合、パブリック インターネット IPv6 エンドポイントへのアウトバウンド下り(外向き)接続と上り(内向き)接続がデフォルトで有効になります。VPC ファイアウォール ルールで必要な IPv6 トラフィックが許可されていることを確認します。詳細については、VPC ファイアウォール ルールを使用するをご覧ください。
パブリック IPv4 インターネット リソースに接続する(DNS64 と NAT64)
シングルスタック IPv6 クラスタの Pod には IPv6 アドレスのみがあるため、パブリック IPv4 のみのインターネット エンドポイントに接続するには、ネットワーク変換が必要です。VPC ネットワーク全体で Cloud DNS と Cloud NAT を構成して、DNS64 と NAT64 の自動変換を提供できます。
DNS64 サーバー ポリシーを作成します。
gcloud dns policies create POLICY_NAME \ --description="DNS64 policy for single-stack IPv6 cluster" \ --networks=NETWORK_NAME \ --enable-dns64-all-queriesクラスタがデプロイされているリージョンに Cloud Router を作成します。
gcloud compute routers create ROUTER_NAME \ --network=NETWORK_NAME \ --region=COMPUTE_REGIONNAT64 変換用に構成された Cloud NAT ゲートウェイを作成します。
gcloud compute routers nats create NAT_NAME \ --router=ROUTER_NAME \ --region=COMPUTE_REGION \ --auto-allocate-nat-external-ips \ --nat64-all-v6-subnet-ip-ranges特定のサブネットワークまたは手動の外部 IP アドレスを使用して NAT64 を構成するには、
--nat64-custom-v6-subnet-ip-rangesと--nat-external-ip-poolを使用します。
アドレス変換の詳細については、DNS64 と NAT64 を構成すると 6to4 接続用の DNS64 と NAT64 をご覧ください。
Private Service Connect を使用してプライベート サービスに接続する
Private Service Connect(PSC)は、エンドポイントと転送ルール間の IPv6 から IPv4 へのアドレス変換をサポートしています。シングルスタック IPv6 クラスタのワークロードを Google Cloud マネージド サービス(Cloud SQL インスタンスなど)またはサードパーティ プロデューサー サービスに接続できます。
クラスタの PSC サブネットワークから静的内部 IPv6 アドレスを予約します。
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV6 \ --subnet=PSC_SUBNET_NAME \ --region=COMPUTE_REGIONサービス アタッチメントをターゲットとする PSC エンドポイント転送ルールを作成します。
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --address=ADDRESS_NAME \ --region=COMPUTE_REGION \ --network=NETWORK_NAME \ --target-service-attachment=SERVICE_ATTACHMENT_URL \ --allow-psc-global-access割り当てられた IPv6 アドレスを取得します。
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \ --region=COMPUTE_REGION \ --format='value(IPAddress)'取得した IPv6 アドレスをアプリケーション接続文字列内で使用します。PSC は、IPv6 Pod が IPv4 またはデュアルスタック プロデューサー サービスに安全に到達できるようにトラフィックを変換します。
公開サービスの使用の詳細については、Private Service Connect エンドポイントを作成すると Private Service Connect を使用して Cloud SQL に接続するをご覧ください。ServiceAttachment リソースを使用して、クラスタで実行されている内部 LoadBalancer Service を他の VPC ネットワークのコンシューマーに公開するには、Private Service Connect を使用して内部ロードバランサを作成するをご覧ください。
高度なネットワーキングとアクセラレータ
アクセラレータ ノードプールとマルチネットワーク Pod のセカンダリ ネットワーク インターフェースを使用して、シングルスタック IPv6 クラスタを構成できます。
マルチ NIC アクセラレータ ネットワーキング
Standard シングルスタック IPv6 クラスタでは、自動ネットワーキング(--accelerator-network-profile=auto)または手動マルチネットワーク構成(--additional-node-network)を使用して、セカンダリ データ ネットワーク(RDMA または DIORITE)をアクセラレータ ノードプール(GPU と TPU)に接続できます。セカンダリ インターフェースは、IPv4 サブネットワーク、デュアルスタック サブネットワーク、または IPv6 専用サブネットワークで実行できます。
詳細な手順については、シングルスタック IPv6 クラスタでマルチ NIC ノード ネットワークを構成するをご覧ください。
Pod のマルチネットワーク サポート
シングルスタック IPv6 クラスタは、次の特性を持つ Pod のマルチネットワーキングをサポートしています。
- プライマリ Pod ネットワーク インターフェース(
eth0)は、シングルスタック IPv6 ネットワーキングを使用します。 - 追加の Pod ネットワーク インターフェースは、IPv4 専用(レイヤ 3 VPC ネットワーク)にする必要があります。シングルスタック IPv6 クラスタは、追加のネットワーク インターフェースで IPv6 Pod ネットワークをサポートしていません。
networking.gke.io/default-interfacePod アノテーションは、IPv4 トラフィックのみのデフォルト インターフェースを構成します。IPv6 トラフィックのデフォルト インターフェースは構成されません。
VPC サブネットワークを基盤とするセカンダリ IPv4 Pod ネットワークを構成する方法については、シングルスタック IPv6 クラスタで Pod のマルチネットワーク サポートを設定するをご覧ください。
シングルスタック IPv6 クラスタに移行する
既存の IPv4 クラスタまたはデュアルスタック クラスタをシングルスタック IPv6 クラスタに直接変換またはインプレース更新することはできません。ワークロードを移行するには、Blue/Green 移行を使用します。
- 依存関係を監査する: アプリケーション構成、クライアント ライブラリ、エージェントが、ハードコードされた IPv4 アドレスではなく、DNS 名(
metadata.google.internalなど)を使用していることを確認します。必要に応じてGCE_METADATA_HOSTを構成します。 - Green クラスタをプロビジョニングする: 既存のクラスタと同じ VPC ネットワーク内またはピアリングされた VPC ネットワーク内に、新しいシングルスタック IPv6 クラスタを並べてデプロイします。Cloud DNS、DNS64、Cloud NAT(NAT64)、PSC 転送ルールが構成されていることを確認します。
- ワークロードをデプロイする: Kubernetes マニフェストを Green クラスタに適用し、Pod が正常に起動して通信することを確認します。
- トラフィックをシフトする: ロードバランサ(Gateway API または Cloud DNS ルーティング ポリシー)を使用して、指標とエラー率をモニタリングしながら、トラフィックを以前のクラスタから新しい IPv6 クラスタに徐々にシフトします。
- 以前のクラスタをデコミッションする: すべてのトラフィックが移行され、Green クラスタが安定していることを確認したら、古いクラスタをドレインして削除します。
次のステップ
- GKE ネットワーキングの詳細については、GKE ネットワークの概要をご覧ください。
- GKE が IP アドレスを割り当てる方法については、GKE での IP アドレス指定についてをご覧ください。
- レイヤ 7 ロード バランシングを構成するには、ゲートウェイのデプロイをご覧ください。
- セカンダリ Pod ネットワークを構成するには、Pod のマルチネットワーク サポートを設定するをご覧ください。