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 belastningsutjämning dina program för att skapa högtillgängliga program.

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 endast 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 Load Balancer-resurs, 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 den inkommande trafiken kan du använda en ingresskontrollant.

Anteckning

När du distribuerar ett målkluster som delar ett nätverk med ett annat målkluster finns det risk för en konflikt med lastbalanserarens IP-adress. 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å slumpmässiga problem med nätverksanslutningen 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 i 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å den övergripande nätverkskonfigurationen 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

Kubernetes tillhandahåller ett abstraktionslager för virtuella nätverk för att ge åtkomst till dina program eller programkomponenter för att kommunicera med varandra. Kubernetes-noder är anslutna till det virtuella nätverket och kan tillhandahålla inkommande och utgående anslutningar 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 enskild IP-adress eller 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 virtuella nätverk för AKS på 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 lastbalanseringsresurs. 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:

  • API-server för Kubernetes-kluster: 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ärdar för containerbaserade program. Förutom kontrollplansnoderna har varje kluster minst en arbetsnod. För ett AKS-kluster konfigureras Kubernetes-noder som virtuella datorer. Dessa virtuella datorer skapas som virtuella datorer med hög tillgänglighet i Azure Stack HCI. Mer information finns i Avsnittet om nodnätverksbegrepp.
  • 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.
  • Microsofts lokala molntjänst: 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 vilken METOD för IP-adressallokering som används av Microsofts lokala molntjänst. Mer information om nätverksbegrepp som implementeras av Microsofts lokala molntjänst finns i Avsnittet om nätverksbegrepp för noder.

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 nätverkskonfigurationsmodell för överlägg, 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-nätverk för Windows.

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

Jämföra nätverksmodeller

Flanell

Flannel ä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

Funktion Flanell Kalikå
Nätverksprinciper Inga Ja
IPv6 Inga Ja
Skikt som används L2 (VxLAN) L2 (VxLAN)
Distribuera kluster i ett befintligt eller nytt virtuellt nätverk Ja Yes
Windows-stöd Ja Yes
Pod-Pod anslutning Ja Yes
Podd-VM-anslutning, virtuell dator i samma nätverk Inga Ja
Podd-VM-anslutning, virtuell dator i olika nätverk Ja Yes
Kubernetes Services Ja Yes
Exponera via lastbalanserare Ja Yes
Nätverk Många nätverk i samma kluster med multidaemon 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.

Här är ett 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: