Am creat un cluster folosind kudeadm și totul funcționează bine până în momentul în care încerc să stabilesc reguli de firewall, cum ar fi doar să permit 10.0.0.0/8 trafic. Acest lucru dezactivează cumva podul meu VPN (Wireguard) să se conecteze la Kubernetes kube-dns de la aparatul meu local. Există ceva magie neagră care este peste nivelul meu de salariu.
Dacă permit tot traficul de la toate IP-urile publice din cluster, atunci totul funcționează din nou bine. Deci cea mai bună presupunere a mea este că este pentru că kube-proxy folosește doar acele IP-uri publice și, cumva, oferă proxy conexiuni peste ele. Soluția ar fi forțarea kubelet și kube-proxy să folosească numai IP-urile private ale instanțelor (10.0.0.0/8).
Am încercat:
- Setare
kubeletlui --node-ip (vedea Aici). The kubelet procesul rulează apoi cu acea opțiune și setează unele adnotări pe acel nod (de ex. alpha.kubernetes.io/provided-node-ip: 10.0.3.1) dar IP-ul kube-proxy pod nu se schimbă (după repornire). Cineva a spus că Kubernetes preia IP-ul raportat de furnizorul de cloud (vezi Aici) dacă este furnizat, dar furnizorul meu de cloud nu face acest lucru (a se vedea Aici). am folosit si eu resetarea kubeadm și lăsați nodul să se reunească, doar pentru a vă asigura.
- Setare
bindAddress în kube-proxy De asemenea, ConfigMap nu are niciun efect. Am setat IP-ul unui nod acolo și l-am repornit kube-proxy pentru a testa asta. Fara efect. Nu am găsit o modalitate de a configura acest lucru pe discul nodului în sine, de când kube-proxy folosește numai ConfigMap kube-proxy ca volum.
Poate fi de interes:
- Versiunea Kubernetes: 1.24
- Furnizor de cloud: Hetzner
Multumesc pentru orice ajutor!