[クラウド/ネットワーク] GKEの34.x帯域とEKSの100.64.x帯域、一体何者? 🕵️‍♂️☁️

こんにちは!今日は、クラウドネイティブ環境を扱っていると一度は目にする「見慣れないIP帯域」についてお話ししたいと思います。

Kubernetesを運用していると、時折「あれ?うちのVPC帯域は10.0.0.0/16なのに、なぜ34.x.x.xが表示されるんだ?」とか、「AWS EKSのPod IPがなぜ100.64.x.xなんだ?」といった疑問を持つことがあります。

これら2つのケースは異なる理由で発生しますが、最終的にはクラウドネットワークの構造的な限界とIPリソース管理という共通のテーマを持っています。GKEとEKSがそれぞれネットワークをどのように扱っているのか、詳細に掘り下げていきましょう!🚀

image


1. GKE (Google Kubernetes Engine)と34.x.x.x帯域の秘密 🇬

「私のクラスターはプライベートなのに、なぜマスターノードはパブリックIPを使うの?」

GKEを作成してkubectl cluster-infoを実行すると、マスター(Control Plane)のアドレスが34.118.x.xのようなGoogleのパブリックIPで設定されていることが確認できます。

🏗️ 構造上の理由:管理領域の分離

GKEはユニークなアーキテクチャを持っています。

  • User VPC (ワーカーノード): 私たちが費用を支払い、制御する領域です。ここに実際のPodが起動します。
  • Google Managed VPC (コントロールプレーン): Googleが管理する別のプロジェクト/VPCにマスターノードが存在します。

これら2つのネットワークは物理的に分離されており、通信のためにVPC Peering(ピアリング)で接続されます。

🧐 なぜ公衆IP(34.x)なのか?

ここでジレンマが生じます。もしGoogleがマスターノードに10.xや192.168.xのようなプライベートIPを使用したらどうなるでしょうか?

ユーザーが自身のVPCを同じ10.x帯域で作成した場合、IPアドレスの衝突(Overlap)が発生し、ピアリング自体が不可能になります。

そのため、Googleは「世界中で重複しないIP」である公衆IP(Public IP)帯域(Google所有の34.xなど)をマスターノードに割り当てたのです。

💡 要点まとめ

  1. 衝突防止: ユーザーVPCがどのプライベート帯域を使用しているかに関わらず、接続できるようにするためです。
  2. アクセス性: 開発者が外部(インターネット)からkubectlコマンドを実行できるエンドポイントの役割を果たします。
  3. セキュリティ: Private Clusterオプションをオンにしても、マスターとワーカーノード間のトンネリングなどのために、この公衆IP帯域は内部的にルーティングに使用されます。

2. AWS EKSと100.64.x.x (Secondary CIDR)の正体 🅰️

「VPC IPが足りない!Pod用の専用帯域が必要だ!」

AWS EKSを運用していると、Pod IPが100.64.x.x帯域で設定されるケースをよく目にします。これはAWS VPC CNIプラグインの特性と密接に関連しています。

😱 問題点:IP枯渇 (IP Exhaustion)

AWS VPC CNIは、Pod一つ一つにVPCの実際のIPアドレスを割り当てます。パフォーマンスは最高ですが、IPの消費が膨大です。

例えば、10.0.0.0/16(65,536個)でVPCを作成しても、サブネットを分割したり、EC2、ELB、RDSなどを起動したりすると、数千個のPodを起動するためのIPが不足してしまいます。

🛠️ 解決策:Secondary CIDRの追加

ここで使用されるテクニックが、VPCに補助IP帯域(Secondary CIDR)を追加することです。この際に最も推奨される帯域が、まさに100.64.0.0/10帯域です。

🧐 100.64.x.xとは何か? (CGNAT)

この帯域はRFC 6598標準で定義されたCGNAT(Carrier Grade NAT)帯域です。

  • 公衆IPではない: インターネット上でルーティングされません。
  • 一般的なプライベートIP(10.x、192.168.x)でもない: 企業内部ネットワークで一般的に使用される帯域と重複する可能性が非常に低いです。

つまり、「プライベートネットワーク拡張に最適で、衝突のない予備帯域」というわけです。EKSはこの帯域をPod専用に割り当てることで、ノード(EC2)が使用するIP帯域とPodが使用するIP帯域を分離し、IP不足問題を解決します。

💡 要点まとめ

  1. IP確保: 既存のVPC帯域幅の限界を超えて、Podを無限に(?)作成できます。
  2. 管理の容易性: ノードIPとPod IPが明確に区別され、管理が容易になります。
  3. 標準準拠: プライベートIPの衝突を避けるためにCGNAT帯域を活用します。

🥊 一目で比較

区分 GKE (Google) EKS (AWS)
観測されるIP 34.118.x.x (例) 100.64.x.x
IPの種類 Public IP (公衆IP) CGNAT IP (共有アドレス)
対象リソース Control Plane (マスターノード) Pod (ワーカーノード内部)
使用目的 ユーザーVPCとのIP衝突防止および外部アクセス VPCのIP枯渇解決およびPod専用帯域の確保
ネットワーク構造 Google管理VPC ↔ ユーザーVPC ピアリング 単一VPC内でのSecondary CIDR拡張

📝 結論

クラウドを利用していると、「自分が設定していないIP」が出現して戸惑うことがあります。しかし、その裏には衝突防止拡張性のためのクラウドプロバイダー(CSP)たちの深い配慮が込められています。

  • GKEの34.x: Googleが管理する領域なので、「ああ、マスターノードだな!」と安心してください。
  • EKSの100.64.x: Pod IP不足を解決するための「拡張スロット」だと考えれば良いでしょう。

この違いを理解することで、ハイブリッドクラウドやマルチクラウドのネットワーク設計において、より柔軟に対応できるようになります!👍

お役に立てたら、いいねをお願いします!👏



Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です