実行中のKubernetesクラスターでCIDRネットワークフランネルを変更することはできますか?はいの場合、起動されたポッドはどうなりますか?
ありがとう
Flannel CIDRネットワークプールを次のように変更できました。
--pod-network-cidr
コマンドに適切なkubeadm init
フラグを採用した kubeadm ビルダーツールを介して新しいk8sクラスターをインストールしたと仮定します。
特定のk8s Node リソースのpodCIDR
パラメータを新しいIPソース範囲で上書きし、出力をパイピングする望ましい方法:
$ kubectl get no $hostname -o yaml >> file.yaml | sed -i "s~$old_ip~$new_ip~" file.yaml| kubectl delete no $hostname && kubectl create -f file.yaml
関連するFlannel ConfigMap のnet-conf.json
ヘッダーの下の「ネットワーク」フィールドを新しいネットワークIP範囲に置き換えます。
$ kubectl edit cm kube-flannel-cfg -n kube-system
net-conf.json:| {"ネットワーク": "10.244.0.0/16"、 "バックエンド":{"タイプ": "vxlan"}}
古いネットワークプールに残っている現在のCNIネットワークインターフェイスをワイプします。
$ Sudo ip link del cni0; Sudo ip link del flannel.1
FlannelポッドとCoreDNSポッドをそれぞれ再起動します。
$ kubectl delete pod --selector=app=flannel -n kube-system
$ kubectl delete pod --selector=k8s-app=kube-dns -n kube-system
CoreDNSポッドが新しいネットワークプールからIPアドレスを取得するまで待ちます。カスタムポッドは、手動で再作成しない限り、コンテナ内の古いIPアドレスを保持することに注意してください。