Öğretici: Azure Kubernetes Hizmeti’nde (AKS) uygulamaları ölçeklendirmeTutorial: Scale applications in Azure Kubernetes Service (AKS)

Öğreticileri izlediyseniz, AKS 'de çalışan bir Kubernetes kümeniz vardır ve örnek Azure oylama uygulamasını dağıttınız.If you've followed the tutorials, you have a working Kubernetes cluster in AKS and you deployed the sample Azure Voting app. Yedi öğreticinin beşinci parçası olan bu öğreticide, uygulamada pod’ları ölçeklendirirsiniz ve otomatik pod ölçeklendirmeyi denersiniz.In this tutorial, part five of seven, you scale out the pods in the app and try pod autoscaling. Ayrıca, barındırılan iş yükleri için kümenin kapasitesini değiştirmek üzere Azure VM düğümlerinin sayısını ölçeklendirmeyi de öğrenirsiniz.You also learn how to scale the number of Azure VM nodes to change the cluster's capacity for hosting workloads. Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:You learn how to:

  • Kubernetes düğümlerini ölçeklendirmeScale the Kubernetes nodes
  • Uygulamanızı çalıştıran Kubernetes podlarını el ile ölçeklendirmeManually scale Kubernetes pods that run your application
  • Uygulama ön ucunu çalıştıran otomatik ölçeklendirme podlarını yapılandırmaConfigure autoscaling pods that run the app front-end

Sonraki öğreticilerde, Azure oy uygulaması yeni bir sürüme güncelleştirilir.In later tutorials, the Azure Vote application is updated to a new version.

Başlamadan önceBefore you begin

Önceki öğreticilerde, bir uygulama bir kapsayıcı görüntüsüne paketlendi.In previous tutorials, an application was packaged into a container image. Bu görüntü, Azure Container Registry yüklendi ve bir AKS kümesi oluşturdunuz.This image was uploaded to Azure Container Registry, and you created an AKS cluster. Uygulama daha sonra AKS kümesine dağıtıldı.The application was then deployed to the AKS cluster. Bu adımları tamamlamadıysanız ve takip etmek istiyorsanız, öğretici 1 – kapsayıcı görüntüleri oluşturmaile başlayın.If you haven't done these steps, and would like to follow along, start with Tutorial 1 – Create container images.

Bu öğreticide, Azure CLı sürüm 2.0.53 veya üstünü çalıştırıyor olmanız gerekir.This tutorial requires that you're running the Azure CLI version 2.0.53 or later. Sürümü bulmak için az --version komutunu çalıştırın.Run az --version to find the version. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.If you need to install or upgrade, see Install Azure CLI.

Pod’ları el ile ölçeklendirmeManually scale pods

Önceki öğreticilerde Azure Vote ön ucu ve Redis örneği dağıtıldığında tek bir çoğaltma oluşturulmuştu.When the Azure Vote front-end and Redis instance were deployed in previous tutorials, a single replica was created. Kümenizdeki podların sayısını ve durumunu görmek için kubectl get komutunu aşağıdaki şekilde kullanın:To see the number and state of pods in your cluster, use the kubectl get command as follows:

kubectl get pods

Aşağıdaki örnek çıktıda bir ön uç podu ve bir arka uç podu gösterilmektedir:The following example output shows one front-end pod and one back-end pod:

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-2549686872-4d2r5   1/1       Running   0          31m
azure-vote-front-848767080-tf34m   1/1       Running   0          31m

azure-vote-front dağıtımındaki pod sayısını el ile değiştirmek için kubectl scale komutunu kullanın.To manually change the number of pods in the azure-vote-front deployment, use the kubectl scale command. Aşağıdaki örnekte ön uç podlarının sayısı 5'e çıkarılmaktadır:The following example increases the number of front-end pods to 5:

kubectl scale --replicas=5 deployment/azure-vote-front

Kubectl 'yi yeniden çalıştırarak, aks 'lerin ek düğüm 'leri başarıyla oluşturduğunu doğrulayın.Run kubectl get pods again to verify that AKS successfully creates the additional pods. Bir dakikadan sonra, kümelerinizi kümenizde bulabilirsiniz:After a minute or so, the pods are available in your cluster:

kubectl get pods

                                    READY     STATUS    RESTARTS   AGE
azure-vote-back-2606967446-nmpcf    1/1       Running   0          15m
azure-vote-front-3309479140-2hfh0   1/1       Running   0          3m
azure-vote-front-3309479140-bzt05   1/1       Running   0          3m
azure-vote-front-3309479140-fvcvm   1/1       Running   0          3m
azure-vote-front-3309479140-hrbf2   1/1       Running   0          15m
azure-vote-front-3309479140-qphz8   1/1       Running   0          3m

Pod’ları otomatik ölçeklendirmeAutoscale pods

Kubernetes, bir dağıtımdaki pod’ların sayısını CPU kullanımı ve diğer seçili ölçümleri temel alarak ayarlamak için yatay pod otomatik ölçeklendirmeyi destekler.Kubernetes supports horizontal pod autoscaling to adjust the number of pods in a deployment depending on CPU utilization or other select metrics. Ölçüm Sunucusu, Kubernetes'e kaynak kullanımı sağlamak için kullanılır ve AKS kümesi 1.10 ve üzeri sürümlerde otomatik olarak dağıtılır.The Metrics Server is used to provide resource utilization to Kubernetes, and is automatically deployed in AKS clusters versions 1.10 and higher. AKS kümenizin sürümünü görmek için aşağıdaki örnekte gösterildiği gibi az aks show komutunu kullanın:To see the version of your AKS cluster, use the az aks show command, as shown in the following example:

az aks show --resource-group myResourceGroup --name myAKSCluster --query kubernetesVersion --output table

Not

AKS kümeniz 1,10'den küçükse, ölçüm sunucusu otomatik olarak yüklenmez.If your AKS cluster is less than 1.10, the Metrics Server is not automatically installed. Ölçüm sunucusu yükleme bildirimleri components.yaml , ölçüm sunucusu sürümlerindeki bir varlık olarak kullanılabilir, bu da bunları bir URL aracılığıyla yükleyebileceğiniz anlamına gelir.Metrics Server installation manifests are available as a components.yaml asset on Metrics Server releases, which means you can install them via a url. Bu YAML tanımları hakkında daha fazla bilgi edinmek için README 'ın dağıtım bölümüne bakın.To learn more about these YAML definitions, see the Deployment section of the readme.

Örnek yükleme:Example installation:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml

Otomatik Scaler 'yi kullanmak için, yığınlarınızdaki tüm kapsayıcılar ve yığınlarınızın CPU istekleri ve sınırları tanımlı olmalıdır.To use the autoscaler, all containers in your pods and your pods must have CPU requests and limits defined. azure-vote-frontDağıtımda, ön uç kapsayıcısı, 0,5 CPU sınırlaması ile 0,25 CPU talep ediyor.In the azure-vote-front deployment, the front-end container already requests 0.25 CPU, with a limit of 0.5 CPU. Bu kaynak istekleri ve limitleri aşağıdaki örnek kod parçacığında gösterildiği gibi tanımlanmıştır:These resource requests and limits are defined as shown in the following example snippet:

resources:
  requests:
     cpu: 250m
  limits:
     cpu: 500m

Aşağıdaki örnek, azure-vote-front dağıtımındaki podların sayısını otomatik olarak ölçeklendirmek için kubectl autoscale komutunu kullanır.The following example uses the kubectl autoscale command to autoscale the number of pods in the azure-vote-front deployment. Tüm FID 'ler genelinde ortalama CPU kullanımı, istenen kullanımlarının %50 ' ünü aşarsa, otomatik Scaler, Pod 'leri en fazla 10 örneğe kadar artırır.If average CPU utilization across all pods exceeds 50% of their requested usage, the autoscaler increases the pods up to a maximum of 10 instances. Dağıtım için en az 3 örnek tanımlanmıştır:A minimum of 3 instances is then defined for the deployment:

kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10

Alternatif olarak, otomatik Scaler davranışını ve kaynak sınırlarını tanımlamak için bir bildirim dosyası da oluşturabilirsiniz.Alternatively, you can create a manifest file to define the autoscaler behavior and resource limits. Aşağıda adlı bir bildirim dosyası örneği verilmiştir azure-vote-hpa.yaml .The following is an example of a manifest file named azure-vote-hpa.yaml.

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: azure-vote-back-hpa
spec:
  maxReplicas: 10 # define max replica count
  minReplicas: 3  # define min replica count
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: azure-vote-back
  targetCPUUtilizationPercentage: 50 # target CPU utilization

---

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: azure-vote-front-hpa
spec:
  maxReplicas: 10 # define max replica count
  minReplicas: 3  # define min replica count
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: azure-vote-front
  targetCPUUtilizationPercentage: 50 # target CPU utilization

kubectl applyBildirim dosyasında tanımlanan otomatik Scaler 'ı uygulamak için kullanın azure-vote-hpa.yaml .Use kubectl apply to apply the autoscaler defined in the azure-vote-hpa.yaml manifest file.

kubectl apply -f azure-vote-hpa.yaml

Otomatik ölçeklendirme durumunu görmek için kubectl get hpa komutunu şu şekilde kullanın:To see the status of the autoscaler, use the kubectl get hpa command as follows:

kubectl get hpa

NAME               REFERENCE                     TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
azure-vote-front   Deployment/azure-vote-front   0% / 50%   3         10        3          2m

Birkaç dakika sonra Azure Vote uygulamasında en az yük ile, pod çoğaltmalarının sayısı otomatik olarak üçe iner.After a few minutes, with minimal load on the Azure Vote app, the number of pod replicas decreases automatically to three. kubectl get pods komutunu tekrar kullanarak gereksiz podların kaldırıldığını görebilirsiniz.You can use kubectl get pods again to see the unneeded pods being removed.

AKS düğümlerini el ile ölçeklendirmeManually scale AKS nodes

Önceki öğreticideki komutları kullanarak Kubernetes kümenizi oluşturduysanız iki düğüm vardır.If you created your Kubernetes cluster using the commands in the previous tutorial, it has two nodes. Kümenizde daha fazla veya daha az kapsayıcı iş yükü planlıyorsanız, düğüm sayısını el ile ayarlayabilirsiniz.You can adjust the number of nodes manually if you plan more or fewer container workloads on your cluster.

Aşağıdaki örnek, myAKSCluster adlı Kubernetes kümesinde düğümlerin sayısını üçe yükseltir.The following example increases the number of nodes to three in the Kubernetes cluster named myAKSCluster. Komutun tamamlanması birkaç dakika sürer.The command takes a couple of minutes to complete.

az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3

Küme başarıyla ölçeklendirildiğinde, çıktı aşağıdaki örneğe benzer:When the cluster has successfully scaled, the output is similar to following example:

"agentPoolProfiles": [
  {
    "count": 3,
    "dnsPrefix": null,
    "fqdn": null,
    "name": "myAKSCluster",
    "osDiskSizeGb": null,
    "osType": "Linux",
    "ports": null,
    "storageProfile": "ManagedDisks",
    "vmSize": "Standard_D2_v2",
    "vnetSubnetId": null
  }

Sonraki adımlarNext steps

Bu öğreticide, Kubernetes kümenizde farklı ölçeklendirme özellikleri kullandınız.In this tutorial, you used different scaling features in your Kubernetes cluster. Şunları öğrendiniz:You learned how to:

  • Uygulamanızı çalıştıran Kubernetes podlarını el ile ölçeklendirmeManually scale Kubernetes pods that run your application
  • Uygulama ön ucunu çalıştıran otomatik ölçeklendirme podlarını yapılandırmaConfigure autoscaling pods that run the app front-end
  • Kubernetes düğümlerini el ile ölçeklendirinManually scale the Kubernetes nodes

Kubernetes’te uygulama güncelleştirmeyi öğrenmek için sonraki öğreticiye ilerleyin.Advance to the next tutorial to learn how to update application in Kubernetes.