Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Upozornění
Kubernetes SIG Network a Výbor pro reakci na zabezpečení oznámily ukončeníprojektu Ingress NGINX, jehož údržba skončila v březnu 2026. Microsoft poskytne oficiální podporu pro zásadní opravy zabezpečení pro prostředky NGINX Ingress směrování aplikací včetně listopadu 2026.
AKS je v souladu s upstream Kubernetes a používá Gateway API jako dlouhodobý standard pro správu ingress a provozu na úrovni L7. Migrujte před ukončením podpory v listopadu 2026 na základě vašich požadavků:
- uživatelé doplňku Application Routing a uživatelé OSS NGINX: Migrujte na implementaci rozhraní Gateway API pro Application Routing pro prostředí pro správu příchozího přenosu dat založeného na rozhraní API brány nebo do služby Application Gateway for Containers, která podporuje rozhraní API příchozího přenosu dat i rozhraní API brány.
- Požadavky na síť služeb nebo pokročilé příchozí přenosy dat: Zvažte příchozí přenos dat rozhraní API brány pomocí doplňku Istio Service Mesh. Můžete ho použít pro ingress, aniž byste do svých úloh museli nasazovat sidecar kontejnery. Pokud potřebujete limity velikosti hlavičky požadavku a těla, skripty Lua nebo omezování rychlosti, podívejte se na omezení a alternativy rozhraní Gateway API.
Jedním ze způsobů, jak směrovat provoz protokolu HTTP a zabezpečeného protokolu (HTTPS) do aplikací spuštěných v clusteru Azure Kubernetes Service (AKS), je použití objektu Kubernetes Ingress. Když povolíte doplněk směrování aplikací s využitím NGINX, vytvoří, nakonfiguruje a spravuje kontroler Ingress v clusteru AKS.
V tomto článku se dozvíte, jak povolit spravovaný kontroler příchozího přenosu dat NGINX a nakonfigurovat objekt příchozího přenosu dat pro směrování provozu do aplikace v clusteru AKS.
Doplněk směrování aplikací s funkcemi NGINX
Doplněk směrování aplikací s NGINX poskytuje následující:
- Snadná konfigurace spravovaných NGINX Ingress kontrolerů založených na Kubernetes NGINX Ingress kontroleru.
- Integrace s Azure DNS pro správu veřejných a privátních zón
- Ukončení protokolu SSL s certifikáty uloženými ve službě Azure Key Vault
Další konfigurace najdete tady:
- Konfigurace DNS a SSL.
- Konfigurace doplňku směrování aplikací
- Nakonfigurujte interní NGINX Ingress controller pro privátní zónu DNS Azure.
Důležité
Od 30. září 2027 už Azure Kubernetes Service (AKS) nepodporuje doplněk Open Service Mesh (OSM). Nadřazený projekt Open Service Mesh byl vyřazen.
Pokud váš cluster používá doplněk OSM, proveďte migraci na doplněk Istio před datem ukončení podpory. Toto oznámení o ukončení podpory se vztahuje pouze na spravovaný doplněk OSM a netýká se instalací service meshe s otevřeným zdrojovým kódem ani samostatně spravovaných instalací. Postup migrace najdete v pokynech k migraci z doplňku OSM na doplněk Istio. Pokud chcete mít přehled o oznámeních a aktualizacích AKS, postupujte podle poznámek k verzi AKS.
Požadavky
- Předplatné Azure. Pokud ještě nemáte předplatné Azure, můžete si vytvořit bezplatný účet.
- Azure CLI verze 2.54.0 nebo novější je nainstalovaná a nakonfigurovaná. Verzi zjistíte spuštěním příkazu
az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
Omezení
Doplněk pro směrování aplikací podporuje až pět zón Azure DNS.
Doplněk pro směrování aplikací je možné povolit jenom v clusterech AKS se spravovanou identitou.
Všechny globální zóny Azure DNS integrované s doplňkem musí být ve stejné skupině prostředků.
Veškeré privátní DNS zóny Azure integrované s doplňkem musí být ve stejné skupině prostředků.
Úpravy ingress-nginx
ConfigMapveapp-routing-systemjmenném prostoru se nepodporují.Pokud hodnota anotace úryvku odpovídá některé z následujících blokovaných hodnot, Ingress není nakonfigurován:
Blokovaná hodnota Účinek load_moduleIngress není nakonfigurován. lua_packageIngress není nakonfigurován. _by_luaIngress není nakonfigurován. locationIngress není nakonfigurován. rootIngress není nakonfigurován. proxy_passIngress není nakonfigurován. serviceaccountIngress není nakonfigurován. {Ingress není nakonfigurován. }Ingress není nakonfigurován. 'Ingress není nakonfigurován. Doplněk oficiálně nepodporuje injektování kontejnerů sidecar, které nespravuje Microsoft (například vlastních agentů pro telemetrii, protokolování nebo zabezpečení), do podů proxy ingress-nginx, které spravuje. Pokud se rozhodnete vložit vlastní sidecar do spravovaného proxy podu, Microsoft v případě jakýchkoli problémů, na které narazíte, poskytuje pouze omezenou podporu.
Clustery pro více tenantů
Důležité
Spravovaný řadič Ingressu NGINX neizoluje tenanty na úrovni prostoru názvů. Nepoužívejte ho jako hranici zabezpečení mezi tenanty, kteří sdílejí cluster.
Spravovaný kontroler NGINX Ingress je založený na upstreamovém projektu ingress-nginx. Projekt ingress-nginx předpokládá, že uživatelé, kteří mohou vytvářet objekty Ingress, jsou správci clusteru. Projekt říká, že se nemá používat ingress-nginx v produkčních clusterech s více tenanty. Další informace najdete v tématu Kubernetes s více tenanty v nejčastějších dotazech k ingress-nginx.
Následující chování překračuje hranice oboru názvů:
- Jeden kontroler NGINX Ingress obsluhuje objekty Ingress své třídy Ingress ze všech jmenných prostorů. Kontroler slučuje pravidla těchto objektů Ingress do jedné konfigurace NGINX. Další informace najdete v tématu Jak to funguje.
- Ingress v jednom jmenném prostoru může přidávat cesty k hostiteli, který používá Ingress v jiném jmenném prostoru. Pokud dva objekty Ingress používají stejný host, nejstarší objekt Ingress řídí nastavení protokolu TLS a anotace na úrovni serveru pro daný host. Pokud také používají stejnou cestu, na nejstarší objekt Ingress bude směrován provoz pro tuto cestu.
- Doplněk umožňuje anotace úryvků kódu s výjimkou blokovaných hodnot v omezeních. Anotace snippetů přidávají konfiguraci NGINX do sdíleného controlleru.
- NGINX Ingress controller může číst Secrety ve všech jmenných prostorech. Doplněk povoluje možnost
allow-cross-namespace-resources. Pomocí této možnosti můžou některé anotace odkazovat na Secret nebo objekt ConfigMap v jiném jmenném prostoru. - Uživatel, který může vytvořit Ingress, může použít libovolnou Ingress class. Samostatný
NginxIngressControllerpro každého klienta neizoluje klienty.
Pro snížení tohoto rizika použijte tyto postupy:
- Udělte oprávnění vytvářet nebo aktualizovat objekty Ingress pouze uživatelům, kterým důvěřujete na stejné úrovni jako správcům clusteru.
- Pokud si tenanti navzájem nedůvěřují, použijte pro každého tenanta samostatný cluster. Další informace naleznete v tématu Fyzicky izolované klastry.
Povolení doplňku pro směrování aplikací pomocí Azure CLI
Povolení v novém clusteru
Pokud chcete povolit směrování aplikací v novém clusteru, použijte az aks create příkaz a --enable-app-routing zadejte příznak.
az aks create \
--resource-group <resource-group-name> \
--name <cluster-name> \
--location <location> \
--enable-app-routing \
--generate-ssh-keys
Povolte na existujícím clusteru
Pokud chcete povolit směrování aplikací v existujícím clusteru, použijte az aks approuting enable příkaz.
az aks approuting enable --resource-group <resource-group-name> --name <cluster-name>
Připojení ke clusteru AKS
Pokud se chcete připojit ke clusteru Kubernetes z místního počítače, použijte kubectlklienta příkazového řádku Kubernetes. Můžete ho nainstalovat místně pomocí příkazu az aks install-cli. Pokud používáte Azure Cloud Shell, kubectl je už nainstalovaný.
Nakonfigurujte kubectl pro připojení ke svému Kubernetes clusteru pomocí příkazu az aks get-credentials.
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
Nasazení aplikace
Objekty Kubernetes Ingress definují pravidla směrování pro Ingress controller. Pomocí spravované třídy Ingress doplňku pro směrování aplikací a podporovaných anotací můžete nakonfigurovat, jak jeho kontroler zpracovává provoz.
Vytvořte obor názvů aplikace s názvem
aks-storepro spuštění ukázkových podů pomocí příkazukubectl create namespace.kubectl create namespace aks-storeNasaďte aplikaci úložiště AKS pomocí následujícího souboru manifestu YAML:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
Tento manifest vytvoří rabbitmq, order-service, product-service a store-front Deploymenty a odpovídající Služby.
store-front Služba zpřístupňuje port 80, na který Ingress směruje v další části.
Vytvořte objekt Ingress
Když povolíte doplněk pro směrování aplikací, vytvoří se třída Ingress s názvem webapprouting.kubernetes.azure.com. Zadejte tuto třídu v objektu Ingress, chcete-li použít kontroler NGINX Ingress spravovaný doplňkem.
Zkopírujte následující manifest YAML do nového souboru s názvem ingress.yaml a uložte ho do místního počítače.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: PrefixPomocí příkazu vytvořte prostředek příchozího
kubectl applypřenosu dat.kubectl apply -f ingress.yaml -n aks-storeNásledující příklad výstupu ukazuje vytvořený prostředek:
ingress.networking.k8s.io/store-front created
Ověřte spravovaný prostředek Ingress
Spravovaný Ingress můžete ověřit pomocí příkazu kubectl get ingress.
kubectl get ingress -n aks-store
Následující příklad výstupu ukazuje vytvořený spravovaný Ingress:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Že AKS Store funguje, můžete ověřit tak, že v prohlížeči přejdete na veřejnou IP adresu Ingress controlleru. Následující příkaz načte externí IP adresu přiřazenou load balancerem službě nginx spravovaného kontroleru příchozí komunikace NGINX v oboru názvů app-routing-system:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Odstraňte doplněk pro směrování aplikací
Chcete-li odebrat přidružený obor názvů, použijte kubectl delete namespace příkaz.
kubectl delete namespace aks-store
Pokud chcete z clusteru odebrat doplněk pro směrování aplikací, použijte az aks approuting disable příkaz.
az aks approuting disable --name <cluster-name> --resource-group <resource-group-name>
Poznámka:
Aby při zakázání doplňku pro směrování aplikací nedošlo k možnému narušení provozu do clusteru, některé prostředky Kubernetes, včetně configMaps, secrets a deployment, který spouští řadič, zůstávají v clusteru. Tyto prostředky jsou v app-routing-system oboru názvů. Tyto prostředky můžete odebrat, pokud už je nepotřebujete, odstraněním oboru názvů pomocí kubectl delete ns app-routing-system.
Související obsah
- Povolte implementaci rozhraní API služby Application Routing Gateway ke správě příchozího přenosu dat pomocí rozhraní API brány Kubernetes.
- Konfigurace vlastních konfigurací příchozího přenosu dat ukazuje, jak vytvořit pokročilou konfiguraci příchozího přenosu dat. Nakonfigurujte vlastní doménu pomocí Azure DNS pro správu zón DNS a nastavení zabezpečeného příchozího přenosu dat.
- Pokud chcete provést integraci s interním vyrovnávačem zatížení Azure a nakonfigurovat privátní zónu Azure DNS, která umožňuje řešení DNS pro privátní koncové body ke konkrétním doménám, přečtěte si téma konfigurace interního kontroleru příchozího provozu NGINX pro privátní zónu DNS Azure.
- Seznamte se s monitorováním metrik kontroleru ingress-nginx, které jsou součástí doplňku směrování aplikací, v Prometheu v Grafaně (preview) v rámci analýzy výkonu a využití vaší aplikace.