Sdílet prostřednictvím


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:

  1. Cluster s jedním počítačem s přesměrováním portů
  2. Š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:

  1. Otevřete relaci PowerShellu se zvýšenými oprávněními.

  2. 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
    
  3. Získejte IP adresu cílové služby v oboru názvů:

    kubectl get service -n <namespace>
    
  4. 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 portu 30034Linuxu . 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 portem 30035. 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

Snímek obrazovky znázorňující přesměrování interního síťového portu

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ů.

Další kroky