Översikt över CNI-nätverk i Azure Kubernetes Service (AKS)

Kubernetes använder CNI-plugin-program (Container Networking Interface) för att hantera nätverk i Kubernetes-kluster. CNI-plugin-program hanterar tilldelning av IP-adresser till poddar, routning av nätverkstrafik mellan poddar, routning av Kubernetes-tjänsttrafik med mera.

Azure Kubernetes Service (AKS) innehåller flera CNI-nätverkskonfigurationer som du kan använda i dina kluster, beroende på dina nätverkskrav. När du planerar poddnätverk väljer du ett IPAM-alternativ (IPAM) och en routnings- och transportteknik för nätverksdataplanet.

Nätverksmodeller i AKS

Om du väljer ett IPAM-alternativ för ditt AKS-kluster beror det till stor del på vilken nätverksmodell som passar dina behov bäst. Varje modell har sina egna fördelar och nackdelar som du bör tänka på när du planerar ditt AKS-kluster.

AKS använder två huvudsakliga nätverksmodeller:

  • Överläggsnätverk:

    • Bevarar IP-adressutrymme för virtuella nätverk (VNet) genom att använda logiskt separata CIDR-intervall för poddar.
    • Ger maximalt stöd för klusterskala.
    • Ger enkel hantering av IP-adresser.
  • Platt nätverk:

    • Ger fullständig VNet-anslutning för poddar. Poddar kan nås direkt via sin privata IP-adress från anslutna nätverk.
    • Kräver stort, icke-fragmenterat IP-adressutrymme för virtuella nätverk.

Båda nätverksmodellerna stöder flera IPAM-alternativ. De största skillnaderna mellan modellerna är hur du tilldelar podd-IP-adresser och hur trafiken lämnar klustret.

För Azure CNI är IPAM-alternativet separat från nätverksdataplanet. Du kan använda Azure CNI som drivs av Cilium-dataplanet med Azure CNI-överlägg, Azure CNI-poddundernät eller Azure CNI-nodundernät. Mer information om IPAM- och dataplansalternativ finns i Planera poddnätverk för AKS.

Överläggsnätverk

Överläggsnätverk i AKS tilldelar podd-IP-adresser från en separat podd-CIDR som skiljer sig från nodundernätet i det virtuella nätverket. Den här konfigurationen möjliggör enklare och ofta bättre skalbarhet än den platta nätverksmodellen.

I överläggsnätverk kan poddar kommunicera direkt med varandra. Trafik som lämnar klustret SNAT:as (Source Network Address Translated) till nodens IP-adress. Inkommande podd-IP-trafik dirigeras via en tjänst, till exempel en lastbalanserare. Poddens IP-adress är sedan "dold" bakom nodens IP-adress. Den här metoden minskar antalet IP-adresser som krävs för virtuella nätverk i dina kluster.

Diagram som visar två noder, med tre poddar vardera, som körs i ett överläggsnätverk. Poddtrafik till slutpunkter utanför klustret dirigeras via nätverksadressöversättning.

För överläggsnätverk tillhandahåller AKS Azure CNI-överlägg. Använd det här IPAM-alternativet för de flesta scenarier.

Platta nätverk

Till skillnad från ett överläggsnätverk tilldelar en platt nätverksmodell i AKS IP-adresser till poddar från ett undernät i samma Azure virtuella nätverk som AKS-noderna. För privat nätverkstrafik beror källans IP-adress som ett mål ser på IPAM-alternativet. Azure CNI Pod Subnet bevarar poddens IP-adress i anslutna virtuella nätverk. Med Azure CNI Node-undernät kan mål i klustrets virtuella nätverk se poddens IP-adress, men mål utanför det virtuella klustrets virtuella nätverk ser nodens IP-adress. När utgående internet har aktiverats avgör klustrets konfigurerade utgående metod ip-adressen för den offentliga källan som internetmål ser.

Diagram som visar två noder, med tre poddar vardera, som körs i en platt nätverksmodell.

AKS tillhandahåller två Azure CNI IPAM-alternativ för platt nätverk:

  • Azure CNI Pod Subnet, det rekommenderade IPAM-alternativet för scenarier med platta nätverk.
  • Azure CNI Node Subnet, en äldre CNI-modell för platta nätverk. I allmänhet rekommenderar vi att du endast använder det om du behöver ett hanterat virtuellt nätverk för klustret.

Välj ett IPAM-alternativ för AKS

När du väljer ett IPAM-alternativ bör du överväga flera faktorer. Varje nätverksmodell har sina egna fördelar och nackdelar. Det bästa valet för klustret beror på dina specifika krav.

Jämförelse av användningsfall

IPAM-alternativ Nätverksmodell Höjdpunkter för användningsfall
Azure CNI-överlägg Overlay • Bäst för att bevara IP-adresser för virtuella nätverk
• Maximalt antal noder som stöds av API-servern plus 250 poddar per nod
• Enklare konfiguration
• Ingen direkt extern åtkomst till pod-IP-adress
Azure CNI Pod-undernät Flat • Direkt åtkomst till externa poddar
• Lägen för effektiv IP-användning för virtuella nätverk eller stöd för stor klusterskala (förhandsversion)
Kubenet (äldre) Overlay • Går i pension den 31 mars 2028; migrera till Azure CNI-överlägg före pensionsdatumet
• Prioritering av IP-bevarande
• Begränsad skala
• Manuell väghantering
Azure CNI Node-undernät (äldre) Flat • Direkt åtkomst till externa poddar
• Enklare konfiguration
• Begränsad skala
• Ineffektiv användning av IP-adresser för virtuella nätverk

Jämförelse av funktioner

Feature Azure CNI-överlägg Azure CNI Pod-undernät Azure CNI Node-undernät (äldre) Kubenet (äldre)
Distribution av ett kluster i ett befintligt eller nytt virtuellt nätverk Supported Supported Supported Stöds med manuella användardefinierade rutter (UDRs)
Anslutning mellan podd och virtuell dator (VM), med den virtuella datorn i samma virtuella nätverk eller ett peer-kopplat virtuellt nätverk Pod startad Båda sätten Båda sätten Pod startad
Lokal åtkomst via virtuellt privat nätverk (VPN) och Azure ExpressRoute Pod startad Båda sätten Båda sätten Pod startad
Åtkomst till tjänstslutpunkter Supported Supported Supported Supported
Exponering av tjänster via lastbalanserare Supported Supported Supported Supported
Exponering av tjänster via ingresskontroller för Azure Application Gateway Supported Supported Supported Supported
Exponering av tjänster via Application Gateway för containrar Supported Supported Supported Stöds inte
Windows-nodpooler Supported Supported Supported Stöds inte
Standard-Azure DNS och privata zoner Supported Supported Supported Supported
Delning av virtuella nätverksundernät i flera kluster Supported Supported Supported Stöds inte

Stödomfång mellan nätverksmodeller

Beroende på vilket IPAM-alternativ du använder kan du distribuera de virtuella nätverksresurserna för klustret på något av följande sätt:

  • Den Azure plattformen kan automatiskt skapa och konfigurera de virtuella nätverksresurserna när du skapar ett AKS-kluster.
  • Du kan skapa och konfigurera de virtuella nätverksresurserna manuellt och ansluta till dessa resurser när du skapar AKS-klustret.

Även om funktioner som tjänstslutpunkter eller UDR stöds, definierar supportprinciperna för AKS vilka ändringar du kan göra. Till exempel:

  • Om du manuellt skapar de virtuella nätverksresurserna för ett AKS-kluster stöds du när du konfigurerar dina egna UDR eller tjänstslutpunkter.
  • Om Azure-plattformen automatiskt skapar de virtuella nätverksresurserna för ditt AKS-kluster kan du inte ändra dessa AKS-hanterade resurser manuellt för att konfigurera dina egna UDR eller tjänstslutpunkter.

Krav för AKS CNI-nätverk

Tänk på följande när du planerar nätverkskonfigurationen för AKS:

  • Om du inte använder ett isolerat nätverkskluster måste det virtuella nätverket för AKS-klustret tillåta utgående Internetanslutning till nödvändiga slutpunkter. Nätverksisolerade kluster kan startas utan utgående Internetanslutning.

  • AKS-adressintervall har följande begränsningar:

    Reserverat CIDR-intervall Gäller för Tillstånd
    169.254.0.0/16 Adressintervall för kubernetes-tjänsten, podden och klustrets virtuella nätverk Alla AKS-kluster
    192.0.2.0/24 Adressintervall för kubernetes-tjänsten, podden och klustrets virtuella nätverk Alla AKS-kluster
    172.30.0.0/16 Adressintervall för kubernetes-tjänsten, podden och klustrets virtuella nätverk Alla AKS-kluster
    172.31.0.0/16 Adressintervall för kubernetes-tjänsten, podden och klustrets virtuella nätverk Alla AKS-kluster

    AKS avvisar podd-CIDR:er som överlappar ett reserverat intervall när klustret skapas eller uppdateras. Är till exempel 172.16.0.0/12 inte giltigt eftersom intervallet innehåller 172.30.0.0/16 och 172.31.0.0/16.

  • I scenarier där du tar med ditt eget virtuella nätverk måste klusteridentiteten som AKS-klustret använder ha minst behörighet som nätverksdeltagare i undernätet i det virtuella nätverket.

  • Om du definierar en anpassad roll i stället för att använda den inbyggda rollen Nätverksdeltagare ska du inkludera följande behörigheter:

    Tillåtelse Vid behov
    Microsoft.Network/virtualNetworks/subnets/join/action Alltid när du använder en anpassad roll
    Microsoft.Authorization/roleAssignments/write Alltid när du använder en anpassad roll
    Microsoft.Network/virtualNetworks/subnets/read Endast när du definierar dina egna undernät och CIDR:er
  • Det undernät som tilldelats AKS-nodpoolen kan inte vara ett delegerat undernät.

  • AKS tillämpar inte nätverkssäkerhetsgrupper (NSG:er) på sitt undernät och ändrar inte någon av de NSG:er som är associerade med det undernätet. Om du anger ett eget undernät och lägger till NSG:er som är associerade med det undernätet måste du se till att säkerhetsreglerna i NSG:erna tillåter trafik inom nodens CIDR-intervall. Om en NSG-neka-regel påverkar podd-CIDR-trafik med Azure CNI-överlägg måste du även tillåta trafik från nodens CIDR till podd-CIDR och från poddens CIDR till poddens CIDR på alla portar och protokoll. Mer information finns i Nätverkssäkerhetsgrupper med Azure CNI-överlägg.

  • Container Network Service (CNS) är en nodlokal tjänst inom Azure Kubernetes Service CNI-nätverk som allokerar, spårar och konfigurerar nätverk för poddar. Den här komponenten skickar telemetri (mått och loggar) som standard från klustret till en Microsoft hanterad Application Insights-slutpunkt för att möjliggöra snabbare felsökning av ip-adresstilldelningsproblem för poddnätverk.