Komponenty služby Application Gateway pro kontejnery

Tento článek obsahuje podrobné popisy a požadavky pro komponenty služby Application Gateway pro kontejnery. Informace o tom, jak Služba Application Gateway pro kontejnery přijímá příchozí požadavky a směruje je do back-endového cíle, je k dispozici. Obecný přehled služby Application Gateway pro kontejnery najdete v tématu Co je Application Gateway pro kontejnery.

Základní součásti

  • Prostředek služby Application Gateway for Containers je nadřazený prostředek Azure, který nasadí řídicí rovinu.
  • Řídicí rovina zodpovídá za orchestraci konfigurace proxy serveru na základě záměru zákazníka.
  • Application Gateway pro kontejnery má dva podřízené prostředky; a front-endy.
    • Podřízené prostředky jsou výhradní pouze pro nadřazenou službu Application Gateway pro kontejnery, na které nemusí odkazovat jiná služba Application Gateway pro prostředek kontejneru.

Front-endy služby Application Gateway pro kontejnery

  • Front-endový prostředek služby Application Gateway pro kontejnery je podřízený prostředek služby Application Gateway for Containers.
  • Front-end služby Application Gateway pro kontejnery definuje klientský provoz vstupního bodu, který má přijímat daná služba Application Gateway for Containers.
    • Front-end není možné přidružit k více službě Application Gateway pro kontejnery.
    • Každý front-end poskytuje jedinečný plně kvalifikovaný název domény, na který může odkazovat záznam CNAME zákazníka.
    • Privátní IP adresy se v současné době nepodporují.
  • Jedna služba Application Gateway pro kontejnery může podporovat více front-endů.

Přidružení služby Application Gateway pro kontejnery

  • Prostředek přidružení služby Application Gateway for Containers je podřízeným prostředkem služby Application Gateway for Containers nadřazeného prostředku služby Application Gateway for Containers.
  • Přidružení služby Application Gateway for Containers definuje spojovací bod do virtuální sítě. Přidružení je mapování prostředku přidružení 1:1 na delegovanou podsíť Azure.
  • Služba Application Gateway pro kontejnery je navržená tak, aby umožňovala více přidružení.
    • V současné době je aktuální počet přidružení aktuálně omezen na 1.
  • Během vytváření přidružení se podkladová rovina dat zřídí a připojí k podsíti v rámci definované podsítě virtuální sítě.
  • Každé přidružení by mělo předpokládat, že v podsíti je v době zřizování k dispozici alespoň 256 adres.
    • Minimální maska podsítě /24 pro každé nasazení (za předpokladu, že v podsíti nebyly dříve zřízeny žádné prostředky).
      • Pokud se zřídí n počtu služby Application Gateway pro kontejnery, předpokládá se, že každá služba Application Gateway pro kontejnery obsahuje jedno přidružení a záměrem je sdílet stejnou podsíť, měly by být dostupné požadované adresy n*256.
    • Všechny prostředky přidružení služby Application Gateway for Containers by se měly shodovat se stejnou oblastí jako nadřazený prostředek služby Application Gateway for Containers.

Kontroler ALB služby Application Gateway pro kontejnery

  • Kontroler ALB služby Application Gateway pro kontejnery je nasazení Kubernetes, které orchestruje konfiguraci a nasazení služby Application Gateway for Containers sledováním vlastních prostředků i konfigurací prostředků Kubernetes, jako jsou například příchozí přenos dat, brána a ApplicationLoadBalancer. K rozšíření konfigurace do služby Application Gateway for Containers nasazení Azure používá obě rozhraní API pro konfiguraci ARM nebo Application Gateway pro kontejnery.
  • Ovladač ALB se nasadí nebo nainstaluje přes Helm.
  • Kontroler ALB se skládá ze dvou spuštěných podů.
    • Pod alb-controller zodpovídá za orchestraci záměru zákazníka do služby Application Gateway for Containers konfigurace vyrovnávání zatížení.
    • pod alb-controller-bootstrap zodpovídá za správu CRD.

Azure / obecné koncepty

Privátní IP adresa

  • Privátní IP adresa není explicitně definovaná jako prostředek Azure Resource Manageru. Privátní IP adresa by odkazovala na konkrétní adresu hostitele v rámci podsítě dané virtuální sítě.

Delegování podsítě

  • Microsoft.ServiceNetworking/trafficControllers je obor názvů přijatý službou Application Gateway pro kontejnery a může být delegován do podsítě virtuální sítě.
  • Když dojde k delegování, zřizování prostředků služby Application Gateway pro kontejnery se nestane ani neexistuje výhradní mapování na prostředek přidružení služby Application Gateway for Containers.
  • Libovolný počet podsítí může mít delegování podsítě, které je stejné nebo se liší od služby Application Gateway pro kontejnery. Po definování není možné do podsítě zřídit žádné jiné prostředky, než je definovaná služba, pokud ji explicitně nedefinuje implementace služby.

Spravovaná identita přiřazená uživatelem

  • Spravované identity pro prostředky Azure eliminují potřebu správy přihlašovacích údajů v kódu.
  • Pro každý kontroler Azure Load Balanceru se vyžaduje identita spravovaná uživatelem, aby bylo možné provádět změny ve službě Application Gateway pro kontejnery.
  • AppGw for Containers Configuration Manager je integrovaná role RBAC, která umožňuje kontroleru ALB přistupovat k prostředkům Služby Application Gateway pro kontejnery a konfigurovat je.

Poznámka:

Role AppGw for Containers Configuration Manageroprávnění akce dat, která role Vlastník a Přispěvatel nemají. Je důležité správně delegovat oprávnění, aby se zabránilo problémům s kontrolerem ALB, který provádí změny ve službě Application Gateway for Containers.

Jak Application Gateway pro kontejnery přijímá požadavek

Každá front-end služby Application Gateway pro kontejnery poskytuje vygenerovaný plně kvalifikovaný název domény spravovaný Azure. Plně kvalifikovaný název domény se může použít tak, jak je, nebo se zákazníci mohou rozhodnout maskovat plně kvalifikovaný název domény záznamem CNAME.

Než klient odešle požadavek do služby Application Gateway for Containers, klient přeloží CNAME, který odkazuje na plně kvalifikovaný název domény front-endu; nebo klient může přímo přeložit plně kvalifikovaný název domény poskytovaný službou Application Gateway pro kontejnery pomocí serveru DNS.

Překladač DNS přeloží záznam DNS na IP adresu.

Když klient zahájí požadavek, předá se zadaný název DNS jako hlavička hostitele službě Application Gateway for Containers na definovaném front-endu.

Sada pravidel směrování vyhodnocuje, jak má být požadavek na tento název hostitele inicializován do definovaného back-endového cíle.

Jak Application Gateway pro kontejnery směruje požadavek

Požadavky HTTP/2

Application Gateway for Containers plně podporuje protokol HTTP/2 pro komunikaci z klienta do front-endu. Komunikace ze služby Application Gateway pro kontejnery do back-endového cíle používá protokol HTTP/1.1. Nastavení HTTP/2 je vždy povolené a nedá se změnit. Pokud klienti dávají přednost použití protokolu HTTP/1.1 pro komunikaci s front-endem služby Application Gateway pro kontejnery, mohou i nadále vyjednávat odpovídajícím způsobem.

Úpravy žádosti

Služba Application Gateway for Containers vloží do všech požadavků tři další hlavičky před zahájením požadavků ze služby Application Gateway pro kontejnery do back-endového cíle:

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

x-forwarded-for je IP adresa klienta původního žadatele. Pokud požadavek prochází proxy serverem, hodnota hlavičky připojí přijatou adresu oddělenou čárkou. Příklad: 1.2.3.4,5.6.7.8; kde 1.2.3.4 je IP adresa klienta na proxy server před službou Application Gateway pro kontejnery a 5.6.7.8 je adresa proxy serveru předávacího provoz do služby Application Gateway for Containers.

X-forwarded-proto vrátí protokol přijatý službou Application Gateway pro kontejnery z klienta. Hodnota je http nebo https.

x-request-id je jedinečný identifikátor GUID vygenerovaný službou Application Gateway pro kontejnery pro každý požadavek klienta a předaný v předávané žádosti do cíle back-endu. Identifikátor GUID se skládá z 32 alfanumerických znaků oddělených pomlčkami (například: aaaa0000-bb11-2222-33cc-4444444dd). Tento identifikátor GUID lze použít ke korelaci požadavku přijatého službou Application Gateway for Containers a inicializován do back-endového cíle, jak je definováno v protokolech přístupu.

Časové limity požadavků

Služba Application Gateway pro kontejnery vynucuje následující časové limity, protože mezi klientem, službou Application Gateway pro kontejnery a back-endem se inicialují a udržují následující časové limity.

Timeout Doba trvání Popis
Časový limit požadavku 60 sekund doba, po kterou služba Application Gateway pro kontejnery čeká na odpověď cíle back-endu.
Vypršení časového limitu nečinnosti HTTP 5 minut Časový limit nečinnosti před zavřením připojení HTTP
Časový limit nečinnosti streamu 5 minut Časový limit nečinnosti před zavřením jednotlivého datového proudu přenášeného připojením HTTP
Upstreamový časový limit připojení 5 sekund čas vytvoření připojení k back-endovému cíli.