Delen via


Wat is de controller voor inkomend verkeer van Application Gateway?

De Application Gateway Ingress Controller (AGIC) is een Kubernetes-toepassing, waardoor AKS-klanten (Azure Kubernetes Service) gebruik kunnen maken van de systeemeigen Load Balancer van Azure Application Gateway L7 om cloudsoftware beschikbaar te maken op internet. AGIC bewaakt het Kubernetes-cluster waarop het wordt gehost en werkt continu een Application Gateway bij, zodat geselecteerde services beschikbaar zijn voor internet.

De ingangscontroller wordt uitgevoerd in een eigen pod op de AKS van de klant. AGIC bewaakt een subset van Kubernetes-resources voor wijzigingen. De status van het AKS-cluster wordt omgezet in de toepassingsgateway-specifieke configuratie en toegepast op Azure Resource Manager (ARM).

Tip

Overweeg Application Gateway for Containers voor uw Kubernetes-oplossing voor inkomend verkeer. Zie quickstart: Application Gateway for Containers ALB Controller implementeren voor meer informatie.

Voordelen van de Application Gateway Ingress Controller

AGIC helpt de noodzaak te elimineren om een andere load balancer/publiek IP-adres voor het AKS-cluster te hebben en vermijdt meerdere sprongen in uw gegevenspad voordat verzoeken het AKS-cluster bereiken. Application Gateway praat rechtstreeks met pods met behulp van hun privé-IP-adres en vereist geen NodePort- of KubeProxy-services. Deze mogelijkheid biedt ook betere prestaties voor uw implementaties.

Ingress-controller wordt uitsluitend ondersteund door Standard_v2- en WAF_v2-SKU's, die ook bijdragen tot automatisch schalen. Application Gateway kan reageren op een toename of afname van de verkeersbelasting en schaal dienovereenkomstig, zonder dat er resources uit uw AKS-cluster worden verbruikt.

Als u Application Gateway gebruikt naast AGIC, kunt u uw AKS-cluster ook beveiligen door TLS-beleid en WAF-functionaliteit (Web Application Firewall) te bieden.

Azure Application Gateway + AKS

AGIC wordt geconfigureerd via de Kubernetes Ingress resource, samen met Service en Deployment-resources/pods. Het biedt veel functies, met behulp van de systeemeigen Application Gateway L7-load balancer van Azure. Om er een paar te noemen:

  • URL-omleiding
  • Affiniteit op basis van cookies
  • TLS termination
  • End-to-end TLS/Transportlaagbeveiliging
  • Ondersteuning voor openbare, privé- en hybride websites
  • Geïntegreerde Web Application Firewall

Verschil tussen Helm-implementatie en AKS-invoegtoepassing

Er zijn twee manieren om AGIC te implementeren voor uw AKS-cluster. De eerste manier is door Helm; de tweede is via AKS als een uitbreiding. Het belangrijkste voordeel van het implementeren van AGIC als AKS-invoegtoepassing is dat het eenvoudiger is dan implementeren via Helm. Voor een nieuwe installatie kunt u een nieuwe Application Gateway en een nieuw AKS-cluster implementeren met AGIC ingeschakeld als een invoegtoepassing in één regel in Azure CLI. De invoegtoepassing is ook een volledig beheerde service, die extra voordelen biedt, zoals automatische updates en verbeterde ondersteuning. Beide manieren om AGIC (Helm- en AKS-invoegtoepassing) te implementeren, worden volledig ondersteund door Microsoft. Bovendien biedt de invoegtoepassing een betere integratie met AKS als eersteklas invoegtoepassing.

De AGIC-invoegtoepassing wordt nog steeds geïmplementeerd als een pod in het AKS-cluster van de klant. Er zijn echter enkele verschillen tussen de Helm-implementatieversie en de invoegtoepassingsversie van AGIC. Hier volgt een lijst met verschillen tussen de twee versies:

  • Helm-implementatiewaarden kunnen niet worden gewijzigd op de AKS-add-on:
    • verbosityLevel is standaard ingesteld op 5
    • usePrivateIp is standaard ingesteld op onwaar; deze instelling kan worden overschreven door de aantekening use-private-ip
    • shared wordt niet ondersteund op een invoegtoepassing
    • reconcilePeriodSeconds wordt niet ondersteund op een invoegtoepassing
    • armAuth.type wordt niet ondersteund op een invoegtoepassing
  • AGIC geïmplementeerd via Helm ondersteunt ProhibitedTargets, wat betekent dat AGIC de Application Gateway specifiek kan configureren voor AKS-clusters zonder dat dit van invloed is op andere bestaande back-ends. De AGIC-invoegtoepassing biedt momenteel geen ondersteuning voor deze mogelijkheid.
  • Omdat de AGIC-invoegtoepassing een beheerde service is, worden klanten automatisch bijgewerkt naar de nieuwste versie van de AGIC-invoegtoepassing, in tegenstelling tot AGIC geïmplementeerd via Helm, waarbij de klant AGIC handmatig moet bijwerken.

Notitie

Klanten kunnen slechts één AGIC-invoegtoepassing per AKS-cluster implementeren en elke AGIC-invoegtoepassing kan momenteel slechts één Application Gateway targeten. Voor implementaties waarvoor meer dan één AGIC per cluster of meerdere AGIC's is vereist die gericht zijn op één Application Gateway, kunt u AGIC blijven gebruiken dat is geïmplementeerd via Helm.

Zowel de Helm- als de AGIC-invoegtoepassing bieden geen ondersteuning voor de ExternalName-service.

Containernetwerken en AGIC

Application Gateway Ingress Controller ondersteunt de volgende AKS-netwerkaanbiedingen:

  • Kubenet
  • CNI
  • CNI-overlay

Azure CNI en Azure CNI-overlay zijn de twee aanbevolen opties voor de controller voor inkomend verkeer van Application Gateway. Houd bij het kiezen van een netwerkmodel rekening met de gebruiksvoorbeelden voor elke CNI-invoegtoepassing en het type netwerkmodel dat wordt gebruikt:

CNI-plugin Netwerkmodel Hoogtepunten van toepassingssituaties
Azure CNI-overlay Overlappen - Het beste voor het behoud van IP-adressen van VNET
- Maximaal aantal knooppunten dat wordt ondersteund door API Server + 250 pods per knooppunt
- Eenvoudigere configuratie
-Geen directe IP-toegang tot externe pods
Azure CNI Pod-subnet Plat - Directe toegang tot externe pods
- Modi voor efficiënt VNet IP-gebruik of ondersteuning voor grootschalige clusterschaal
Subnet van Azure CNI-knooppunt Plat - Directe toegang tot externe pods
- Eenvoudigere configuratie
- Beperkte schaal
- Inefficiënt gebruik van VNet-IP's

Bij het inrichten van Application Gateway voor containers in een cluster waarvoor CNI-overlay of CNI is ingeschakeld, detecteert Application Gateway for Containers automatisch de beoogde netwerkconfiguratie. Er zijn geen wijzigingen nodig in de Gateway of Ingress API-configuratie om CNI Overlay of CNI op te geven.

Houd bij Azure CNI-overlay rekening met de volgende beperkingen:

  • AGIC Controller: U moet versie v1.9.1 of hoger uitvoeren om te kunnen profiteren van CNI-overlay.
  • Subnetgrootte: het application gateway-subnet moet een maximum /24 voorvoegsel zijn; per subnet wordt slechts één implementatie ondersteund.
  • Subnetdelegering: het subnetsubnet van Application Gateway moet subnetdelegering hebben voor Microsoft.Network/applicationGateways.
  • Regionale VNet-peering: Application Gateway geïmplementeerd in een virtueel netwerk in regio A en de AKS-clusterknooppunten in een virtueel netwerk in regio A worden niet ondersteund.
  • Globale VNet-peering: Application Gateway geïmplementeerd in een virtueel netwerk in regio A en de AKS-clusterknooppunten in een virtueel netwerk in regio B worden niet ondersteund.
  • Azure CNI-overlay met Application Gateway Ingress Controller wordt niet ondersteund in de Azure Government-cloud of Microsoft Azure beheerd door 21Vianet (Azure in China).

Notitie

Upgrade van het AKS-cluster van Kubenet of CNI naar CNI Overlay wordt automatisch gedetecteerd door de controller voor inkomend verkeer van Application Gateway. Het is raadzaam om de upgrade te plannen tijdens een onderhoudsvenster, omdat er verkeersonderbrekingen kunnen optreden. Het kan enkele minuten duren voordat de controller na de clusterupgrade ondersteuning voor CNI-overlay detecteert en configureert.

Waarschuwing

Zorg ervoor dat het Application Gateway-subnet een /24- of kleiner subnet is voordat u een upgrade uitvoert. Als u een upgrade uitvoert van CNI naar CNI-overlay met een groter subnet (bijvoorbeeld /23), leidt dit tot een storing en moet het Application Gateway-subnet opnieuw worden gemaakt met een ondersteunde subnetgrootte.

Volgende stappen