Zveřejnění služeb Kubernetes pro externí zařízení
Pokud pracujete s aplikacemi Kubernetes, možná budete muset zpřístupnit služby Kubernetes pro externí zařízení, aby mohly pracovat s úlohami, které jste nasadili. Tento článek vysvětluje, jak zpřístupnit služby Kubernetes spuštěné v clusteru AKS Edge Essentials pro externí zařízení. V závislosti na konfiguraci sítě, kterou jste použili k nastavení clusteru Kubernetes, existují dva různé způsoby zveřejnění služeb:
- Cluster s jedním počítačem s přesměrováním portů
- Škálovatelný cluster s externím virtuálním přepínačem
Poznámka:
Pokud používáte služby Kubernetes, nezapomeňte během nasazování nastavit Init.ServiceIPRangeSize
parametry a Init.ServiceIPRangeStart
parametry. Další informace najdete v tématu Parametry JSON konfigurace nasazení.
Možnost 1: Cluster s jedním počítačem s přesměrováním portů
Konfigurace clusteru s jedním počítačem AKS Edge Essentials používá ke správě sítí interní virtuální přepínač. Tento přepínač zajišťuje, že veškerá komunikace mezi hostitelským operačním systémem Windows a uzlem Linux/Windows se provádí pomocí interní sítě, která není přístupná externími zařízeními. Další informace o sítích AKS Edge Essentials najdete v tématu Sítě AKS Edge Essentials.
Pokud potřebujete přistupovat ke službě Kubernetes z externích zařízení, nastavte přesměrování portů z hostitelského operačního systému Windows do uzlu Linux nebo Windows. Pokud používáte službu Kubernetes typu LoadBalancer, ujistěte se, že pomocí kubectl get services
příkazu získáte správný ServiceIp. Pokud používáte službu Kubernetes typu ClusterIp nebo NodePort, použijte IP adresu uzlu Kubernetes s Linuxem nebo Windows.
K nastavení přesměrování portů můžete použít rutinu netsh
. Další informace o syntaxi příkazů, kontextech a formátování najdete v netsh
tématu Syntaxe příkazů Netsh, kontexty a formátování. Pokud chcete nastavit přesměrování portů, postupujte takto:
Otevřete relaci PowerShellu se zvýšenými oprávněními.
Povolte port pravidla brány firewall pro externí port hostitelského operačního systému Windows. Další informace naleznete v tématu New-NetFirewallRule:
New-NetFirewallRule -DisplayName "<name-for-rule>" -Direction Inbound -LocalPort <Windows-host-OS-external-port> -Action Allow
Získejte IP adresu cílové služby v oboru názvů:
kubectl get service -n <namespace>
Nastavte přesměrování portů z portu hostitelského operačního systému Windows na IP adresu a port služby Kubernetes:
Parametr Popis listen-port
Port IPv4 hostitele operačního systému Windows používaný externími zařízeními ke komunikaci se službou Kubernetes. listen-address
Určuje adresu IPv4, pro kterou se má naslouchat na hostitelském operačním systému Windows. Pokud není zadaná adresa, výchozí hodnota je místní počítač. connect-port
Určuje port IPv4, na který se má přesměrovat provoz. Tento port by měl být portem služby Kubernetes. connect-address
Určuje adresu IPv4, na kterou se má provoz přesměrovat. Tento port by měl být IP adresa služby Kubernetes. netsh interface portproxy add v4tov4 listenport=<listen-port> listenaddress=<listen-address> connectport=<connect-port> connectaddress=<connect-address>
Na následujícím obrázku příkladu jsou na zařízení s Windows spuštěné dvě služby Kubernetes s adresou IPv4 10.0.0.2 :
- Linux-Svc se spuštěnou službou NodePort s IP adresou uzlu
192.168.0.2
a portu30034
Linuxu . Tato služba by měla být dostupná přes port 8080 v hostitelském operačním systému Windows. - Win-Svc spuštěný jako služba LoadBalancer s IP adresou
192.168.0.5
a portem30035
. Tato služba by měla být dostupná přes port 8081 v hostitelském operačním systému Windows.
Pokud chcete povolit externím zařízením přístup k těmto službám, nastavte přesměrování portů pro obě služby. V tomto scénáři spusťte následující příkazy:
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=10.0.0.2 connectport=30034 connectaddress=192.168.0.2
netsh interface portproxy add v4tov4 listenport=8081 listenaddress=10.0.0.2 connectport=30035 connectaddress=192.168.0.5
Upozorňující
Pokud nepoužíváte statickou konfiguraci sítě, může se změnit adresa IPv4 hostitelského operačního systému Windows. To může mít vliv na konfigurace přesměrování portů a cílovou adresu IPv4 používanou externími zařízeními. Pokud chcete minimalizovat dopad změny adresy IPv4, můžete použít obecnější listenaddress
.
Možnost 2: Škálovatelný cluster s externím virtuálním přepínačem
Škálovatelná konfigurace clusteru AKS Edge Essentials ke správě sítí používá externí virtuální přepínač. Vzhledem k tomu, že uzly běží v různých zařízeních, musí být všechny uzly připojené ke stejné síti, aby mezi sebou komunikily. Další informace o sítích AKS Edge Essentials najdete v tématu Sítě AKS Edge Essentials.
V této konfiguraci jsou uzly Kubernetes připojené k externí síti, takže služby Kubernetes jsou dostupné externími zařízeními bez nutnosti přesměrování portů. Pokud používáte službu Kubernetes typu LoadBalancer, nezapomeňte pomocí kubectl get services
příkazu získat správný serviceIp podle pokynů pro možnost 1. Pokud používáte službu Kubernetes typu ClusterIp nebo NodePort, použijte IP adresu uzlu Kubernetes s Linuxem nebo Windows.
Poznámka:
Škálovatelný cluster je možné udržovat na jednom zařízení a pomocí konfigurace externího virtuálního přepínače zpřístupnit služby Kubernetes přímo externím zařízením v externí síti bez nutnosti předávání portů.