Udostępnij za pośrednictwem


Sieć Kubernetes na urządzeniu z procesorem GPU Pro w usłudze Azure Stack Edge

DOTYCZY: Tak dla jednostki SKU procesora GPU ProAzure Stack Edge Pro — GPUTak dla jednostki SKU Pro 2Azure Stack Edge Pro 2Tak dla jednostki SKU Pro RAzure Stack Edge Pro R Azure Stack Edge Mini RTak dla jednostki SKU Mini R

Na urządzeniu z procesorem GPU Usługi Azure Stack Edge Pro klaster Kubernetes jest tworzony podczas konfigurowania roli obliczeniowej. Po utworzeniu klastra Kubernetes konteneryzowane aplikacje można wdrożyć w klastrze Kubernetes w zasobnikach. Istnieją różne sposoby użycia sieci dla zasobników w klastrze Kubernetes.

W tym artykule opisano sieć w klastrze Kubernetes ogólnie i w szczególności w kontekście urządzenia GPU Usługi Azure Stack Edge Pro.

Wymagania dotyczące sieci

Oto przykład typowej dwuwarstwowej aplikacji wdrożonej w klastrze Kubernetes.

  • Aplikacja ma fronton serwera internetowego i aplikację bazy danych w zapleczu.
  • Każdy zasobnik ma przypisany adres IP, ale te adresy IP mogą ulec zmianie po ponownym uruchomieniu i przejściu w tryb failover zasobnika.
  • Każda aplikacja składa się z wielu zasobników i powinno istnieć równoważenie obciążenia ruchu we wszystkich replikach zasobników.

Wymagania dotyczące sieci platformy Kubernetes

Powyższy scenariusz daje następujące wymagania dotyczące sieci:

  • Istnieje potrzeba uzyskania dostępu do aplikacji zewnętrznej przez użytkownika aplikacji spoza klastra Kubernetes za pośrednictwem nazwy lub adresu IP.
  • Aplikacje w klastrze Kubernetes, na przykład fronton i zasobniki zaplecza w tym miejscu, powinny mieć możliwość komunikacji ze sobą.

Aby rozwiązać oba powyższe potrzeby, wprowadzimy usługę Kubernetes.

Usługi sieciowe

Istnieją dwa typy usług Kubernetes:

  • Usługa adresów IP klastra — tę usługę można traktować jako stały punkt końcowy dla zasobników aplikacji. Żaden zasobnik skojarzony z tymi usługami nie może być dostępny spoza klastra Kubernetes. Adres IP używany z tymi usługami pochodzi z przestrzeni adresowej w sieci prywatnej.

    Aby uwidocznić zasobniki w klastrze Kubernetes w celu uzyskania dostępu jako innych zasobników, a nie jako zewnętrznie uwidocznionej usługi równoważenia obciążenia, zobacz, jak uwidocznić usługę Kubernetes jako usługę IP klastra na potrzeby komunikacji wewnętrznej.

  • Adres IP modułu równoważenia obciążenia — podobnie jak usługa IP klastra, ale skojarzony adres IP pochodzi z sieci zewnętrznej i można uzyskać do tego dostęp spoza klastra Kubernetes.

Konfiguracja sieci kubernetes

Adresy IP używane dla węzłów kubernetes i usług zewnętrznych są udostępniane za pośrednictwem strony Obliczenia w lokalnym interfejsie użytkownika urządzenia.

Przypisywanie adresu IP platformy Kubernetes w lokalnym interfejsie użytkownika

Przypisanie adresu IP dotyczy:

  • Adresy IP węzłów platformy Kubernetes: ten zakres adresów IP jest używany dla węzłów głównych i roboczych platformy Kubernetes. Te adresy IP są używane, gdy węzły kubernetes komunikują się ze sobą.
  • Adresy IP usługi zewnętrznej Kubernetes: ten zakres adresów IP jest używany dla usług zewnętrznych (nazywanych również usługami usługi Load Balancer), które są uwidocznione poza klastrem Kubernetes.

Składniki sieciowe platformy Kubernetes

Calico, Metallb i Core DNS to wszystkie składniki, które są instalowane na potrzeby sieci na procesorze GPU usługi Azure Stack Edge Pro.

  • Calico przypisuje adres IP z zakresu prywatnych adresów IP do każdego zasobnika i konfiguruje sieć dla tych zasobników, aby zasobnik w jednym węźle mógł komunikować się z zasobnikiem w innym węźle.
  • Narzędzie Metallb działa na zasobniku w klastrze i przypisuje adres IP do usług typu load balancer. Adresy IP modułu równoważenia obciążenia są wybierane z zakresu adresów IP usługi udostępnianych za pośrednictwem lokalnego interfejsu użytkownika.
  • Podstawowy system DNS — ten dodatek konfiguruje nazwę usługi mapowania rekordów DNS na adres IP klastra.

Po nawiązaniu połączenia z interfejsem programu PowerShell urządzenia można zobaczyć powyższe składniki sieciowe uruchomione w klastrze Kubernetes.

Interfejsy sieciowe, przełączniki

Urządzenie jest dostępne jako konfiguracja 1 węzła, która stanowi klaster infrastruktury. Klaster Kubernetes jest oddzielony od klastra infrastruktury i jest wdrażany na podstawie klastra infrastruktury. Klaster Kubernetes ma węzeł główny i węzeł roboczy. Oba węzły platformy Kubernetes to maszyny wirtualne, które uruchamiają aplikacje i przepływy pracy w chmurze.

Maszyny wirtualne główne i robocze mają dwa interfejsy sieciowe, jeden łączący się z wewnętrznym przełącznikiem wirtualnym, a drugi łączący się z zewnętrznym przełącznikiem wirtualnym.

  • Zewnętrzny przełącznik wirtualny: ten przełącznik jest tworzony po włączeniu portu urządzenia do obliczeń za pośrednictwem strony Obliczenia w lokalnym interfejsie użytkownika. Jest to przełącznik używany dla infrastruktury obliczeniowej, na przykład ten przełącznik jest używany dla maszyn wirtualnych wdrażanych na urządzeniu.

  • Wewnętrzny przełącznik wirtualny: ten przełącznik jest tworzony jako część domyślnych ustawień fabrycznych na urządzeniu. Wewnętrzny przełącznik wirtualny używa translatora adresów sieciowych (NAT) do kierowania ruchu przez port skonfigurowany przy użyciu bramy domyślnej. Na przykład ten przełącznik kieruje wszystkie żądania środowiska uruchomieniowego IoT z maszyn wirtualnych do witryny Azure Portal.

Trasy sieciowe

W przypadku maszyn wirtualnych Kubernetes na urządzeniu można kierować ruch, dodając nową konfigurację trasy. Konfiguracja trasy to wpis tabeli routingu zawierający następujące pola:

Parametr Opis
Element docelowy Adres IP lub prefiks adresu IP.
Długość prefiksu Długość prefiksu odpowiadająca adresowi lub zakresowi adresów w miejscu docelowym.
Narzędzie Następny przeskok Adres IP, do którego jest przekazywany pakiet.
Interfejs Interfejs sieciowy przekazujący pakiet IP.
Metric Metryka routingu określa preferowany interfejs sieciowy używany do dotarcia do miejsca docelowego.

Zmienianie routingu w sieci obliczeniowej

Add-HcsNetRoute Użyj polecenia cmdlet , aby zmodyfikować routing w ramach procesu roboczego platformy Kubernetes i głównych maszyn wirtualnych. Rozważ układ na poniższym diagramie.

Diagram sieci usługi Azure Stack Edge

  • Port 2 jest połączony z Internetem i jest żądaną ścieżką dla ruchu wychodzącego.
  • Włączono środowisko obliczeniowe na porcie 3 i spowodowało to utworzenie zewnętrznego przełącznika wirtualnego w tym interfejsie sieciowym.
  • Port 3 jest połączony z siecią prywatną, która zawiera kamery i inne czujniki przekazujące nieprzetworzone dane do urządzenia Azure Stack Edge do przetwarzania.

Jeśli brama jest skonfigurowana w środowisku w sieci prywatnej, rozważ ustawienie tras niestandardowych dla maszyn wirtualnych głównych i roboczych platformy Kubernetes, aby mogły komunikować się z bramą tylko dla odpowiedniego ruchu. Dzięki temu możesz kontrolować ruch, który przepływa w sieci obliczeniowej, a inne porty, które mogły zostać skonfigurowane na urządzeniu Azure Stack Edge. Możesz na przykład chcieć, aby cały inny ruch dostępny z Internetu przepływł przez inne porty fizyczne na urządzeniu. W takim przypadku ruch internetowy może przechodzić przez port 2.

Należy również uwzględnić te inne zagadnienia:

  • Jeśli masz podsieć płaską, nie musisz dodawać tych tras do sieci prywatnej. Możesz (opcjonalnie) dodać te trasy, gdy istnieje wiele podsieci w sieci prywatnej.
  • Możesz dodać te trasy tylko do głównych maszyn wirtualnych i roboczych platformy Kubernetes, a nie do urządzenia (hosta z systemem Windows).
  • Przed dodaniem tej trasy nie trzeba konfigurować zasobów obliczeniowych Kubernetes. Trasy można również dodawać lub aktualizować po skonfigurowaniu obliczeń platformy Kubernetes.
  • Nową konfigurację trasy można dodać tylko za pośrednictwem interfejsu programu PowerShell urządzenia, a nie za pośrednictwem lokalnego interfejsu użytkownika.
  • Upewnij się, że używany interfejs sieciowy ma konfigurację statyczną.

Dodawanie konfiguracji trasy

Aby dodać nową trasę niestandardową do sieci prywatnej, użyj polecenia cmdlet w następujący sposób:

Add-HcsNetRoute -InterfaceAlias <Port number> -DestinationPrefix <Destination IP address or IP address prefix> -NextHop <IP address of next hop> -RouteMetric <Route metric number> 

Oto przykładowe dane wyjściowe.

Add-HcsNetRoute -InterfaceAlias "Port3" -DestinationPrefix "192.168.20.0/24" -NextHop "192.168.20.1" -RouteMetric 100 

Powyższe polecenie utworzy wpis w tabeli routingu, który definiuje docelową podsieć 192.168.20.0/24, określa następny przeskok jako 192.168.20.1 i przypisuje ten wpis routingu metrykę 100. Obniż metrykę routingu, a wyższy priorytet przypisany do trasy.

Sprawdzanie konfiguracji trasy

Użyj tego polecenia cmdlet, aby sprawdzić wszystkie konfiguracje tras niestandardowych, które zostały dodane na urządzeniu. Te trasy nie obejmują wszystkich tras systemowych ani tras domyślnych, które już istnieją na urządzeniu.

Get-HcsNetRoute -InterfaceAlias <Port number>

Usuwanie konfiguracji trasy

Użyj tego polecenia cmdlet, aby usunąć konfigurację trasy dodaną na urządzeniu.

Remove-HcsNetRoute -InterfaceAlias <Port number> -DestinationPrefix <Destination IP or IP prefix>

Routing z wieloma interfejsami sieciowymi

Jeśli podłączono wiele portów urządzeń, standardowe tworzenie zespołu kart sieciowych lub przełącznika osadzonego tworzenia zespołu (SET), które umożliwia grupowanie kilku fizycznych kart sieciowych w jedną wirtualną kartę sieciową w środowisku funkcji Hyper-V, nie jest obsługiwane.

Następne kroki

Aby skonfigurować sieć kubernetes na procesorze GPU usługi Azure Stack Edge Pro, zobacz: