メインコンテンツまでスキップ

MultusとIPAMプラグイン

Multus CNI は、ポッドに複数のネットワークインターフェースを接続することを可能にするCNIプラグインです。MultusはCNIプラグインを置き換えるのではなく、CNIプラグインのマルチプレクサとして機能します。特に、ポッドがネットワーク集約型であり、SR-IOVなどのデータプレーンアクセラレーション技術をサポートする追加のネットワークインターフェースを必要とする場合に、Multusは有用です。

Multusは単独でデプロイすることはできません。常に、Kubernetesクラスターのネットワーク要件を満たす少なくとも1つの従来のCNIプラグインが必要です。そのCNIプラグインがMultusのデフォルトとなり、すべてのポッドに対して主要なインターフェースを提供するために使用されます。デフォルトオプションでK3sをデプロイする場合、そのCNIプラグインはFlannelです。

Helmリポジトリを追加

Multusをデプロイするには、以下のHelmリポジトリを使用することをお勧めします:

helm repo add rke2-charts https://rke2-charts.rancher.io
helm repo update

IPAMプラグインを設定

Multusによって作成された追加のインターフェースにIPアドレスを割り当てるために、IPAMプラグインが必要です。

host-local IPAMプラグインは、アドレス範囲のセットからIPアドレスを割り当てます。状態をホストのファイルシステムにローカルに保存するため、単一ホスト上のIPアドレスの一意性が保証されます。したがって、マルチノードクラスターには推奨しません。このIPAMプラグインは追加のデプロイを必要としません。詳細については、https://www.cni.dev/plugins/current/ipam/host-local/ を参照してください。

host-localプラグインを使用するには、以下の内容でmultus-values.yamlというファイルを作成してください:

config:
cni_conf:
confDir: /var/lib/rancher/k3s/agent/etc/cni/net.d
binDir: /var/lib/rancher/k3s/data/current/bin/
kubeconfig: /var/lib/rancher/k3s/agent/etc/cni/net.d/multus.d/multus.kubeconfig

Multusをデプロイ

multus-values.yamlファイルを作成した後、Multusをインストールする準備が整います:

helm install multus rke2-charts/rke2-multus -n kube-system --kubeconfig /etc/rancher/k3s/k3s.yaml --values multus-values.yaml

Helmチャートのインストールにより、必要なCNIバイナリを/var/lib/rancher/k3s/data/current/にインストールし、Multus CNI設定を/var/lib/rancher/k3s/agent/etc/cni/net.dに作成するためのMultusポッドを作成するDaemonSetがデプロイされます。

Multusの詳細については、multus-cniのドキュメントを参照してください。