Öğ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şturun.
- Yeni bir AKS kümesi oluşturun.
- Yeni bir uygulama ağ geçidi oluşturun.
- Azure CLI aracılığıyla mevcut AKS kümesinde AGIC eklentisini etkinleştirin.
- Azure portalı aracılığıyla mevcut AKS kümesinde AGIC eklentisini etkinleştirin.
- Uygulama ağ geçidi sanal ağını AKS kümesi sanal ağıyla eşleyin.
- AKS kümesinde giriş için AGIC kullanarak örnek bir uygulama dağıtın.
- 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'te dağı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
Azure portalı aracılığıyla mevcut AKS kümesinde AGIC eklentisini etkinleştirme
- Azure portalı giriş sayfasında AKS kümesi kaynağınıza gidin.
- Hizmet menüsünde, Ayarlar'ın altında Ağ Sanal ağ tümleştirmesi'ni> seçin.
- Application Gateway giriş denetleyicisi altında Yönet'i seçin.
- Application Gateway giriş denetleyicisi sayfasında, giriş denetleyicisini etkinleştirmek için onay kutusunu seçin ve ardından açılan listeden mevcut uygulama ağ geçidinizi seçin.
- Kaydet'i seçin.
Önemli
Aks kümesi kaynak grubundan farklı bir kaynak grubunda uygulama ağ geçidi kullanıyorsanız, oluşturulan yönetilen kimlik ingressapplicationgateway-{AKSNAME} uygulamasının ağ geçidi kaynak grubunda Ağ Katkıda Bulunanı ve Okuyucu rollerinin ayarlanmış olması gerekir.
İ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 curl
denetleyin. 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