Share via


Application Gateway for Containers-onderdelen

Dit artikel bevat gedetailleerde beschrijvingen en vereisten voor onderdelen van Application Gateway for Containers. Informatie over hoe Application Gateway for Containers binnenkomende aanvragen accepteert en deze doorstuurt naar een back-enddoel. Zie Wat is Application Gateway voor containers voor een algemeen overzicht van Application Gateway for Containers.

Kernonderdelen

  • Een Application Gateway for Containers-resource is een bovenliggende Azure-resource waarmee het besturingsvlak wordt geïmplementeerd.
  • Het besturingsvlak is verantwoordelijk voor het organiseren van proxyconfiguratie op basis van de intentie van de klant.
  • Application Gateway for Containers heeft twee onderliggende resources; koppelingen en front-endens.
    • Onderliggende resources zijn exclusief voor alleen de bovenliggende Application Gateway voor containers en worden mogelijk niet verwezen door een andere Application Gateway voor containerresource.

Front-ends voor Application Gateway for Containers

  • Een front-endresource van Application Gateway for Containers is een onderliggende Azure-resource van de bovenliggende application gateway for Containers-resource.
  • Een front-end voor Application Gateway for Containers definieert het ingangspuntclientverkeer moet worden ontvangen door een bepaalde Application Gateway for Containers.
    • Een front-end kan niet worden gekoppeld aan meerdere Application Gateway for Containers.
    • Elke front-end biedt een unieke FQDN waarnaar kan worden verwezen door de CNAME-record van een klant.
    • Privé-IP-adressen worden momenteel niet ondersteund.
  • Eén Application Gateway for Containers kan meerdere front-ends ondersteunen.

Toepassingsgateway voor containers-koppelingen

  • Een Application Gateway for Containers-koppelingsresource is een onderliggende Azure-resource van de bovenliggende resource van Application Gateway for Containers.
  • Een application gateway for Containers-koppeling definieert een verbindingspunt in een virtueel netwerk. Een koppeling is een 1:1-toewijzing van een koppelingsresource aan een Azure-subnet dat is gedelegeerd.
  • Application Gateway voor containers is ontworpen om meerdere koppelingen mogelijk te maken.
    • Op dit moment is het huidige aantal koppelingen momenteel beperkt tot 1.
  • Tijdens het maken van een koppeling wordt het onderliggende gegevensvlak ingericht en verbonden met een subnet binnen het gedefinieerde subnet van het virtuele netwerk.
  • Elke koppeling moet ervan uitgaan dat ten minste 256 adressen beschikbaar zijn in het subnet op het moment van inrichten.
    • Minimaal /24 subnetmasker voor elke implementatie (ervan uitgaande dat er eerder geen resources zijn ingericht in het subnet).
      • Als n aantal Application Gateway for Containers is ingericht, waarbij wordt aangenomen dat elke Application Gateway for Containers één koppeling bevat en het doel is om hetzelfde subnet te delen, moeten de beschikbare vereiste adressen n*256 zijn.
    • Alle koppelingsresources van Application Gateway for Containers moeten overeenkomen met dezelfde regio als de bovenliggende resource van Application Gateway for Containers.

Application Gateway for Containers ALB Controller

  • Een Application Gateway for Containers ALB-controller is een Kubernetes-implementatie die de configuratie en implementatie van Application Gateway for Containers organiseert door Kubernetes zowel aangepaste resources als resourceconfiguraties te bekijken, zoals, maar niet beperkt tot, inkomend verkeer, gateway en ApplicationLoadBalancer. Het maakt gebruik van beide ARM/Application Gateway for Containers-configuratie-API's om de configuratie door te geven aan de Application Gateway for Containers Azure-implementatie.
  • DE ALB-controller wordt geïmplementeerd/geïnstalleerd via Helm.
  • DE ALB-controller bestaat uit twee actieve pods.
    • de pod van de alb-controller is verantwoordelijk voor het organiseren van de intentie van de klant naar Application Gateway voor de taakverdelingsconfiguratie van containers.
    • alb-controller-bootstrap pod is verantwoordelijk voor het beheer van CRD's.

Azure/algemene concepten

Privé IP-adres

  • Een privé-IP-adres is niet expliciet gedefinieerd als een Azure Resource Manager-resource. Een privé-IP-adres verwijst naar een specifiek hostadres binnen het subnet van een bepaald virtueel netwerk.

Delegatie van subnet

  • Microsoft.ServiceNetworking/trafficControllers is de naamruimte die wordt gebruikt door Application Gateway for Containers en kan worden gedelegeerd aan het subnet van een virtueel netwerk.
  • Wanneer delegering plaatsvindt, vindt het inrichten van Application Gateway for Containers-resources niet plaats en is er ook geen exclusieve toewijzing aan een Application Gateway for Containers-koppelingsresource.
  • Een willekeurig aantal subnetten kan een subnetdelegering hebben die hetzelfde is of verschilt van Application Gateway for Containers. Zodra de service is gedefinieerd, kunnen er geen andere resources, behalve de gedefinieerde service, worden ingericht in het subnet, tenzij deze expliciet is gedefinieerd door de implementatie van de service.

Door de gebruiker toegewezen beheerde identiteit

  • Beheerde identiteiten voor Azure-resources elimineren de noodzaak om referenties in code te beheren.
  • Een door de gebruiker beheerde identiteit is vereist voor elke Azure Load Balancer-controller om wijzigingen aan te brengen in Application Gateway for Containers.
  • AppGw for Containers Configuration Manager is een ingebouwde RBAC-rol waarmee DE ALB-controller toegang heeft tot de Application Gateway for Containers-resource en deze kan configureren.

Notitie

De rol AppGw for Containers Configuration Manager heeft machtigingen voor gegevensacties die de rollen Eigenaar en Inzender niet hebben. Het is essentieel dat de juiste machtigingen worden gedelegeerd om problemen met DE ALB-controller die wijzigingen aanbrengt in de Application Gateway for Containers-service te voorkomen.

Hoe Application Gateway for Containers een aanvraag accepteert

Elke front-end voor Application Gateway voor containers biedt een gegenereerde Fully Qualified Domain Name die wordt beheerd door Azure. De FQDN kan als zodanig worden gebruikt of klanten kunnen ervoor kiezen om de FQDN te maskeren met een CNAME-record.

Voordat een client een aanvraag naar Application Gateway for Containers verzendt, lost de client een CNAME op die verwijst naar de FQDN van de front-end; of de client kan de FQDN die wordt geleverd door Application Gateway for Containers rechtstreeks oplossen met behulp van een DNS-server.

De DNS-resolver vertaalt de DNS-record naar een IP-adres.

Wanneer de client de aanvraag initieert, wordt de opgegeven DNS-naam als hostheader doorgegeven aan Application Gateway for Containers op de gedefinieerde front-end.

Een set routeringsregels evalueert hoe de aanvraag voor die hostnaam moet worden geïnitieerd naar een gedefinieerd back-enddoel.

Hoe Application Gateway for Containers een aanvraag routeert

HTTP/2-aanvragen

Application Gateway for Containers biedt volledige ondersteuning voor HTTP/2-protocol voor communicatie van de client naar de front-end. Communicatie van Application Gateway for Containers naar het back-enddoel maakt gebruik van het HTTP/1.1-protocol. De HTTP/2-instelling is altijd ingeschakeld en kan niet worden gewijzigd. Als clients liever HTTP/1.1 gebruiken voor hun communicatie met de front-end van Application Gateway for Containers, kunnen ze dienovereenkomstig blijven onderhandelen.

Wijzigingen in de aanvraag

Application Gateway for Containers voegt drie extra headers toe aan alle aanvragen voordat aanvragen worden gestart vanuit Application Gateway for Containers naar een back-enddoel:

  • x-forwarded-for
  • x-forwarded-proto
  • x-request-id

x-forwarded-for is het IP-adres van de oorspronkelijke aanvrager. Als de aanvraag via een proxy wordt verzonden, voegt de headerwaarde het ontvangen adres toe, door komma's gescheiden. In voorbeeld: 1.2.3.4,5.6.7.8; waarbij 1.2.3.4 het IP-adres van de client is voor de proxy vóór Application Gateway for Containers, en 5.6.7.8 het adres is van het doorsturen van proxyverkeer naar Application Gateway for Containers.

x-forwarded-proto retourneert het protocol dat is ontvangen door Application Gateway for Containers van de client. De waarde is http of https.

x-request-id is een unieke guid die wordt gegenereerd door Application Gateway for Containers voor elke clientaanvraag en wordt weergegeven in de doorgestuurde aanvraag naar het back-enddoel. De guid bestaat uit 32 alfanumerieke tekens, gescheiden door streepjes (bijvoorbeeld: d23387ab-e629-458a-9c93-6108d374bc75). Deze GUID kan worden gebruikt om een aanvraag te correleren die is ontvangen door Application Gateway for Containers en geïnitieerd naar een back-enddoel zoals gedefinieerd in toegangslogboeken.

Time-outs aanvragen

Application Gateway for Containers dwingt de volgende time-outs af wanneer aanvragen worden geïnitieerd en onderhouden tussen de client, Application Gateway for Containers en de back-end.

Timeout Duur Beschrijving
Time-out aanvraag 60 seconden de tijd waarvoor Application Gateway voor Containers wacht op het antwoord van het back-enddoel.
Time-out voor HTTP-inactiviteit 5 minuten Time-out voor inactiviteit voordat u een HTTP-verbinding sluit.
Time-out voor niet-actieve stroom 5 minuten Time-out voor inactiviteit voordat u een afzonderlijke stream sluit die wordt uitgevoerd door een HTTP-verbinding.
Time-out voor upstream Verbinding maken 5 seconden tijd voor het tot stand brengen van een verbinding met het back-enddoel.