[ROZWIĄZANE] Rancher / RKE2 – błąd „no IP addresses available in range set”

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):

  1. 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ą.

  1. 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

  1. 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

1 polubienie