Felügyelt NGINX-bejövő forgalom az alkalmazás-útválasztási bővítményrel
A Hypertext Transfer Protocol (HTTP) és a biztonságos (HTTPS) forgalom azure Kubernetes Service-fürtön (AKS) futó alkalmazásokhoz való átirányításának egyik módja a Kubernetes Bejövő forgalom objektum használata. Amikor létrehoz egy bejövő objektumot, amely az alkalmazás-útválasztási bővítmény NGINX bejövő osztályait használja, a bővítmény létrehoz, konfigurál és kezel egy vagy több bejövő vezérlőt az AKS-fürtben.
Ez a cikk bemutatja, hogyan helyezhet üzembe és konfigurálhat egy alapszintű bejövőforgalom-vezérlőt az AKS-fürtben.
Alkalmazás-útválasztási bővítmény NGINX-funkciókkal
Az NGINX-et tartalmazó alkalmazás-útválasztási bővítmény a következőket biztosítja:
- Felügyelt NGINX bejövőforgalom-vezérlők egyszerű konfigurálása Kubernetes NGINX bejövőforgalom-vezérlő alapján.
- Integráció az Azure DNS-sel a nyilvános és privát zónakezeléshez
- SSL-leállítás az Azure Key Vaultban tárolt tanúsítványokkal.
További konfigurációkért lásd:
- DNS- és SSL-konfiguráció
- Alkalmazás-útválasztási bővítmény konfigurációja
- Konfigurálja a belső NGIX bejövőforgalom-vezérlőt az Azure privát DNS-zónához.
Az Open Service Mesh (OSM) a Cloud Native Computing Foundation (CNCF) általi kivonásával az OSM-et használó alkalmazás-útválasztási bővítmény használata nem ajánlott.
Előfeltételek
- Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, létrehozhat egy ingyenes fiókot.
- Az Azure CLI 2.54.0-s vagy újabb verziója telepítve és konfigurálva van. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
Korlátozások
- Az alkalmazás-útválasztási bővítmény legfeljebb öt Azure DNS-zónát támogat.
- Az alkalmazás-útválasztási bővítmény csak felügyelt identitással rendelkező AKS-fürtökön engedélyezhető.
- A bővítményrel integrált összes globális Azure DNS-zónának ugyanabban az erőforráscsoportban kell lennie.
- A bővítményrel integrált összes privát Azure DNS-zónának ugyanabban az erőforráscsoportban kell lennie.
- A névtérben lévő bejövő nginx
ConfigMap
app-routing-system
szerkesztése nem támogatott. - A következő kódrészlet-széljegyzetek le vannak tiltva, és megakadályozzák a bejövő forgalom konfigurálását:
load_module
, ,lua_package
,_by_lua
,root
location
,{
proxy_pass
serviceaccount
}
'
.
Alkalmazás-útválasztás engedélyezése az Azure CLI használatával
Engedélyezés új fürtön
Ha engedélyezni szeretné az alkalmazás-útválasztást egy új fürtön, használja a az aks create
parancsot, és adja meg a jelölőt --enable-app-routing
.
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Engedélyezés meglévő fürtön
Ha engedélyezni szeretné az alkalmazás-útválasztást egy meglévő fürtön, használja a az aks approuting enable
parancsot.
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
Csatlakozás az AKS-fürthöz
Ahhoz, hogy csatlakozni tudjon a Kubernetes-fürthöz a helyi számítógépről, használja a Kubernetes kubectl nevű parancssori ügyfelét. A parancs használatával az aks install-cli
helyileg telepítheti. Ha az Azure Cloud Shellt használja, a kubectl
már telepítve van.
Konfigurálja kubectl
a Kubernetes-fürthöz való csatlakozást az az aks get-credentials paranccsal.
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Alkalmazás üzembe helyezése
Az alkalmazás-útválasztási bővítmény a Kubernetes Bejövő forgalom objektumainak megjegyzéseit használja a megfelelő erőforrások létrehozásához.
Hozza létre a példa podok futtatásához hívott
aks-store
alkalmazásnévteret akubectl create namespace
paranccsal.kubectl create namespace aks-store
Telepítse az AKS-tárolóalkalmazást a következő YAML-jegyzékfájl használatával:
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
Ez a jegyzék létrehozza az AKS-tárolóalkalmazáshoz szükséges üzembe helyezéseket és szolgáltatásokat.
A bejövő forgalom objektumának létrehozása
Az alkalmazás-útválasztási bővítmény létrehoz egy bejövő osztályt a webapprouting.kubernetes.azure.com nevű fürtön. Amikor ezzel az osztálysal hoz létre bejövő objektumot, az aktiválja a bővítményt.
Másolja a következő YAML-jegyzékfájlt egy ingress.yaml nevű új fájlba, és mentse a fájlt a helyi számítógépre.
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: Prefix
Hozza létre a bejövő erőforrást a
kubectl apply
paranccsal.kubectl apply -f ingress.yaml -n aks-store
A következő példakimenet a létrehozott erőforrást mutatja be:
ingress.networking.k8s.io/store-front created
A felügyelt bejövő forgalom létrehozásának ellenőrzése
A parancs használatával ellenőrizheti, hogy a felügyelt bejövő forgalom létrejött-e kubectl get ingress
.
kubectl get ingress -n aks-store
A következő példakimenet a létrehozott felügyelt bejövő forgalmat mutatja be:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Ellenőrizheti, hogy az AKS-tároló működik-e, és a böngésző a bejövőforgalom-vezérlő nyilvános IP-címére mutat. Keresse meg az IP-címet a kubectl használatával:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Az alkalmazás útválasztási bővítményének eltávolítása
A társított névtér eltávolításához használja a kubectl delete namespace
parancsot.
kubectl delete namespace aks-store
Az alkalmazás-útválasztási bővítmény fürtből való eltávolításához használja a az aks approuting disable
parancsot.
az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>
Feljegyzés
Annak érdekében, hogy elkerülje a fürtbe irányuló forgalom esetleges megszakadását, amikor az alkalmazás-útválasztási bővítmény le van tiltva, néhány Kubernetes-erőforrás, beleértve a konfigurációtérképeket, a titkos kulcsokat és a vezérlőt futtató üzembe helyezést, a fürtön marad. Ezek az erőforrások az alkalmazás-útválasztási rendszer névterében találhatók. Ezeket az erőforrásokat eltávolíthatja, ha már nincs rájuk szükség a névtér törlésével kubectl delete ns app-routing-system
.
Következő lépések
Az egyéni bejövőforgalom-konfigurációk konfigurálása bemutatja, hogyan hozhat létre speciális bejövőforgalom-konfigurációt, és hogyan konfigurálhat egyéni tartományt az Azure DNS használatával a DNS-zónák kezeléséhez és egy biztonságos bejövő forgalom beállításához.
Az Azure-beli belső terheléselosztóval való integrációhoz és egy privát Azure DNS-zóna konfigurálásához engedélyezze a privát végpontok DNS-feloldását adott tartományok feloldásához, lásd : Belső NGINX bejövőforgalom-vezérlő konfigurálása az Azure privát DNS-zónához.
Megtudhatja, hogyan monitorozhatja az alkalmazás-útválasztási bővítmény bejövő nginx vezérlőmetrikáit a Prometheus Grafana (előzetes verzió) használatával az alkalmazás teljesítményének és használatának elemzése során.
Azure Kubernetes Service