Kubernetes: WeaveによるPodへのIPアドレス割り当て(1)

長い時間を掛けて執筆した「CentOS 8 パーフェクトガイド」(共著)が先月7月21に発売になりました。初心者から経験者までを対象に、基本的な内容からCentOS 8/Stream 8で導入された新しいソフトウェアや標準リポジトリには含まれていないソフトウェアまで、幅広いトピックを取り上げたので、ページ数が約1200ページ弱、厚さが約4.5cmになりました。
この本の仮想化の章でKubernetesのインストールと設定手順を解説しましたが、そこでPodネットワーク用のアドオンであるWeaveのIPAM(IP Address Management)についても触れています。(以下、本から抜粋)

weaveのIPAMは、PodネットワークのネットワークアドレスとPodのIPアドレスの割り当てを行います。Podネットワークのデフォルトのネットワークアドレスは10.32.0.0/12となります。(途中省略)
各ノードには10.32.0.0/12のアドレスの範囲を分割して割り当てられます。
各ノードに割り当てられた範囲のIPアドレスのなかで、最初のアドレスがそのノードのI/F (ブリッジ)「weave」に与えられます。各ノードのweaveのIPAMは、自ノード上で稼働するPodに対して、割り当てられた範囲のなかの未使用アドレスを順番に割り当てます。(以降省略)

PodネットワークはPodが接続するネットワークです。
Podネットワーク上のPodは、NATなしで全てのノード上の全てのPodと通信できます。
Podネットワーク用のアドオンにはこの本で取り上げたWeaveの他にも、Flannel、Calico等、たくさんの種類のadd-onがあります。

参考:「Kubernetesネットワークモデルの実装方法」
https://kubernetes.io/ja/docs/concepts/cluster-administration/networking...

書籍を読んだ知り合いから、PodネットワークのネットワークアドレスとPodのIPアドレスの割り当てについて尋ねられたので、以下、WeaveのIPAMについて書籍と同じネットワーク構成を例にとって説明していきます。

注) IPアドレスの割り当て方式は、Podネットワーク用のアドオンによって異なります。
参考:プロジェクトCalico「IPAM in Kubernetes」
https://docs.projectcalico.org/networking/get-started-ip-addresses
「Kubernetes uses IPAM plugins to allocate and manage IP addresses assigned to pods. Different IPAM plugins provide different feature sets. Calico provides its own IPAM plugin called calico-ipam which is designed to work well with Calico and includes a number of features.」

書籍の場合とほぼ同じく、CentOS 8.4をインストールしたKVMゲストを3台作成しています。
virt-managerでKVMゲストを作成します。作成するKVMゲストの仕様は以下の通りです。

・OS:CentOS 8.4
・インストールの種類:サーバ(GUI使用)
・プロセッサの個数:2個
・メモリサイズ:4GB
・ディスク容量:20GB
・コンテナランタイム:cri-o/runc

次回はkubectlコマンドの実行結果やKubernetesおよびWeaveのドキュメントを参照して説明します。