După cum ați aflat deja, migrarea Flannel la Calico, pe un cluster cu un singur nod, nu este acceptată.Acest lucru se datorează faptului că controlerul de migrare Flannel trebuie programat pe nodul care nu migrează în prezent, ceea ce este imposibil în clusterul cu un singur nod.
Acest lucru poate fi rezolvat prin crearea unui al doilea nod temporar și se poate reduce la 1 după ce migrarea este finalizată.
O altă soluție este crearea unui cluster complet nou, instalarea Calico și mutarea resurselor de la un cluster vechi la cel nou.
Ca ultimă soluție, puteți încerca să dezinstalați Flannel manual și să instalați Calico peste el.
Avertizare: Este posibil ca toate cele de mai jos să nu funcționeze conform intenției. A face lucrurile în acest fel nu este susținut, evident, nici de Flannel, nici de Calico. Se poate rupe și face clusterul dvs. inutilizabil. Încercați mai întâi această soluție în mediul de testare, adaptați-vă la mediul dvs. și numai apoi încercați aceasta pe prod.
Ai fost avertizat.
- Scoateți flanela cu
kubectl delete -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
- SSH în nodul dvs
- Opriți serviciul kubelet
systemctl stop kubelet
- Opriți containerul
systemctl stop containerd
dacă este utilizat ca timp de rulare a containerului. (înlocuiți cu docker dacă este utilizat Docker Engine)
- Eliminați orice directoare legate de CNI
rm -rf /var/lib/cni
rm -rf /run/flanel
rm -rf /etc/cni
- Căutați orice interfețe legate de CNI/Flannel și eliminați-le
link ip
pentru fiecare interfață faceți următoarele
ifconfig <numele interfeței de la ip link> în jos
ip link delete <numele interfeței din ip link>
- Reporniți timpul de rulare al containerului
- Reporniți kubelet
- Instalați Calico așa cum ați face pe un cluster nou.