Dela via


Begrepp för containernätverk

Gäller för: AKS på Azure Stack HCI 22H2, AKS på Windows Server

Programkomponenter måste arbeta tillsammans för att bearbeta sina uppgifter i en containerbaserad mikrotjänstmetod. Kubernetes tillhandahåller resurser som möjliggör programkommunikation och gör att du kan ansluta till och exponera program internt eller externt. Du kan belastningsbalansera dina program för att skapa program med hög tillgänglighet.

Mer komplexa program kan kräva konfiguration av inkommande trafik för SSL/TLS-avslutning eller routning av flera komponenter. Du kan också behöva begränsa flödet av nätverkstrafik till eller mellan poddar och noder för säkerhet.

Den här artikeln beskriver de grundläggande begreppen som tillhandahåller nätverk till dina program i AKS som aktiveras av Arc:

  • Kubernetes-tjänster
  • Ingångskontrollant
  • Nätverksprinciper

Kubernetes-tjänster

För att förenkla nätverkskonfigurationen för programarbetsbelastningar använder Kubernetes tjänster för att logiskt gruppera en uppsättning poddar och för att tillhandahålla nätverksanslutning. Följande tjänsttyper är tillgängliga:

Kluster-IP: skapar en intern IP-adress för användning i Kubernetes-klustret. Använd kluster-IP för interna program som stöder andra arbetsbelastningar i klustret.

Diagram som visar klustrets IP-trafikflöde i ett AKS-kluster.

NodePort: skapar en portmappning på den underliggande noden som gör att programmet kan nås direkt med nodens IP-adress och port.

Diagram som visar NodePort-trafikflödet i ett AKS-kluster.

LoadBalancer: skapar en Azure-lastbalanserareresurs, konfigurerar en extern IP-adress och ansluter de begärda poddarna till lastbalanserarens serverdelspool. För att kundernas trafik ska kunna nå programmet skapas belastningsutjämningsregler på önskade portar.

Diagram som visar trafikflödet för lastbalanseraren i ett AKS-kluster.

För annan kontroll och routning av inkommande trafik kan du använda en ingresskontrollant.

Kommentar

När du distribuerar ett målkluster som delar ett nätverk med ett annat målkluster finns det risk för en ip-adresskonflikt för lastbalanseraren. Detta kan inträffa om du distribuerar två arbetsbelastningar som använder olika portar i målkluster som delar samma AksHciClusterNetwork objekt. På grund av hur IP-adresser och portmappningar allokeras i HA-proxyn kan detta leda till en duplicerad IP-adresstilldelning. Om detta inträffar kan en eller båda arbetsbelastningarna stöta på problem med slumpmässig nätverksanslutning tills du distribuerar om dina arbetsbelastningar. När du distribuerar om dina arbetsbelastningar kan du antingen använda samma port som gör att varje arbetsbelastning får en separat tjänst-IP-adress, eller så kan du distribuera om dina arbetsbelastningar på målkluster som använder olika AksHciClusterNetwork objekt.

ExternalName: skapar en specifik DNS-post för enklare programåtkomst. IP-adresserna för lastbalanserare och tjänster kan vara interna eller externa adresser beroende på din övergripande nätverkskonfiguration och kan tilldelas dynamiskt. Eller så kan du ange en befintlig statisk IP-adress som ska användas. En befintlig statisk IP-adress är ofta kopplad till en DNS-post. Interna lastbalanserare tilldelas bara en privat IP-adress, så de kan inte nås från Internet.

Grunderna för Kubernetes-nätverk i Azure Stack HCI

För att tillåta åtkomst till dina program eller för att programkomponenter ska kunna kommunicera med varandra tillhandahåller Kubernetes ett abstraktionslager till virtuella nätverk. Kubernetes-noder är anslutna till det virtuella nätverket och kan tillhandahålla inkommande och utgående anslutning för poddar. Kube-proxy-komponenten som körs på varje nod innehåller dessa nätverksfunktioner.

I Kubernetes grupperar Tjänster logiskt poddar för att tillåta:

  • Direktåtkomst via en enda IP-adress eller ETT DNS-namn och en specifik port.
  • Distribuera trafik med hjälp av en lastbalanserare mellan flera poddar som är värdar för samma tjänst eller program.

Azure Stack HCI-plattformen hjälper också till att förenkla det virtuella nätverket för AKS i Azure Stack HCI-kluster genom att tillhandahålla "underläggsnätverket" på ett sätt med hög tillgänglighet. När du skapar ett AKS-kluster skapar och konfigurerar vi även en underliggande HAProxy lastbalanserareresurs. När du distribuerar program i ett Kubernetes-kluster konfigureras IP-adresser för dina poddar och Kubernetes-tjänster som slutpunkter i den här lastbalanseraren.

IP-adressresurser

För att förenkla nätverkskonfigurationen för programarbetsbelastningar tilldelar AKS Arc IP-adresser till följande objekt i en distribution:

  • Kubernetes-kluster-API-server: API-servern är en komponent i Kubernetes-kontrollplanet som exponerar Kubernetes-API:et. API-servern är klientdelen för Kubernetes-kontrollplanet. Statiska IP-adresser allokeras alltid till API-servrar oavsett den underliggande nätverksmodellen.
  • Kubernetes-noder (virtuella datorer): ett Kubernetes-kluster består av en uppsättning arbetsdatorer, som kallas noder, och noderna är värd för containerbaserade program. Förutom kontrollplansnoderna har varje kluster minst en arbetsnod. För ett AKS-kluster konfigureras Kubernetes-noder som virtuella datorer. De här virtuella datorerna skapas som virtuella datorer med hög tillgänglighet i Azure Stack HCI. Mer information finns i Begrepp för Node-nätverk.
  • Kubernetes-tjänster: i Kubernetes grupperar tjänster logiskt podd-IP-adresser för att tillåta direkt åtkomst via en enda IP-adress eller DNS-namn på en specifik port. Tjänster kan också distribuera trafik med hjälp av en lastbalanserare. Statiska IP-adresser allokeras alltid till Kubernetes-tjänster oavsett den underliggande nätverksmodellen.
  • HAProxy-lastbalanserare: HAProxy är en TCP/HTTP-lastbalanserare och proxyserver som sprider inkommande begäranden över flera slutpunkter. Varje arbetsbelastningskluster i en AKS på Azure Stack HCI-distribution har en HAProxy-lastbalanserare distribuerad och konfigurerad som en specialiserad virtuell dator.
  • Microsoft On-premises Cloud Service: Det här är Azure Stack HCI-molnleverantören som möjliggör skapande och hantering av den virtualiserade miljö som är värd för Kubernetes i ett lokalt Azure Stack HCI-kluster eller Windows Server-kluster. Nätverksmodellen följt av ditt Azure Stack HCI- eller Windows Server-kluster avgör den IP-adressallokeringsmetod som används av Microsofts lokala molntjänst. Mer information om nätverksbegrepp som implementeras av Microsofts lokala molntjänst finns i Begrepp för Node-nätverk.

Kubernetes-nätverk

I AKS på Azure Stack HCI kan du distribuera ett kluster som använder någon av följande nätverksmodeller:

  • Flannel Overlay-nätverk – Nätverksresurserna skapas och konfigureras vanligtvis när klustret distribueras.
  • Project Calico-nätverk – Den här modellen erbjuder ytterligare nätverksfunktioner, till exempel nätverksprinciper och flödeskontroll.

Båda nätverksimplementeringarna använder en överläggsnätverkskonfigurationsmodell, som tillhandahåller en IP-adresstilldelning som är frånkopplad från resten av datacenternätverket.

Mer information om överläggsnätverk finns i Introduktion: Kubernetes Overlay Networking för Windows.

Mer information om calico-nätverkets plugin-program och principer finns i Komma igång med Calico-nätverksprincipen.

Jämföra nätverksmodeller

Flanell

Kommentar

Flannel CNI gick i pension i december 2023.

Flanell är ett virtuellt nätverkslager som utformats specifikt för containrar. Flannel skapar ett platt nätverk som överlagrar värdnätverket. Alla containrar/poddar tilldelas en IP-adress i det här överläggsnätverket och kommunicerar direkt genom att ansluta till varandras IP-adress.

Kalikå

Calico är en nätverks- och nätverkssäkerhetslösning med öppen källkod för containrar, virtuella datorer och interna värdbaserade arbetsbelastningar. Calico stöder flera dataplan, inklusive: ett Linux eBPF-dataplan, ett Linux-nätverksdataplan och ett Windows HNS-dataplan.

Funktioner

Kapacitet Flanell Kalikå
Nätverksprinciper Nej Ja
IPv6 Nej Ja
Skikt som används L2 (VxLAN) L2 (VxLAN)
Distribuera kluster i ett befintligt eller nytt virtuellt nätverk Ja Ja
Windows-stöd Ja Ja
Poddanslutning Ja Ja
Podd-VM-anslutning, virtuell dator i samma nätverk Nej Ja
Podd-VM-anslutning, virtuell dator i olika nätverk Ja Ja
Kubernetes-tjänster Ja Ja
Exponera via lastbalanserare Ja Ja
Nätverk Många nätverk i samma kluster med flera daemon Många nätverk i samma kluster
Distribution Linux: DaemonSet Linux: DaemonSet
Windows: Tjänst Windows: Tjänst
Kommandorad inget calicoctl

Viktigt!

För närvarande är standardvalet att använda Calico i ett överläggsnätverksläge. Om du vill aktivera Flannel använder du parametern -primaryNetworkPlugin för New-AksHciCluster PowerShell-kommandot och anger flannel som värde. Det här värdet kan inte ändras när du har distribuerat klustret och det gäller för både Windows- och Linux-klusternoder.

Till exempel:

New-AksHciCluster -name MyCluster -primaryNetworkPlugin 'flannel'

Nästa steg

Den här artikeln beskriver nätverksbegrepp för containrar i AKS-noder på Azure Stack HCI. Mer information om AKS om Azure Stack HCI-begrepp finns i följande artiklar: