Uygulama yönlendirme eklentisiyle yönetilen NGINX girişi
Köprü Metni Aktarım Protokolü (HTTP) ve güvenli (HTTPS) trafiğini Azure Kubernetes Service (AKS) kümesinde çalışan uygulamalara yönlendirmenin bir yolu Kubernetes Giriş nesnesini kullanmaktır. Uygulama yönlendirme eklentisi NGINX Giriş sınıflarını kullanan bir Giriş nesnesi oluşturduğunuzda, eklenti AKS kümenizde bir veya daha fazla Giriş denetleyicisi oluşturur, yapılandırılır ve yönetir.
Bu makalede AKS kümenizde temel bir Giriş denetleyicisinin nasıl dağıtılacağı ve yapılandırılacağı gösterilmektedir.
NGINX özellikleriyle uygulama yönlendirme eklentisi
NGINX ile uygulama yönlendirme eklentisi aşağıdakileri sunar:
- Kubernetes NGINX Giriş denetleyicisini temel alan yönetilen NGINX Giriş denetleyicilerinin kolay yapılandırılması.
- Genel ve özel bölge yönetimi için Azure DNS ile tümleştirme
- Azure Key Vault'ta depolanan sertifikalarla SSL sonlandırma.
Diğer yapılandırmalar için bkz:
- DNS ve SSL yapılandırması
- Uygulama yönlendirme eklentisi yapılandırması
- Azure özel DNS bölgesi için iç NGIX giriş denetleyicisini yapılandırın.
Cloud Native Computing Foundation (CNCF) tarafından Open Service Mesh'in (OSM) kullanımdan kaldırılmasıyla, OSM ile uygulama yönlendirme eklentisini kullanmanız önerilmez.
Önkoşullar
- Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz hesap oluşturabilirsiniz.
- Azure CLI sürüm 2.54.0 veya üzeri yüklü ve yapılandırılmış. Sürümü bulmak için
az --version
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
Sınırlamalar
- Uygulama yönlendirme eklentisi en fazla beş Azure DNS bölgesini destekler.
- Uygulama yönlendirme eklentisi yalnızca yönetilen kimliğe sahip AKS kümelerinde etkinleştirilebilir.
- Eklentiyle tümleştirilmiş tüm genel Azure DNS bölgelerinin aynı kaynak grubunda olması gerekir.
- Eklentiyle tümleştirilmiş tüm özel Azure DNS bölgelerinin aynı kaynak grubunda olması gerekir.
- Ad alanında ingress-nginx'in
ConfigMap
app-routing-system
düzenlenmesi desteklenmez. - Aşağıdaki kod parçacığı ek açıklamaları engellenir ve girişin yapılandırılmasını engeller:
load_module
,lua_package
,_by_lua
, ,location
, ,root
,proxy_pass
serviceaccount
{
,}
, .'
Azure CLI kullanarak uygulama yönlendirmeyi etkinleştirme
Yeni bir kümede etkinleştirme
Yeni bir kümede uygulama yönlendirmeyi etkinleştirmek için bayrağını az aks create
--enable-app-routing
belirterek komutunu kullanın.
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Mevcut bir kümede etkinleştirme
Mevcut bir kümede uygulama yönlendirmeyi az aks approuting enable
etkinleştirmek için komutunu kullanın.
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
AKS kümenize bağlanma
Yerel bilgisayarınızdan Kubernetes kümesine bağlanmak için Kubernetes’in komut satırı istemcisini (kubectl) kullanmanız gerekir. komutunu kullanarak az aks install-cli
yerel olarak yükleyebilirsiniz. Azure Cloud Shell'i kullanıyorsanız kubectl
zaten yüklüdür.
az aks get-credentials komutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırınkubectl
.
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Uygulama dağıtma
Uygulama yönlendirme eklentisi, uygun kaynakları oluşturmak için Kubernetes Giriş nesnelerindeki ek açıklamaları kullanır.
komutunu kullanarak örnek podları çalıştırmak için adlı
aks-store
uygulama ad alanınıkubectl create namespace
oluşturun.kubectl create namespace aks-store
AKS deposu uygulamasını aşağıdaki YAML bildirim dosyasını kullanarak dağıtın:
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
Bu bildirim, AKS depolama uygulaması için gerekli dağıtımları ve hizmetleri oluşturur.
Giriş nesnesini oluşturma
Uygulama yönlendirme eklentisi, kümede webapprouting.kubernetes.azure.com adlı bir Giriş sınıfı oluşturur. Bu sınıfla bir Giriş nesnesi oluşturduğunuzda eklenti etkinleştirilir.
Aşağıdaki YAML bildirimini ingress.yaml adlı yeni bir dosyaya kopyalayın ve dosyayı yerel bilgisayarınıza kaydedin.
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
komutunu kullanarak
kubectl apply
giriş kaynağını oluşturun.kubectl apply -f ingress.yaml -n aks-store
Aşağıdaki örnek çıktı, oluşturulan kaynağı gösterir:
ingress.networking.k8s.io/store-front created
Yönetilen Girişin oluşturulduğunu doğrulama
komutunu kullanarak yönetilen Girişin oluşturulduğunu kubectl get ingress
doğrulayabilirsiniz.
kubectl get ingress -n aks-store
Aşağıdaki örnek çıktıda, oluşturulan yönetilen Giriş gösterilmektedir:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
AKS deposunun tarayıcınızı Giriş denetleyicisinin genel IP adresine işaret ederek çalıştığını doğrulayabilirsiniz. kubectl ile IP adresini bulun:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Uygulama yönlendirme eklentisini kaldırma
İlişkili ad alanını kaldırmak için komutunu kullanın kubectl delete namespace
.
kubectl delete namespace aks-store
Uygulama yönlendirme eklentisini kümenizden kaldırmak için komutunu kullanın az aks approuting disable
.
az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>
Not
Uygulama yönlendirme eklentisi devre dışı bırakıldığında kümeye gelen trafiğin kesintiye uğramasını önlemek için configMap'ler, gizli diziler ve denetleyiciyi çalıştıran dağıtım gibi bazı Kubernetes kaynakları kümede kalır. Bu kaynaklar uygulama yönlendirme sistemi ad alanındadır. Ad alanını ile kubectl delete ns app-routing-system
silerek artık gerekli değilse bu kaynakları kaldırabilirsiniz.
Sonraki adımlar
Özel giriş yapılandırmalarını yapılandırma, gelişmiş giriş yapılandırması oluşturmayı ve DNS bölgelerini yönetmek ve güvenli bir giriş ayarlamak için Azure DNS kullanarak özel bir etki alanı yapılandırmayı gösterir.
Azure iç yük dengeleyiciyle tümleştirmek ve özel uç noktaların belirli etki alanlarını çözümlemek üzere DNS çözümlemesini etkinleştirmek üzere özel bir Azure DNS bölgesi yapılandırmak için bkz . Azure özel DNS bölgesi için iç NGINX giriş denetleyicisini yapılandırma.
Uygulamanızın performansını ve kullanımını analiz etme kapsamında Grafana'da Prometheus (önizleme) ile uygulama yönlendirme eklentisine dahil edilen giriş-nginx denetleyicisi ölçümlerini izleme hakkında bilgi edinin.
Azure Kubernetes Service