本記事は、
AWS Containers Advent Calendar 2021の14日目になる記事です。
結論:IPv6だけでEKSを動かすにはまだ早い。もう少し待とう。
今は、github issue を Subscribe してお待ちください。
「おことわり: 本記事をみても、IPv4 の世界に乗り出す、IPv6だけのEKSは未サポート。Coming Soonらしいのでもう少し待とう」 ということになる。
何がたりないのか
コンテナ界隈でIPv6をいじっているという皆様はどんな世界にお暮らしでしょうか。IPv6アクセスのほうがもはや多くなったモバイルOS界隈? IPv4もIPv6も同様に投資されている、モバイルキャリアむけシステム界隈? それとも。。。? いずれにせよ IPv4 でコンテナを触っていることの無理感がかなり増えている昨今ではないでしょうか。少なくとも私はそのひとりです。
コンテナ界隈では巨大なコンテナホストにコンテナを詰めるだけ詰める世界があり、そこで host network をつかわない世界があります。
そこは、外界はいざしらず、コンテナ輸送船団内というか、Cluster内部ではIPv6を使いたい世界になります。
しかし、世の中まだまだ IPv4 前提だし、IPv6 が普通になるには時間がかかりそうです。
そんなわけで必要なのは、
「Pod が IPv6 アドレスを利用しつつ、IPv4 エンドポイントにルーティングできるように、単一インターフェイス構成で IPv6 サポートを有効にする」
ことでしょう。
AWS reInvent2021の、Deep Dive on Amazon EKS セッションではこんな発表がありましたが、こんな世界です。
おおっと、もしかしてリリースされたのか! と 思いましたがいやちょっとまて。執筆時点では、Coming Soon だった。つまり、まだ楽には使えないってことだ。
というわけで、このように宣言しなければなるまい。
「おことわり: 本記事をみても、IPv4 の世界に乗り出す、IPv6だけのEKSは未サポート。Coming Soonらしいのでもう少し待とう」 ということになる。
そろってきたピースの整理
2021.7 VPC CNI plugin v1.9でノードあたりのIPアドレス数が16倍に。
AvailableIpPerENI を参照すると、ENIあたりのIPアドレス数は、よく使われる c5.large でもIPv4とIPv6それぞれに10ずつもあります。さらに、ネットワークインターフェイスに個々のセカンダリ IPv4 アドレスを割り当てる代わりに、/28(16 IP アドレス)IPv4 アドレスプレフィックスを割り当てることができるようになり、これにより、ノード 1 台に配置可能な Pod 数が大幅に向上(16倍!)しました。
こうなると、俄然ためしたくなります。そしてこの機能、IPv6 でも使えるんです。
2021.11 VPCにIPv6 only subnetができ、NAT64がでた
おわりに
完全な IPv6 だけの世界は無理でも、
コンテナネットワークでIPv6を動かすことで、解決する未来があります。
Private IPv4 が組織内で枯渇し、
RFC6890 で定義されたShared Address Space「100.64.0.0/10」 までアドホックにくいちらかし、かといって一旦割り当ててたアドレス回収もできずにいるようなカオスな組織でも何の問題もない世界は目の前です。
今は、github issue を Subscribe して待ちましょう。
そして、コンテナなんて矮小な話じゃたりねーよ、という方。
IPv6 on AWS というホワイトペーパーがあります。
JAWSの山口さんによる解説記事があります。日本語で読めます。おすすめです。
おまけ。。手でやるなら
気楽に試すだけなら、IoTならIPv6あたりまえだし、
k0s(もうすぐ。マージ待ち) と
k3s(対応してない)
どちらかで行けるやろ! とおもったのですが甘かったようです。
最後に手でやるならUbuntuでやった記事がこれ。