Dela via


Kubernetes-nätverk på Azure Stack Edge Pro GPU-enhet

GÄLLER FÖR: Ja för Pro GPU SKUAzure Stack Edge Pro – GPUJa för Pro 2 SKUAzure Stack Edge Pro 2Ja för Pro R SKUAzure Stack Edge Pro RJa för Mini R SKUAzure Stack Edge Mini R

På din Azure Stack Edge Pro GPU-enhet skapas ett Kubernetes-kluster när du konfigurerar beräkningsrollen. När Kubernetes-klustret har skapats kan containerbaserade program distribueras i Kubernetes-klustret i Poddar. Det finns olika sätt att nätverk används för poddarna i kubernetes-klustret.

Den här artikeln beskriver nätverk i ett Kubernetes-kluster i allmänhet och särskilt i kontexten för din Azure Stack Edge Pro GPU-enhet.

Nätverkskrav

Här är ett exempel på en typisk tvånivåapp som distribueras till Kubernetes-klustret.

  • Appen har en webbserverklientdel och ett databasprogram i serverdelen.
  • Varje podd tilldelas en IP-adress, men dessa IP-adresser kan ändras vid omstart och redundans för podden.
  • Varje app består av flera poddar och det bör finnas belastningsutjämning av trafiken över alla poddrepliker.

Krav för Kubernetes-nätverk

Scenariot ovan resulterar i följande nätverkskrav:

  • Det finns ett behov av att det externa programmet nås av en programanvändare utanför Kubernetes-klustret via ett namn eller en IP-adress.
  • Programmen i Kubernetes-klustret, till exempel klientdelen och serverdelspoddarna här, bör kunna prata med varandra.

För att lösa båda ovanstående behov introducerar vi en Kubernetes-tjänst.

Nätverkstjänster

Det finns två typer av Kubernetes-tjänster:

  • Kluster-IP-tjänst – se den här tjänsten som en konstant slutpunkt för programpoddarna. Poddar som är associerade med dessa tjänster kan inte nås utanför Kubernetes-klustret. IP-adressen som används med dessa tjänster kommer från adressutrymmet i det privata nätverket.

    Information om hur du exponerar poddar i Kubernetes-klustret för åtkomst som andra poddar och inte som en externt exponerad lastbalanserare finns i Exponera Kubernetes-tjänsten som kluster-IP-tjänst för intern kommunikation.

  • Lastbalanserarens IP-adress – som klustrets IP-tjänst men den associerade IP-adressen kommer från det externa nätverket och kan nås utanför Kubernetes-klustret.

Kubernetes-nätverkskonfiguration

IP-adresserna som används för Kubernetes-noder och externa tjänster tillhandahålls via sidan Beräkning i enhetens lokala användargränssnitt.

Kubernetes IP-tilldelning i lokalt användargränssnitt

IP-tilldelningen gäller för:

  • Kubernetes-nod-IP-adresser: Det här IP-intervallet används för Kubernetes-huvud- och arbetsnoder. Dessa IP-adresser används när Kubernetes-noder kommunicerar med varandra.
  • Kubernetes externa tjänst-IP-adresser: Det här IP-intervallet används för externa tjänster (även kallade Load Balancer-tjänster) som exponeras utanför Kubernetes-klustret.

Kubernetes-nätverkskomponenter

Calico, Metallb och Core DNS är alla komponenter som är installerade för nätverk på din Azure Stack Edge Pro GPU.

  • Calico tilldelar en IP-adress från ett privat IP-intervall till varje podd och konfigurerar nätverk för dessa poddar så att podden på en nod kan kommunicera med podden på en annan nod.
  • Metallb körs på en podd i klustret och tilldelar IP-adress till tjänster av typen load balancer. IP-adresser för lastbalanserare väljs från tjänstens IP-intervall som tillhandahålls via det lokala användargränssnittet.
  • Core DNS – Det här tillägget konfigurerar DNS-posters mappningstjänstnamn till klustrets IP-adress.

När du ansluter till PowerShell-gränssnittet på enheten kan du se ovanstående nätverkskomponenter som körs i kubernetes-klustret.

Nätverksgränssnitt, växlar

Enheten är tillgänglig som en konfiguration med 1 noder som utgör infrastrukturklustret. Kubernetes-klustret är separat från infrastrukturklustret och distribueras ovanpå infrastrukturklustret. Kubernetes-klustret har en huvudnod och en arbetsnod. Både Kubernetes-noderna är virtuella datorer som kör dina program och molnarbetsflöden.

De virtuella master- och arbetsdatorerna har två nätverksgränssnitt, ett som ansluter till den interna virtuella växeln och ett annat som ansluter till den externa virtuella växeln.

  • Extern virtuell växel: Den här växeln skapas när vi aktiverar en enhetsport för beräkning via sidan Beräkning i det lokala användargränssnittet. Det här är växeln som du använder för din beräkningsinfrastruktur, till exempel används den här växeln för de virtuella datorer som du distribuerar på enheten.

  • Intern virtuell växel: Den här växeln skapas som en del av fabriksinställningarna på enheten. Den interna virtuella växeln använder NAT (Network Address Translation) för att dirigera trafiken via porten som har konfigurerats med en standardgateway. Den här växeln dirigerar till exempel alla IoT-körningsbegäranden från virtuella datorer till Azure Portal.

Nätverksvägar

För de virtuella Kubernetes-datorerna på enheten kan du dirigera trafiken genom att lägga till en ny routningskonfiguration. En routningskonfiguration är en routningstabellpost som innehåller följande fält:

Parameter Description
Mål Antingen en IP-adress eller ett IP-adressprefix.
Prefixlängd Prefixets längd som motsvarar adressen eller adressintervallet i målet.
Nästa hopp IP-adressen som paketet vidarebefordras till.
Gränssnitt Nätverksgränssnittet som vidarebefordrar IP-paketet.
Mått Routningsmått avgör det önskade nätverksgränssnittet som används för att nå målet.

Ändra routning i beräkningsnätverket

Använd cmdleten Add-HcsNetRoute för att ändra routningen på kubernetes-arbetaren och de virtuella huvuddatorerna. Överväg layouten i diagrammet nedan.

Azure Stack Edge-nätverksdiagram

  • Port 2 är ansluten till Internet och är önskad sökväg för utgående trafik.
  • Du har aktiverat beräkning på port 3 och detta har skapat en extern virtuell växel i det här nätverksgränssnittet.
  • Port 3 är ansluten till ett privat nätverk som har kameror och andra sensorer som matar rådata till Azure Stack Edge-enheten för bearbetning.

Om en gateway har konfigurerats i din miljö i det privata nätverket bör du överväga att ange anpassade vägar för de virtuella Kubernetes-huvuddatorerna och de virtuella arbetsdatorerna så att de bara kan kommunicera med din gateway för relevant trafik. På så sätt kan du ha kontroll över trafiken som flödar i beräkningsnätverket jämfört med de andra portar som du kan ha konfigurerat på din Azure Stack Edge-enhet. Du kanske till exempel vill att all annan internetriktad trafik ska flöda över de andra fysiska portarna på enheten. I det här fallet kan internetriktad trafik gå via port 2.

Du bör också ta hänsyn till följande andra överväganden:

  • Om du har ett platt undernät behöver du inte lägga till dessa vägar i det privata nätverket. Du kan (om du vill) lägga till dessa vägar när det finns flera undernät i ditt privata nätverk.
  • Du kan bara lägga till dessa vägar till de virtuella Kubernetes-huvuddatorerna och de virtuella arbetsdatorerna och inte till enheten (Windows-värden).
  • Kubernetes-beräkningen behöver inte konfigureras innan du lägger till den här vägen. Du kan också lägga till eller uppdatera vägar när Kubernetes-beräkningen har konfigurerats.
  • Du kan bara lägga till en ny vägkonfiguration via PowerShell-gränssnittet på enheten och inte via det lokala användargränssnittet.
  • Kontrollera att nätverksgränssnittet som du använder har en statisk konfiguration.

Lägga till en routningskonfiguration

Om du vill lägga till en ny anpassad väg till det privata nätverket använder du cmdleten enligt följande:

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

Här är ett exempel på utdata.

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

Kommandot ovan skapar en post i routningstabellen som definierar ett målundernät 192.168.20.0/24, anger nästa hopp som 192.168.20.1 och tilldelar den här routningsposten ett routningsmått på 100. Sänk routningsmåttet, högre prioritet som tilldelats till vägen.

Kontrollera routningskonfigurationen

Använd den här cmdleten för att söka efter alla anpassade vägkonfigurationer som du har lagt till på enheten. Dessa vägar omfattar inte alla systemvägar eller standardvägar som redan finns på enheten.

Get-HcsNetRoute -InterfaceAlias <Port number>

Ta bort en routningskonfiguration

Använd den här cmdleten för att ta bort en routningskonfiguration som du har lagt till på enheten.

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

Routning med flera nätverksgränssnitt

Om flera enhetsportar är anslutna stöds inte standard NIC-teamindelning eller Switch Embedded Teaming (SET) som låter dig gruppera flera fysiska nätverkskort i ett enda virtuellt nätverkskort i en Hyper-V-miljö.

Nästa steg

Information om hur du konfigurerar Kubernetes-nätverk på din Azure Stack Edge Pro GPU finns i: