Öğretici - Azure Kubernetes Service'te (AKS) uygulamaları ölçeklendirme

Önceki öğreticileri izlediyseniz çalışan bir Kubernetes kümeniz ve Azure Store Ön uygulamanız vardır.

Yedinin altıncı bölümü olan bu öğreticide uygulamadaki podların ölçeğini genişletecek, pod otomatik ölçeklendirmesini deneyecek ve azure VM düğümlerinin sayısını ölçeklendirin ve kümenin iş yüklerini barındırma kapasitesini değiştirin. Şunları yapmayı öğreneceksiniz:

  • Kubernetes düğümlerini ölçeklendirin.
  • Uygulamanızı çalıştıran Kubernetes podlarını el ile ölçeklendirin.
  • Uygulama ön ucunu çalıştıran otomatik ölçeklendirme podlarını yapılandırın.

Başlamadan önce

Önceki öğreticilerde bir uygulamayı kapsayıcı görüntüsüne paketlediyseniz, görüntüyü Azure Container Registry'ye yüklediyseniz, aks kümesi oluşturdunuz, bir uygulama dağıttınız ve güncelleştirilmiş bir uygulamayı yeniden dağıtmak için Azure Service Bus'ı kullandınız. Bu adımları tamamlamadıysanız ve takip etmek istiyorsanız, Öğretici 1 - AKS için uygulama hazırlama ile başlayın.

Bu öğretici için Azure CLI sürüm 2.34.1 veya üzeri gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Pod’ları el ile ölçeklendirme

  1. komutunu kullanarak kubectl get kümenizdeki podları görüntüleyin.

    kubectl get pods
    

    Aşağıdaki örnek çıktıda Azure Store Front uygulamasını çalıştıran podlar gösterilmektedir:

    NAME                               READY     STATUS     RESTARTS   AGE
    order-service-848767080-tf34m      1/1       Running    0          31m
    product-service-4019737227-2q2qz   1/1       Running    0          31m
    store-front-2606967446-2q2qz       1/1       Running    0          31m
    
  2. komutunu kullanarak depo ön dağıtımındaki pod sayısını el ile kubectl scale değiştirin.

    kubectl scale --replicas=5 deployment.apps/store-front
    
  3. komutunu kullanarak ek podların oluşturulduğunu kubectl get pods doğrulayın.

    kubectl get pods
    

    Aşağıdaki örnek çıktı, Azure Store Ön uygulamasını çalıştıran ek podları gösterir:

                                      READY     STATUS    RESTARTS   AGE
    store-front-2606967446-2q2qzc     1/1       Running   0          15m
    store-front-3309479140-2hfh0      1/1       Running   0          3m
    store-front-3309479140-bzt05      1/1       Running   0          3m
    store-front-3309479140-fvcvm      1/1       Running   0          3m
    store-front-3309479140-hrbf2      1/1       Running   0          15m
    store-front-3309479140-qphz8      1/1       Running   0          3m
    

Pod’ları otomatik ölçeklendirme

Yatay pod otomatik ölçeklendiricisini kullanmak için tüm kapsayıcıların tanımlı CPU isteklerine ve sınırlarına ve podların belirtilen isteklere sahip olması gerekir. Dağıtımdaaks-store-quickstart, ön uç kapsayıcısı 1000m CPU sınırıyla 1m CPU ister.

Bu kaynak istekleri ve sınırları, aşağıdaki daraltılmış YAML örneğinde gösterildiği gibi her kapsayıcı için tanımlanır:

...
  containers:
  - name: store-front
    image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
    ports:
    - containerPort: 8080
      name: store-front
...
    resources:
      requests:
        cpu: 1m
...
      limits:
        cpu: 1000m
...

Bildirim dosyası kullanarak podları otomatik ölçeklendirme

  1. Aşağıdaki sıkıştırılmış örnek bildirim dosyasında gösterildiği gibi otomatik ölçeklendirici davranışını ve kaynak sınırlarını tanımlamak için bir bildirim dosyası aks-store-quickstart-hpa.yamloluşturun:

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: store-front-hpa
    spec:
      maxReplicas: 10 # define max replica count
      minReplicas: 3  # define min replica count
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: store-front
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 50
    
  2. komutunu kullanarak kubectl apply otomatik ölçeklendirici bildirim dosyasını uygulayın.

    kubectl apply -f aks-store-quickstart-hpa.yaml
    
  3. komutunu kullanarak kubectl get hpa otomatik ölçeklendiricinin durumunu denetleyin.

    kubectl get hpa
    

    Birkaç dakika sonra, Azure Store Ön uygulamasında minimum yükle pod çoğaltmalarının sayısı üçe düşer. kubectl get pods komutunu tekrar kullanarak gereksiz podların kaldırıldığını görebilirsiniz.

Not

İşlenmesi gereken olay sayısına göre ölçeklendirmeyi sağlamak için kümenize Kubernetes tabanlı Olay Temelli Otomatik Ölçeklendirici (KEDA) AKS eklentisini etkinleştirebilirsiniz. Daha fazla bilgi için bkz . Kubernetes Event-Driven Autoscaling (KEDA) eklentisi (Önizleme) ile basitleştirilmiş uygulama otomatik ölçeklendirmesini etkinleştirme.

AKS düğümlerini el ile ölçeklendirme

Kubernetes kümenizi önceki öğreticilerdeki komutları kullanarak oluşturduysanız kümenizin iki düğümü vardır. Bu miktarı artırmak veya azaltmak istiyorsanız düğüm sayısını el ile ayarlayabilirsiniz.

Aşağıdaki örnek, myAKSCluster adlı Kubernetes kümesinde düğümlerin sayısını üçe yükseltir. Komutun tamamlanması birkaç dakika sürer.

  • komutunu kullanarak küme düğümlerinizi ölçeklendirin az aks scale .

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

    Küme başarıyla ölçeklendikten sonra, çıkışınız aşağıdaki örnek çıkışa benzer olacaktır:

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

Kümenizdeki düğümleri de otomatik olarak ölçekleyebilirsiniz. Daha fazla bilgi için bkz . Düğüm havuzlarıyla küme otomatik ölçeklendiricisini kullanma.

Sonraki adımlar

Bu öğreticide, Kubernetes kümenizde farklı ölçeklendirme özellikleri kullandınız. Şunları öğrendiniz:

  • Uygulamanızı çalıştıran Kubernetes podlarını el ile ölçeklendirin.
  • Uygulama ön ucunu çalıştıran otomatik ölçeklendirme podlarını yapılandırın.
  • Kubernetes düğümlerini el ile ölçeklendirin.

Sonraki öğreticide AKS kümenizde Kubernetes'i yükseltmeyi öğreneceksiniz.