Share via


Öğretici: Mevcut bir uygulama ağ geçidine sahip mevcut aks kümesi için uygulama ağ geçidi giriş denetleyicisi eklentisini etkinleştirme

Mevcut bir Azure Kubernetes Services (AKS) kümesi için uygulama ağ geçidi giriş denetleyicisi (AGIC) eklentisini etkinleştirmek için Azure CLI veya portal kullanabilirsiniz. Bu öğreticide AGIC eklentisini kullanarak Kubernetes uygulamanızı ayrı sanal ağlara dağıtılan mevcut bir uygulama ağ geçidi aracılığıyla mevcut aks kümesinde kullanıma sunma hakkında bilgi edineceksiniz. Mevcut kaynakların benzetimini yapmak için bir sanal ağda AKS kümesi ve ayrı bir sanal ağda bir uygulama ağ geçidi oluşturarak başlayacaksınız. Ardından AGIC eklentisini etkinleştirecek, iki sanal ağı eşleyecek ve AGIC eklentisini kullanarak uygulama ağ geçidi aracılığıyla kullanıma sunulacak örnek bir uygulama dağıtacaksınız. AgIC eklentisini mevcut bir uygulama ağ geçidi ve aynı sanal ağdaki mevcut AKS kümesi için etkinleştiriyorsanız aşağıdaki eşleme adımını atlayabilirsiniz. Eklenti, AKS kümeniz için AGIC'i Helm'den çok daha hızlı bir şekilde dağıtmanın ve tam olarak yönetilen bir deneyim sunar.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Kaynak grubu oluşturma
  • Yeni AKS kümesi oluşturma
  • Yeni bir uygulama ağ geçidi oluşturun
  • Azure CLI aracılığıyla mevcut AKS kümesinde AGIC eklentisini etkinleştirme
  • Azure portalı aracılığıyla mevcut AKS kümesinde AGIC eklentisini etkinleştirme
  • Uygulama ağ geçidi sanal ağını AKS kümesi sanal ağıyla eşleme
  • AKS kümesinde giriş için AGIC kullanarak örnek uygulama dağıtma
  • Uygulamanın uygulama ağ geçidi üzerinden erişilebilir olup olmadığını denetleyin

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Kaynak grubu oluşturma

Azure'da ilgili kaynakları bir kaynak grubuna ayırırsınız. az group create komutunu kullanarak bir kaynak grubu oluşturun. Aşağıdaki örnek, Doğu ABD konumunda (bölge) myResourceGroup adlı bir kaynak grubu oluşturur:

az group create --name myResourceGroup --location eastus

Yeni aks kümesi dağıtma

Şimdi AGIC eklentisini etkinleştirmek istediğiniz mevcut bir AKS kümesine sahip olmanın benzetimini yapmak için yeni bir AKS kümesi dağıtacaksınız.

Aşağıdaki örnekte myResourceGroup adlı kaynak grubunda Azure CNI ve Yönetilen Kimlikler'i kullanarak myCluster adlı yeni bir AKS kümesi dağıtacaksınız.

az aks create --name myCluster --resource-group myResourceGroup --network-plugin azure --enable-managed-identity --generate-ssh-keys

Yukarıdaki komut için daha fazla parametre yapılandırmak için bkz . az aks create.

Not

MC_resource-group-name_cluster-name_location adıyla bir düğüm kaynak grubu oluşturulur.

Yeni bir uygulama ağ geçidi dağıtma

Şimdi AKS kümenize (myCluster) yönelik trafiğin yükünü dengelemek için kullanmak istediğiniz mevcut bir uygulama ağ geçidine sahip olmanın benzetimini yapmak için yeni bir uygulama ağ geçidi dağıtacaksınız. Uygulama ağ geçidinin adı myApplicationGateway olacaktır. ancak önce myPublicIp adlı bir genel IP kaynağı ve adres alanı 10.0.0.0/16 olan myVnet adlı yeni bir sanal ağ ve adres alanı 10.0.0.0/24 olan mySubnet adlı bir alt ağ oluşturmanız ve myPublicIp kullanarak uygulama ağ geçidinizi mySubnet'tedağıtmanız gerekir.

Dikkat

Ayrı sanal ağlarda aks kümesi ve uygulama ağ geçidi kullandığınızda, iki sanal ağın adres alanları çakışmamalıdır. AKS kümesinin dağıttığı varsayılan adres alanı 10.224.0.0/12'dir.

az network public-ip create --name myPublicIp --resource-group myResourceGroup --allocation-method Static --sku Standard
az network vnet create --name myVnet --resource-group myResourceGroup --address-prefix 10.0.0.0/16 --subnet-name mySubnet --subnet-prefix 10.0.0.0/24 
az network application-gateway create --name myApplicationGateway --resource-group myResourceGroup --sku Standard_v2 --public-ip-address myPublicIp --vnet-name myVnet --subnet mySubnet --priority 100

Not

Uygulama ağ geçidi giriş denetleyicisi (AGIC) eklentisi yalnızca application gateway v2 SKU'larını (Standart ve WAF) destekler, application gateway v1 SKU'larını desteklemez .

Azure CLI aracılığıyla mevcut AKS kümesinde AGIC eklentisini etkinleştirme

Azure CLI'yı kullanmaya devam etmek isterseniz, oluşturduğunuz AKS kümesinde AGIC eklentisini etkinleştirmeye devam edebilir, myCluster ve oluşturduğunuz mevcut uygulama ağ geçidi olan myApplicationGateway'i kullanmak için AGIC eklentisini belirtebilirsiniz.

appgwId=$(az network application-gateway show --name myApplicationGateway --resource-group myResourceGroup -o tsv --query "id") 
az aks enable-addons --name myCluster --resource-group myResourceGroup --addon ingress-appgw --appgw-id $appgwId

Önemli

Aks kümesi kaynak grubundan farklı bir kaynak grubunda bir uygulama ağ geçidi kullandığınızda, oluşturulan yönetilen kimlik ingressapplicationgateway-{AKSNAME} uygulamasının ağ geçidi kaynak grubunda Ağ Katkıda Bulunanı ve Okuyucu rolleri ayarlanmış olmalıdır.

İki sanal ağı eşle

AKS kümesini kendi sanal ağına ve Application ağ geçidini başka bir sanal ağa dağıttığınızdan, trafiğin Application gateway'den kümedeki podlara akması için iki sanal ağı eşlemeniz gerekir. İki sanal ağı eşlemek için, bağlantının çift yönlü olduğundan emin olmak için Azure CLI komutunun iki ayrı kez çalıştırılması gerekir. İlk komut, Application gateway sanal ağından AKS sanal ağına bir eşleme bağlantısı oluşturur; İkinci komut, diğer yönde bir eşleme bağlantısı oluşturur.

nodeResourceGroup=$(az aks show --name myCluster --resource-group myResourceGroup -o tsv --query "nodeResourceGroup")
aksVnetName=$(az network vnet list --resource-group $nodeResourceGroup -o tsv --query "[0].name")

aksVnetId=$(az network vnet show --name $aksVnetName --resource-group $nodeResourceGroup -o tsv --query "id")
az network vnet peering create --name AppGWtoAKSVnetPeering --resource-group myResourceGroup --vnet-name myVnet --remote-vnet $aksVnetId --allow-vnet-access

appGWVnetId=$(az network vnet show --name myVnet --resource-group myResourceGroup -o tsv --query "id")
az network vnet peering create --name AKStoAppGWVnetPeering --resource-group $nodeResourceGroup --vnet-name $aksVnetName --remote-vnet $appGWVnetId --allow-vnet-access

Not

Azure CNI ile AKS'yi oluşturduğumuz yukarıdaki "Yeni bir AKS kümesi dağıtma" adımında, Kubenet modunu kullanan bir AKS kümeniz olması durumunda, POD IP'sini hedefleyen paketlerin podu barındıran düğüme ulaşmasına yardımcı olmak için yol tablosunu güncelleştirmeniz gerekir. Bunu yapmanın basit bir yolu, AKS tarafından oluşturulan aynı yol tablosunu Application Gateway'in alt ağıyla ilişkilendirmektir.

AGIC kullanarak örnek uygulama dağıtma

Şimdi oluşturduğunuz AKS kümesine, Giriş için AGIC eklentisini kullanacak ve uygulama ağ geçidini AKS kümesine bağlayacak örnek bir uygulama dağıtacaksınız. İlk olarak, komutunu çalıştırarak az aks get-credentials dağıtılan AKS kümesine kimlik bilgilerini alırsınız.

az aks get-credentials --name myCluster --resource-group myResourceGroup

Oluşturduğunuz kümenin kimlik bilgilerini aldıktan sonra, kümeye giriş için AGIC kullanan örnek bir uygulama ayarlamak için aşağıdaki komutu çalıştırın. AGIC, daha önce ayarladığınız uygulama ağ geçidini dağıtmış olduğunuz yeni örnek uygulamaya karşılık gelen yönlendirme kurallarıyla güncelleştirir.

kubectl apply -f https://raw.githubusercontent.com/Azure/application-gateway-kubernetes-ingress/master/docs/examples/aspnetapp.yaml 

Uygulamanın erişilebilir olup olmadığını denetleyin

Uygulama ağ geçidi AKS kümesine yönelik trafiğe hizmet verecek şekilde ayarlandıysa şimdi uygulamanızın erişilebilir olduğunu doğrulayalım. İlk olarak Girişin IP adresini alırsınız.

kubectl get ingress

Oluşturduğunuz örnek uygulamanın çalışır durumda olup olmadığını denetlemek için yukarıdaki komutu çalıştırmaktan elde ettiğiniz uygulama ağ geçidinin IP adresini ziyaret edin veya ile curldenetleyin. Uygulama ağ geçidinin güncelleştirmeyi alması bir dakika sürebilir, bu nedenle uygulama ağ geçidi hala Azure portalında "Güncelleştiriliyor" durumundaysa IP adresine ulaşmaya çalışmadan önce bitmesine izin verin.

Kaynakları temizleme

Artık gerekli olmadığında, myResourceGroup ve MC_myResourceGroup_myCluster_eastus kaynak gruplarını silerek bu öğreticide oluşturulan tüm kaynakları silin:

az group delete --name myResourceGroup 
az group delete --name MC_myResourceGroup_myCluster_eastus

Sonraki adımlar