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.
- 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
- Varsayılan
- Open Service Mesh (OSM) (kullanımdan kaldırıldı)
- Hizmet ek açıklamaları (kullanımdan kaldırıldı)
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 etkinleştirmek için parametresi olarak ayarlanmış http_application_routing
veya az aks enable-addons
komutunu --addons
kullanınaz aks approuting enable
.
# az aks approuting enable
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
# az aks enable-addons
az aks enable-addons --resource-group <ResourceGroupName> --name <ClusterName> --addons http_application_routing
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.
- Uygulama yönlendirme eklentisi
- Service Mesh'i açma (kullanımdan kaldırıldı)
- Hizmet ek açıklamaları (kullanımdan kaldırıldı)
komutunu kullanarak örnek podları çalıştırmak için adlı
hello-web-app-routing
uygulama ad alanınıkubectl create namespace
oluşturun.kubectl create namespace hello-web-app-routing
Aşağıdaki YAML bildirimini deployment.yaml adlı yeni bir dosyaya kopyalayıp dosyayı yerel bilgisayarınıza kaydederek dağıtımı oluşturun.
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şağıdaki YAML bildirimini service.yaml adlı yeni bir dosyaya kopyalayıp dosyayı yerel bilgisayarınıza kaydederek hizmeti oluşturun.
apiVersion: v1 kind: Service metadata: name: aks-helloworld namespace: hello-web-app-routing spec: type: ClusterIP ports: - port: 80 selector: app: aks-helloworld
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: 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
komutunu kullanarak
kubectl apply
küme kaynaklarını oluşturun.kubectl apply -f deployment.yaml -n hello-web-app-routing
Aşağıdaki örnek çıktı, oluşturulan kaynağı gösterir:
deployment.apps/aks-helloworld created
kubectl apply -f service.yaml -n hello-web-app-routing
Aşağıdaki örnek çıktı, oluşturulan kaynağı gösterir:
service/aks-helloworld created
kubectl apply -f ingress.yaml -n hello-web-app-routing
Aşağıdaki örnek çıktı, oluşturulan kaynağı gösterir:
ingress.networking.k8s.io/aks-helloworld 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 hello-web-app-routing
Aşağıdaki örnek çıktıda, oluşturulan yönetilen Giriş gösterilmektedir:
NAME CLASS HOSTS ADDRESS PORTS AGE
aks-helloworld webapprouting.kubernetes.azure.com myapp.contoso.com 20.51.92.19 80, 443 4m
Uygulama yönlendirme eklentisini kaldırma
İlişkili ad alanını kaldırmak için komutunu kullanın kubectl delete namespace
.
kubectl delete namespace hello-web-app-routing
Uygulama yönlendirme eklentisini kümenizden kaldırmak için komutunu kullanın az aks approuting disable
.
az aks approuting disable --name myAKSCluster --resource-group myResourceGroup
Uygulama yönlendirme eklentisi devre dışı bırakıldığında, bazı Kubernetes kaynakları kümede kalabilir. Bu kaynaklar configMap'leri ve gizli dizileri içerir ve uygulama yönlendirme sistemi ad alanında oluşturulur. İsterseniz 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin