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
kubelet
lui --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!