2016-03-18 17 views
8

Kube-proxy posiada opcję zwaną --proxy-mode, a według komunikatu pomocy, opcja ta może być Strefa lub iptables. (Patrz poniżej)Co oznacza tryb przestrzeni użytkownika w trybie proxy kube-proxy?

# kube-proxy -h 
Usage of kube-proxy: 
... 
     --proxy-mode="": Which proxy mode to use: 'userspace' (older, stable) or 'iptables' (experimental). If blank, look at the Node object on the Kubernetes API and respect the 'net.experimental.kubernetes.io/proxy-mode' annotation if provided. Otherwise use the best-available proxy (currently userspace, but may change in future versions). If the iptables proxy is selected, regardless of how, but the system's kernel or iptables versions are insufficient, this always falls back to the userspace proxy. 
... 

nie mogę zrozumieć co oznacza tryb userspace oznacza tutaj.

Ktoś może mi powiedzieć, jaka jest zasada działania, gdy kube-proxy działa w trybie przestrzeni użytkownika?

Odpowiedz

28

Przestrzeń użytkownika i iptables odnoszą się do tego, co faktycznie obsługuje przekazywanie połączenia. W obu przypadkach lokalne reguły iptables są instalowane w celu przechwytywania wychodzących połączeń TCP, które mają docelowy adres IP powiązany z usługą.

W trybie przestrzeni użytkownika reguła iptables przekazuje dalej do portu lokalnego, z którego pochodzi połączenie binarne (kube-proxy) dla połączeń. Plik binarny (uruchomiony w przestrzeni użytkownika) kończy połączenie, ustanawia nowe połączenie z zapleczem dla usługi, a następnie przekazuje żądania do zaplecza i odpowiedzi z powrotem do procesu lokalnego. Zaletą trybu przestrzeni użytkownika jest to, że ponieważ połączenia są tworzone z aplikacji, jeśli połączenie zostanie odrzucone, aplikacja może ponowić próbę do innego zaplecza.

W trybie iptables, reguły iptables są instalowane, aby bezpośrednio przekazywać pakiety, które są przeznaczone dla usługi do zaplecza usługi. Jest to bardziej wydajne niż przenoszenie pakietów z jądra do kube-proxy, a następnie z powrotem do jądra, co skutkuje wyższą przepustowością i lepszym opóźnieniem ogona. Główną wadą jest to, że trudniej jest debugować, ponieważ zamiast lokalnego pliku binarnego, który zapisuje dziennik do /var/log/kube-proxy, musisz przejrzeć dzienniki z reguł przetwarzania iptables jądra.

W obu przypadkach na twoim komputerze uruchomi się plik binarny kube-proxy. W trybie przestrzeni użytkownika wstawia się jako proxy; w trybie iptables skonfiguruje iptables, a nie same połączenia proxy. Ten sam plik binarny działa w obu trybach, a zachowanie jest przełączane za pomocą flagi lub przez ustawienie adnotacji w aperterze dla węzła.

+0

Dziękujemy za wyraźne wyjaśnienie! – ax003d

+3

ax003d powinieneś zaakceptować odpowiedź, jeśli jest zadowalająca. – smparkes

+0

@smparkes Zaakceptowano. Dziękuję za przypomnienie! – ax003d