Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Konfigurowanie
kube-proxy jest składnikiem platformy Kubernetes, która obsługuje routing ruchu dla usług w klastrze. Istnieją trzy zaplecza dostępne dla równoważenia obciążenia warstwy 3/4 w nadrzędnym zakresie kube-proxy: iptables, IPVSi nftables.
-
iptablesto domyślne zaplecze używane w wielu klastrach Kubernetes. Jest to proste i dobrze obsługiwane, ale nie tak wydajne lub inteligentne, jakIPVS. -
IPVSkorzysta z serwera wirtualnego z systemem Linux, modułu równoważenia obciążenia warstwy 3/4 wbudowanego w jądro systemu Linux.IPVSzapewnia wiele zalet konfiguracji domyślnejiptables, w tym świadomość stanu, śledzenie połączeń i bardziej inteligentne równoważenie obciążenia.IPVSnie obsługuje usługi Azure Network Policy. -
nftablesjest następcą interfejsuiptablesAPI i został zaprojektowany w celu zapewnienia lepszej wydajności i skalowalności niżiptables. Trybnftablesserwera proxy jest zasadniczo zamiennikiem zarówno trybów, jakiptablesiIPVS, z lepszą wydajnością niż jeden z nich, i jest zalecany jako zamiennik dlaIPVS.
Aby uzyskać więcej informacji, zobacz dokumentację platformy Kubernetes dotyczącą serwera kube-proxy.
Note
Zarządzaną przez AKS kube-proxyDaemonSet można wyłączyć, aby obsługiwać własny CNI.
Important
Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają zapisania się. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów, świadczoną w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:
Zanim rozpoczniesz
- Jeśli używasz interfejsu wiersza polecenia Azure
aks-preview, potrzebujesz rozszerzenia. Patrz Instalowanie rozszerzenia Azure CLIaks-preview. - Jeśli używasz usługi Azure Resource Manager lub interfejsu API REST, wersja interfejsu API usługi AKS musi mieć wartość 2022-08-02-preview lub nowszą . W przypadku trybu
nftables, wersja musi być 2025-09-02-preview lub nowsza. - Musisz zarejestrować flagę
KubeProxyConfigurationPreviewfunkcji. Sprawdź Rejestrację flagiKubeProxyConfigurationPreviewfunkcji.
Zainstaluj rozszerzenie Azure CLI aks-preview
Zainstaluj rozszerzenie
aks-previewprzy użyciu poleceniaaz extension add.az extension add --name aks-previewPrzeprowadź aktualizację do najnowszej wersji rozszerzenia przy użyciu
az extension updatepolecenia .az extension update --name aks-preview
Zarejestruj flagę funkcji KubeProxyConfigurationPreview
Zarejestruj flagę funkcji
KubeProxyConfigurationPreviewza pomocą poleceniaaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"Wyświetlenie stanu Zarejestrowane trwa kilka minut.
Sprawdź stan rejestracji przy użyciu
az feature showpolecenia .az feature show --namespace "Microsoft.ContainerService" --name "KubeProxyConfigurationPreview"Gdy stan ma wartość Zarejestrowano, odśwież rejestrację dostawcy
Microsoft.ContainerServicezasobów przy użyciuaz provider registerpolecenia .az provider register --namespace Microsoft.ContainerService
kube-proxy opcje konfiguracji
Pełną kube-proxy strukturę konfiguracji można wyświetlić w schemacie klastra usługi AKS.
-
enabled: Decyduje o wdrożeniu DaemonSetkube-proxy. Wartość domyślna totrue. -
mode: Można ustawić wartośćIPTABLESna ,IPVSlubNFTABLES. Wartość domyślna toIPTABLES. -
ipvsConfig: Jeślimodema wartośćIPVS, ten obiekt zawiera właściwości konfiguracji specyficzne dla protokołu IPVS.-
scheduler: określa, który harmonogram połączeń ma być używany. Obsługiwane wartości to:-
LeastConnection: Wysyła połączenia do podu zaplecza z najmniejszą liczbą połączeń. -
RoundRobin: równomiernie dystrybuuje połączenia między podami zaplecza.
-
-
tcpFinTimeoutSeconds: Ustawia wartość limitu czasu po tym, jak sesja TCP otrzyma pakiet FIN. -
tcpTimeoutSeconds: Ustawia wartość długości limitu czasu dla bezczynnych sesji TCP. -
udpTimeoutSeconds: Ustawia wartość długości limitu czasu dla bezczynnych sesji UDP.
-
IPVS równoważenie obciążenia działa niezależnie w każdym węźle i jest świadome tylko połączeń, które przepływają przez węzeł lokalny. Oznacza to, że chociaż LeastConnection prowadzi do bardziej równomiernego obciążenia przy większej liczbie połączeń, gdy jest niska liczba połączeń (# connects < 2 * node count), może dojść do niezrównoważenia ruchu.
Użyj kube-proxy w nowym lub istniejącym klastrze AKS
Konfiguracja kube-proxy jest ustawieniem obejmującym cały klaster. Nie musisz aktualizować usług.
Zmiana kube-proxy konfiguracji może spowodować niewielkie przerwy w przepływie ruchu usługi klastra.
Utwórz plik konfiguracji z żądaną
kube-proxykonfiguracją.IPVS: Na przykład następująca konfiguracja umożliwia użycie harmonogramuIPVSzLeastConnectioni ustawienie czasu oczekiwania dla TCP na 900 sekund.{ "enabled": true, "mode": "IPVS", "ipvsConfig": { "scheduler": "LeastConnection", "tcpTimeoutSeconds": 900, "tcpFinTimeoutSeconds": 120, "udpTimeoutSeconds": 300 } }nftables: Na przykład następująca konfiguracja włączanftablestryb.{ "enabled": true, "mode": "NFTABLES" }
Utwórz nowy klaster lub zaktualizuj istniejący klaster za pomocą pliku konfiguracji wykorzystując polecenia
az aks createlubaz aks update. Użyj parametru--kube-proxy-config, aby określić plik konfiguracji.# Create a new cluster az aks create \ --resource-group <resourceGroup> \ --name <clusterName> \ --kube-proxy-config kube-proxy.json \ --generate-ssh-keys # Update an existing cluster az aks update \ --resource-group <resourceGroup> \ --name <clusterName> \ --kube-proxy-config kube-proxy.json
Dalsze kroki
W tym artykule opisano sposób konfigurowania kube-proxy w usłudze Azure Kubernetes Service (AKS). Aby dowiedzieć się więcej na temat równoważenia obciążenia w AKS, zapoznaj się z następującymi artykułami: