Delen via


Kubernetes-netwerken op Azure Stack Edge Pro GPU-apparaat

VAN TOEPASSING OP: Ja voor Pro GPU-SKUAzure Stack Edge Pro - GPUJa voor Pro 2 SKUAzure Stack Edge Pro 2Ja voor Pro R SKUAzure Stack Edge Pro RJa voor Mini R SKUAzure Stack Edge Mini R

Op uw Azure Stack Edge Pro GPU-apparaat wordt een Kubernetes-cluster gemaakt wanneer u de rekenrol configureert. Zodra het Kubernetes-cluster is gemaakt, kunnen containertoepassingen worden geïmplementeerd op het Kubernetes-cluster in Pods. Er zijn verschillende manieren waarop netwerken worden gebruikt voor pods in uw Kubernetes-cluster.

In dit artikel worden de netwerken in een Kubernetes-cluster in het algemeen en specifiek in de context van uw Azure Stack Edge Pro GPU-apparaat beschreven.

Netwerkvereisten

Hier volgt een voorbeeld van een typische app met twee lagen die is geïmplementeerd in het Kubernetes-cluster.

  • De app heeft een front-end voor de webserver en een databasetoepassing in de back-end.
  • Aan elke pod wordt een IP-adres toegewezen, maar deze IP-adressen kunnen worden gewijzigd bij opnieuw opstarten en failover van de pod.
  • Elke app bestaat uit meerdere pods en er moet taakverdeling van het verkeer zijn voor alle podreplica's.

Kubernetes-netwerkvereisten

Het bovenstaande scenario resulteert in de volgende netwerkvereisten:

  • Er is behoefte aan een externe toepassing die toegankelijk is voor een toepassing buiten het Kubernetes-cluster via een naam of een IP-adres.
  • De toepassingen in het Kubernetes-cluster, bijvoorbeeld front-end en de back-endpods, kunnen hier met elkaar communiceren.

Om beide bovenstaande behoeften op te lossen, introduceren we een Kubernetes-service.

Netwerkservices

Er zijn twee typen Kubernetes-services:

  • Cluster-IP-service : beschouw deze service als een constant eindpunt voor de toepassingspods. Elke pod die aan deze services is gekoppeld, kan niet worden geopend buiten het Kubernetes-cluster. Het IP-adres dat met deze services wordt gebruikt, is afkomstig van de adresruimte in het privénetwerk.

    Als u de pods in het Kubernetes-cluster beschikbaar wilt maken voor toegang als andere pods en niet als een extern blootgestelde load balancer-service, raadpleegt u hoe u Kubernetes-service beschikbaar maakt als cluster-IP-service voor interne communicatie.

  • Load balancer-IP , zoals de cluster-IP-service, maar het bijbehorende IP-adres is afkomstig van het externe netwerk en kan worden geopend van buiten het Kubernetes-cluster.

Kubernetes-netwerkconfiguratie

De IP-adressen die worden gebruikt voor Kubernetes-knooppunten en de externe services worden geleverd via de pagina Compute in de lokale gebruikersinterface van het apparaat.

Kubernetes IP-toewijzing in de lokale gebruikersinterface

De IP-toewijzing is bedoeld voor:

  • IP-adressen van Kubernetes-knooppunten: dit IP-bereik wordt gebruikt voor Kubernetes-master- en werkknooppunten. Deze IP-adressen worden gebruikt wanneer Kubernetes-knooppunten met elkaar communiceren.
  • IP-adressen van externe Kubernetes-services: dit IP-bereik wordt gebruikt voor externe services (ook wel de Load Balancer-services genoemd) die buiten het Kubernetes-cluster worden weergegeven.

Kubernetes-netwerkonderdelen

Calico, Metallb en Core DNS zijn alle onderdelen die zijn geïnstalleerd voor netwerken op uw Azure Stack Edge Pro GPU.

  • Calico wijst een IP-adres van een privé-IP-bereik toe aan elke pod en configureert netwerken voor deze pods, zodat pod op het ene knooppunt kan communiceren met de pod op een ander knooppunt.
  • Metallb wordt uitgevoerd op een pod in het cluster en wijst IP-adres toe aan services van het type load balancer. Ip-adressen van load balancers worden gekozen uit het IP-adresbereik van de service die wordt geleverd via de lokale gebruikersinterface.
  • Basis-DNS : met deze invoegtoepassing configureert u de naam van de dns-recordstoewijzingsservice naar het IP-adres van het cluster.

Wanneer u verbinding maakt met de PowerShell-interface van uw apparaat, ziet u de bovenstaande netwerkonderdelen die worden uitgevoerd op uw Kubernetes-cluster.

Netwerkinterfaces, switches

Uw apparaat is beschikbaar als een configuratie van 1 knooppunt die het infrastructuurcluster vormt. Het Kubernetes-cluster staat los van het infrastructuurcluster en wordt bovenop het infrastructuurcluster geïmplementeerd. Het Kubernetes-cluster heeft een hoofdknooppunt en een werkknooppunt. Zowel de Kubernetes-knooppunten zijn virtuele machines waarop uw toepassingen en cloudwerkstromen worden uitgevoerd.

De hoofd- en werkrol-VM's hebben elk twee netwerkinterfaces, een die verbinding maakt met de interne virtuele switch en een andere die verbinding maakt met de externe virtuele switch.

  • Externe virtuele switch: deze switch wordt gemaakt wanneer we een apparaatpoort inschakelen voor berekening via de pagina Compute in de lokale gebruikersinterface. Dit is de switch die u gebruikt voor uw rekeninfrastructuur. Deze switch wordt bijvoorbeeld gebruikt voor de virtuele machines die u op uw apparaat implementeert.

  • Interne virtuele switch: deze switch wordt gemaakt als onderdeel van de fabrieksinstellingen op uw apparaat. De interne virtuele switch maakt gebruik van NAT (Network Address Translation) om het verkeer te routeren via de poort die is geconfigureerd met een standaardgateway. Met deze switch worden bijvoorbeeld alle IoT-runtimeaanvragen van VM's naar Azure Portal gerouteerd.

Netwerkroutes

Voor de Kubernetes-VM's op uw apparaat kunt u het verkeer routeren door een nieuwe routeconfiguratie toe te voegen. Een routeconfiguratie is een routeringstabelvermelding die de volgende velden bevat:

Parameter Description
Doel Een IP-adres of een IP-adresvoorvoegsel.
Lengte van voorvoegsel De lengte van het voorvoegsel dat overeenkomt met het adres of het adresbereik van adressen in de bestemming.
Volgende hop Het IP-adres waarnaar het pakket wordt doorgestuurd.
Interface De netwerkinterface waarmee het IP-pakket wordt doorgestuurd.
Metrische gegevens Metrische routering bepaalt de voorkeursnetwerkinterface die wordt gebruikt om de bestemming te bereiken.

Routering in rekennetwerk wijzigen

Gebruik de Add-HcsNetRoute cmdlet om de routering op de Kubernetes-werkrol en hoofd-VM's te wijzigen. Bekijk de indeling in het onderstaande diagram.

Azure Stack Edge-netwerkdiagram

  • Poort 2 is verbonden met internet en is het gewenste pad voor uitgaand verkeer.
  • U hebt rekenkracht ingeschakeld op poort 3 en dit heeft een externe virtuele switch op deze netwerkinterface gemaakt.
  • Poort 3 is verbonden met een particulier netwerk met camera's en andere sensoren die onbewerkte gegevens invoeren op het Azure Stack Edge-apparaat voor verwerking.

Als een gateway is geconfigureerd in uw omgeving in het privénetwerk, kunt u aangepaste routes instellen voor de Kubernetes-master- en werkrol-VM's, zodat ze alleen met uw gateway kunnen communiceren voor het relevante verkeer. Hiermee kunt u het verkeer beheren dat op het rekennetwerk stroomt ten opzichte van de andere poorten die u mogelijk hebt geconfigureerd op uw Azure Stack Edge-apparaat. U wilt bijvoorbeeld dat al het andere internetverkeer via de andere fysieke poorten op uw apparaat stroomt. In dit geval kan internetverkeer via poort 2 gaan.

U moet ook rekening houden met deze andere overwegingen:

  • Als u een plat subnet hebt, hoeft u deze routes niet toe te voegen aan het privénetwerk. U kunt (optioneel) deze routes toevoegen wanneer er meerdere subnetten in uw privénetwerk zijn.
  • U kunt deze routes alleen toevoegen aan de Kubernetes-master- en werkrol-VM's en niet aan het apparaat (Windows-host).
  • De Kubernetes-rekenkracht hoeft niet te worden geconfigureerd voordat u deze route toevoegt. U kunt ook routes toevoegen of bijwerken nadat de Kubernetes-berekening is geconfigureerd.
  • U kunt alleen een nieuwe routeconfiguratie toevoegen via de PowerShell-interface van het apparaat en niet via de lokale gebruikersinterface.
  • Zorg ervoor dat de netwerkinterface die u gaat gebruiken een statische configuratie heeft.

Een routeconfiguratie toevoegen

Als u een nieuwe aangepaste route wilt toevoegen aan het privénetwerk, gebruikt u de cmdlet als volgt:

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

Hier volgt een voorbeeld van uitvoer.

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

Met de bovenstaande opdracht maakt u een vermelding in de routeringstabel die een doelsubnet 192.168.20.0/24 definieert, geeft u de volgende hop op als 192.168.20.1 en wijst u deze routeringsvermelding toe aan een metrische waarde van 100. Verlaag de metrische routeringswaarde, met een hogere prioriteit die aan de route is toegewezen.

Routeconfiguratie controleren

Gebruik deze cmdlet om te controleren op alle aangepaste routeconfiguraties die u op uw apparaat hebt toegevoegd. Deze routes bevatten niet alle systeemroutes of standaardroutes die al op het apparaat bestaan.

Get-HcsNetRoute -InterfaceAlias <Port number>

Een routeconfiguratie verwijderen

Gebruik deze cmdlet om een routeconfiguratie te verwijderen die u op uw apparaat hebt toegevoegd.

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

Routeren met meerdere netwerkinterfaces

Als er meerdere apparaatpoorten zijn verbonden, wordt standaard NIC-koppeling of Switch Embedded Teaming (SET) waarmee u meerdere fysieke netwerkadapters kunt groeperen in één virtuele netwerkadapter in een Hyper-V-omgeving, niet ondersteund.

Volgende stappen

Voor het configureren van Kubernetes-netwerken op uw Azure Stack Edge Pro GPU raadpleegt u: