web-dev-qa-db-ja.com

CIDRネットワークフランネルとKubernetesを変更することは可能ですか

実行中のKubernetesクラスターでCIDRネットワークフランネルを変更することはできますか?はいの場合、起動されたポッドはどうなりますか?

ありがとう

1
Kris454

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 ConfigMapnet-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アドレスを保持することに注意してください。

2
mk_sta