Чтобы изменить CNI с Weave Net на Calico в кластере, вы можете сделать следующее:
Удалить weave- net конфигурацию pods:
kubectl delete -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
Затем изменить podCIDR с помощью Выполнение следующей команды на главном узле:
sudo kubeadm init phase control-plane controller-manager --pod-network-cidr=192.168.0.0/16
192.168.0.0/16
- это podCIDR по умолчанию, используемый Calico, и его можно изменить только один раз.
Если вы попытаетесь измените его впоследствии, он покажет ошибку:
spe c .podCIDRs: Запрещено: обновления узла не могут изменять podCIDR, кроме как "", действительным
, поэтому оно равно способ эксплуатации.
После этого вы можете применить ситце:
kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml
Кроме того, если вы решили установить другой podCIDR, вы должны указать podCIDR в kubeadm init
:
sudo kubeadm init phase control-plane all --pod-network-cidr=<your_podCIDR>
затем измените Calico DaemonSet:
...
- name: CALICO_IPV4POOL_CIDR
value: "<your_podCIDR>"
...
и примените его. Но, как упоминалось ранее, вы не можете сделать это, если указан podCIDR. Его можно добавить, но нельзя изменить позже.