Hızlı başlangıç: ARM şablonunu kullanarak bir Azure Kubernetes hizmeti (AKS) kümesi dağıtma
Azure Kubernetes hizmeti (AKS), kümelerinizi hızlı bir şekilde dağıtmanıza ve yönetmenize olanak tanıyan bir yönetilen Kubernetes hizmetidir. Bu hızlı başlangıçta şunları yapmanız gerekir:
- Bir Azure Resource Manager şablonu kullanarak AKS kümesi dağıtın.
- Kümede bir Web ön ucu ve bir Redsıs örneği ile çok kapsayıcılı bir uygulama çalıştırın.

ARM şablonu projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Bildirim temelli sözdiziminde, dağıtım oluşturmak için programlama komutlarının dizisini yazmadan amaçladığınız dağıtımı ifade edersiniz.
Bu hızlı başlangıç, Kubernetes kavramlarının temel olarak bilindiğini varsayar. Daha fazla bilgi için bkz. Azure Kubernetes hizmeti (AKS) Için Kubernetes temel kavramları.
Ortamınız önkoşulları karşılıyorsa ve ARM şablonlarını kullanma hakkında bilginiz varsa, Azure’a dağıtma düğmesini seçin. Şablon Azure portalda açılır.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
Azure Cloud Shell'Da Bash ortamını kullanın.
Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.
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. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantıları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.
Bu makale, Azure CLı 'nin sürüm 2.0.61 veya üstünü gerektirir. Azure Cloud Shell kullanılıyorsa, en son sürüm zaten yüklüdür.
Kaynak Yöneticisi şablonu kullanarak AKS kümesi oluşturmak için bir SSH ortak anahtarı sağlarsınız. Bu kaynağa ihtiyacınız varsa, aşağıdaki bölüme bakın; Aksi takdirde, şablonu gözden geçirme bölümüne atlayın.
SSH anahtar çifti oluşturma
AKS düğümlerine erişmek için, komutunu kullanarak oluşturduğunuz bir SSH anahtar çifti (public ve Private) kullanarak bağlanırsınız ssh-keygen . Varsayılan olarak, bu dosyalar ~/PST SSH dizininde oluşturulur. Komutun çalıştırılması, ssh-keygen belirtilen konumda zaten mevcut olan tüm SSH anahtar çiftinin üzerine yazar.
https://shell.azure.comTarayıcınızda Cloud Shell açmak için bölümüne gidin.
ssh-keygenkomutunu çalıştırın. Aşağıdaki örnek, RSA şifrelemesini ve 2048 bit uzunluğunu kullanarak bir SSH anahtar çifti oluşturur:ssh-keygen -t rsa -b 2048
SSH anahtarları oluşturma hakkında daha fazla bilgi için bkz. Azure 'da kimlik doğrulaması IÇIN SSH anahtarları oluşturma ve yönetme.
Şablonu gözden geçirme
Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç şablonlarından alınmıştır.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.4.412.5873",
"templateHash": "14640985186631737095"
}
},
"parameters": {
"clusterName": {
"type": "string",
"defaultValue": "aks101cluster",
"metadata": {
"description": "The name of the Managed Cluster resource."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the Managed Cluster resource."
}
},
"dnsPrefix": {
"type": "string",
"metadata": {
"description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
}
},
"osDiskSizeGB": {
"type": "int",
"defaultValue": 0,
"maxValue": 1023,
"minValue": 0,
"metadata": {
"description": "Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Specifying 0 will apply the default disk size for that agentVMSize."
}
},
"agentCount": {
"type": "int",
"defaultValue": 3,
"maxValue": 50,
"minValue": 1,
"metadata": {
"description": "The number of nodes for the cluster."
}
},
"agentVMSize": {
"type": "string",
"defaultValue": "Standard_D2s_v3",
"metadata": {
"description": "The size of the Virtual Machine."
}
},
"linuxAdminUsername": {
"type": "string",
"metadata": {
"description": "User name for the Linux Virtual Machines."
}
},
"sshRSAPublicKey": {
"type": "string",
"metadata": {
"description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
}
}
},
"functions": [],
"resources": [
{
"type": "Microsoft.ContainerService/managedClusters",
"apiVersion": "2020-09-01",
"name": "[parameters('clusterName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"dnsPrefix": "[parameters('dnsPrefix')]",
"agentPoolProfiles": [
{
"name": "agentpool",
"osDiskSizeGB": "[parameters('osDiskSizeGB')]",
"count": "[parameters('agentCount')]",
"vmSize": "[parameters('agentVMSize')]",
"osType": "Linux",
"mode": "System"
}
],
"linuxProfile": {
"adminUsername": "[parameters('linuxAdminUsername')]",
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]"
}
]
}
}
}
}
],
"outputs": {
"controlPlaneFQDN": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName'))).fqdn]"
}
}
}
Daha fazla AKS örneği için bkz. aks hızlı başlangıç şablonları sitesi.
Şablonu dağıtma
Azure 'da oturum açmak ve bir şablonu açmak için aşağıdaki düğmeyi seçin.
Aşağıdaki değerleri seçin veya girin.
Bu hızlı başlangıçta, Işletim sistemi disk boyutu GB, Aracı sayısı, Aracı VM boyutu, Işletim sistemi türü ve Kubernetes sürümü için varsayılan değerleri bırakın. Aşağıdaki şablon parametreleri için kendi değerlerinizi sağlayın:
- Abonelik: bir Azure aboneliği seçin.
- Kaynak grubu: Yeni oluştur' u seçin. Kaynak grubu için Myresourcegroup gibi benzersiz bir ad girin ve ardından Tamam' ı seçin.
- Konum: Doğu ABD gibi bir konum seçin.
- Küme adı: aks kümesi Için Myakscluster gibi benzersiz bir ad girin.
- DNS ön eki: kümeniz için myakscluster gibi benzersiz bir DNS öneki girin.
- Linux Yöneticisi Kullanıcı adı: SSH kullanarak bağlanmak için azureuser gibi bir Kullanıcı adı girin.
- Ssh rsa ortak anahtarı: SSH anahtar çiftin genel bölümünü kopyalayıp yapıştırın (varsayılan olarak, ~/. ssh/id_rsa. pub içeriğini).

Gözden geçir + Oluştur’u seçin.
AKS kümesinin oluşturulması birkaç dakika sürer. Sonraki adıma geçmeden önce kümenin başarılı bir şekilde dağıtılmasını bekleyin.
Dağıtımı doğrulama
Kümeye bağlanma
Bir Kubernetes kümesini yönetmek için Kubernetes komut satırı istemcisini ( kubectl) kullanın. kubectl Azure Cloud Shell kullanıyorsanız, zaten yüklüdür.
kubectlAz aks install-cli komutunu kullanarak yerel olarak yükler:az aks install-clikubectlAz aks Get-Credentials komutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırın. Bu komut, kimlik bilgilerini indirir ve Kubernetes CLı 'yi bunları kullanacak şekilde yapılandırır.az aks get-credentials --resource-group myResourceGroup --name myAKSClusterKubectl Get komutunu kullanarak kümenizin bağlantısını doğrulayın. Bu komut, küme düğümlerinin bir listesini döndürür.
kubectl get nodesÇıktı, önceki adımlarda oluşturulan düğümleri gösterir. Tüm düğümlerin durumunun hazırlanmaya çalıştığından emin olun:
NAME STATUS ROLES AGE VERSION aks-agentpool-41324942-0 Ready agent 6m44s v1.12.6 aks-agentpool-41324942-1 Ready agent 6m46s v1.12.6 aks-agentpool-41324942-2 Ready agent 6m45s v1.12.6
Uygulamayı çalıştırma
Bir Kubernetes bildirim dosyası , hangi kapsayıcı görüntülerinin çalıştırılacağı gibi kümenin istenen durumunu tanımlar.
Bu hızlı başlangıçta, Azure oy uygulamasınıçalıştırmak için gerekli tüm nesneleri oluşturmak için bir bildirim kullanacaksınız. Bu bildirim iki Kubernetes dağıtımıiçerir:
- Örnek Azure oyunu Python uygulamaları.
- Redsıs örneği.
İki Kubernetes hizmeti de oluşturulur:
- Redsıs örneği için bir iç hizmet.
- Azure oy uygulamasına internet 'ten erişmek için bir dış hizmet.
azure-vote.yamladlı bir dosya oluşturun.- Azure Cloud Shell kullanırsanız, bu dosya kullanılarak
viveyananobir sanal veya fiziksel sistemde çalışırken oluşturulabilir.
- Azure Cloud Shell kullanırsanız, bu dosya kullanılarak
Aşağıdaki YAML tanımına kopyalayın:
apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-back spec: replicas: 1 selector: matchLabels: app: azure-vote-back template: metadata: labels: app: azure-vote-back spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-back image: mcr.microsoft.com/oss/bitnami/redis:6.0.8 env: - name: ALLOW_EMPTY_PASSWORD value: "yes" resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 6379 name: redis --- apiVersion: v1 kind: Service metadata: name: azure-vote-back spec: ports: - port: 6379 selector: app: azure-vote-back --- apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-front spec: replicas: 1 selector: matchLabels: app: azure-vote-front template: metadata: labels: app: azure-vote-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-front image: mcr.microsoft.com/azuredocs/azure-vote-front:v1 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 80 env: - name: REDIS value: "azure-vote-back" --- apiVersion: v1 kind: Service metadata: name: azure-vote-front spec: type: LoadBalancer ports: - port: 80 selector: app: azure-vote-frontKubectl Apply komutunu kullanarak uygulamayı dağıtın ve YAML bildiriminizde adı belirtin:
kubectl apply -f azure-vote.yamlÇıktıda başarıyla oluşturulan dağıtımlar ve hizmetler gösterilmektedir:
deployment "azure-vote-back" created service "azure-vote-back" created deployment "azure-vote-front" created service "azure-vote-front" created
Uygulamayı test edin
Uygulama çalıştığında, bir Kubernetes hizmeti, uygulamanın ön ucuna internet 'e koyar. Bu işlemin tamamlanması birkaç dakika sürebilir.
Kubectl Get Service komutunu bağımsız değişkeniyle kullanarak ilerlemeyi izleyin --watch .
kubectl get service azure-vote-front --watch
Hizmetin dış IP çıkışı azure-vote-front Başlangıçta Beklemede olarak gösterilir.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Dış IP adresi bekliyor durumundan gerçek ortak IP adresine değiştiğinde, CTRL-C izleme işlemini durdurmak için kullanın kubectl . Aşağıdaki örnek çıktıda, hizmete atanmış geçerli bir genel IP adresi gösterilmektedir:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Azure oy uygulamasını çalışırken görmek için, hizmetinizin dış IP adresine bir Web tarayıcısı açın.

Kaynakları temizleme
Azure ücretlerinden kaçınmak için gereksiz kaynaklarınızı temizleyin. az group delete komutunu kullanarak kaynak grubunu, kapsayıcı hizmetini ve ilgili tüm kaynakları kaldırabilirsiniz.
az group delete --name myResourceGroup --yes --no-wait
Not
Kümeyi sildiğinizde, AKS kümesi tarafından kullanılan Azure Active Directory hizmet sorumlusu kaldırılmaz. Hizmet sorumlusunu kaldırma adımları için bkz. AKS hizmet sorumlusuyla ilgili önemli noktalar ve silme.
Yönetilen bir kimlik kullandıysanız, kimlik platform tarafından yönetilir ve kaldırma gerektirmez.
Kodu alma
Önceden var olan kapsayıcı görüntüleri, bu hızlı başlangıçta bir Kubernetes dağıtımı oluşturmak için kullanıldı. İlgili uygulama kodu, Dockerfile ve Kubernetes bildirim dosyası GitHub kullanılabilir.
Sonraki adımlar
Bu hızlı başlangıçta bir Kubernetes kümesi dağıttınız ve daha sonra çok kapsayıcılı bir uygulama dağıttınız. AKS kümeniz için Kubernetes web panosuna erişin .
AKS hakkında daha fazla bilgi ve dağıtım örneği için tam kod açıklaması için Kubernetes küme öğreticisine geçin.
