Opis problemu:
Podczas uruchamiania klastra w Rancherze (RKE2) pojawia się komunikat:
Failed to create pod sandbox: failed to setup network for sandbox:
plugin type=“calico” failed (add): failed to allocate for range 0:
no IP addresses available in range set: 10.42.X.1-10.42.X.254
Niektóre pody (kontenery) mają status ContainerCreating lub Pending i nie chcą się uruchomić.
Co to znaczy:
Każdy węzeł (serwer) w klastrze ma swoją małą podsieć – np. 10.42.2.0/24.
W tej podsieci system przydziela adresy IP dla uruchamianych podów.
Czasami, po wielu restartach lub testach, stare adresy IP nie są zwalniane.
W efekcie pula adresów się kończy i nowe kontenery nie mają już wolnego IP.
Dlatego pojawia się ten błąd.
Jak to naprawić (prosto i bezpiecznie):
- Sprawdź, który węzeł ma problem:
kubectl get pods -A -o wide | grep ContainerCreating
W kolumnie NODE zobaczysz nazwę serwera, na którym pody się nie uruchamiają.
- Wyczyść stare adresy IP na tym serwerze:
Zaloguj się na ten węzeł (np. przez SSH) i wykonaj poniższe polecenia:
sudo systemctl stop rke2-server
lub: sudo systemctl stop rke2-agent
sudo find /var/lib/cni/networks -maxdepth 2 -type f -name '10.’ -delete
sudo rm -f /var/lib/cni/networks//lock 2>/dev/null || true
sudo ip link delete cni0 2>/dev/null || true
sudo ip link delete flannel.1 2>/dev/null || true
sudo systemctl start rke2-server
- Sprawdź, czy wszystko działa:
Na masterze (tam gdzie masz kubectl) wpisz:
kubectl get pods -A -o wide
Wszystkie pody powinny mieć status Running.
W Rancherze klaster po chwili zmieni status na Active.
Dlaczego to działa:
Te komendy czyszczą stare informacje o przydzielonych adresach IP (z katalogu /var/lib/cni/networks).
Po restarcie RKE2 sieć zostaje odbudowana i każdy węzeł dostaje nową, czystą pulę adresów.
Jak uniknąć problemu w przyszłości:
-
Regularnie monitoruj pody i węzły: kubectl get pods -A -o wide
-
Jeśli często testujesz lub usuwasz klastry – po większej ilości zmian zrób restart węzłów.
-
Upewnij się, że porty sieciowe między serwerami są otwarte (szczególnie: UDP 8472, TCP 6443 i 9345).
Efekt:
Po wykonaniu tych kroków:
-
pody startują poprawnie
-
błędy z komunikatem „no IP addresses available…” znikają
-
klaster w Rancherze jest aktywny i stabilny