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. aks-preview
A 0.5.171-es vagy újabb verzió Azure CLI-bővítménye telepítve van
Korlátozások
- Az alkalmazás-útválasztási bővítmény legfeljebb öt Azure DNS-zónát támogat.
- 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 -g <ResourceGroupName> -n <ClusterName> -l <Location> --enable-app-routing
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 -g <ResourceGroupName> -n <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 -g <ResourceGroupName> -n <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.
- Alkalmazás-útválasztási bővítmény
- A Service Mesh megnyitása (kivezetve)
- Szolgáltatásjegyzetek (kivezetve)
Hozza létre a példa podok futtatásához hívott
hello-web-app-routing
alkalmazásnévteret akubectl create namespace
paranccsal.kubectl create namespace hello-web-app-routing
Hozza létre az üzembe helyezést úgy, hogy a következő YAML-jegyzékfájlt egy új, deployment.yaml nevű fájlba másolja, és mentse a fájlt a helyi számítógépre.
apiVersion: apps/v1 kind: Deployment metadata: name: aks-helloworld namespace: hello-web-app-routing spec: replicas: 1 selector: matchLabels: app: aks-helloworld template: metadata: labels: app: aks-helloworld spec: containers: - name: aks-helloworld image: mcr.microsoft.com/azuredocs/aks-helloworld:v1 ports: - containerPort: 80 env: - name: TITLE value: "Welcome to Azure Kubernetes Service (AKS)"
A szolgáltatás létrehozásához másolja a következő YAML-jegyzékfájlt egy service.yaml nevű új fájlba, és mentse a fájlt a helyi számítógépre.
apiVersion: v1 kind: Service metadata: name: aks-helloworld namespace: hello-web-app-routing spec: type: ClusterIP ports: - port: 80 selector: app: aks-helloworld
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: aks-helloworld namespace: hello-web-app-routing spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - host: <Hostname> http: paths: - backend: service: name: aks-helloworld port: number: 80 path: / pathType: Prefix
Hozza létre a fürterőforrásokat a
kubectl apply
paranccsal.kubectl apply -f deployment.yaml -n hello-web-app-routing
A következő példakimenet a létrehozott erőforrást mutatja be:
deployment.apps/aks-helloworld created
kubectl apply -f service.yaml -n hello-web-app-routing
A következő példakimenet a létrehozott erőforrást mutatja be:
service/aks-helloworld created
kubectl apply -f ingress.yaml -n hello-web-app-routing
A következő példakimenet a létrehozott erőforrást mutatja be:
ingress.networking.k8s.io/aks-helloworld 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 hello-web-app-routing
A következő példakimenet a létrehozott felügyelt bejövő forgalmat mutatja be:
NAME CLASS HOSTS ADDRESS PORTS AGE
aks-helloworld webapprouting.kubernetes.azure.com myapp.contoso.com 20.51.92.19 80, 443 4m
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 hello-web-app-routing
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 myAKSCluster --resource-group myResourceGroup
Ha az alkalmazás-útválasztási bővítmény le van tiltva, előfordulhat, hogy egyes Kubernetes-erőforrások a fürtben maradnak. Ezek az erőforrások közé tartozik a konfiguráció Térképek és a titkos kódok, és az alkalmazás-útválasztási rendszer névterében jönnek létre. Ezeket az erőforrásokat igény szerint eltávolíthatja.
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.