Öğ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.

Bu öğreticide, uygulamadaki podların ölçeğini genişletecek, pod otomatik ölçeklendirmesini deneyecek ve kümenin iş yüklerini barındırma kapasitesini değiştirmek için Azure VM düğümlerinin sayısını ölçeklendirebilirsiniz. Şunları yapmayı öğreneceksiniz:

  • Kubernetes düğümlerini ölçeklendirin.
  • Uygulamanızı çalıştıran Kubernetes podlarını el ile ölçeklendirin.
  • Uygulamanın ö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ü olarak paketlediniz, görüntüyü Azure Container Registry’ye yüklediniz, bir AKS kümesi oluşturdunuz, bir uygulamayı 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 adımları izlemek istiyorsanız, Öğretici 1 - AKS için uygulamayı hazırlama ile başlayın.

Bu eğitim, pod ve düğüm sayılarını değiştirir ve bilgi işlem maliyetlerini artırabilir. AKS iş yüklerini ve düğüm havuzlarını ölçeklendirme iznine sahip bir kimlik (kaynak grubu için Katkıda Bulunan veya Sahip gibi) kullanı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

AKS masaüstü

  1. Ölçeklendirme>Dağıtımı Seç: order-service>Yapılandırmayı Düzenle>Çoğaltma Sayısı: 5 seçeneklerini belirleyerek order-service için ölçeklendirme yapılandırmasını düzenleyin. Sipariş hizmetinin ölçek yapılandırmasını düzenlemeyi gösteren ekran görüntüsü.

  2. Devam etmeden önce dağıtım güncelleştirmesinin tamamlandığını doğrulayın.

  3. 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
    
  4. store-front dağıtımındaki pod sayısını kubectl scale komutunu kullanarak manuel olarak değiştirin.

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

    kubectl get pods --selector app=store-front
    

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

    NAME                              READY     STATUS    RESTARTS   AGE
    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 olarak ölçeklendirme

AKS masaüstü

  1. Project içinde Uygulamayı Dağıt düğmesini >Kubernetes YAML'yi seçin. Uygulama kaynağı kubernetes YAML'yi seçin

  2. Bu YAML otomatik ölçeklendirici bildirimini ve kaynak sınırlarını kopyalayıp yapıştırın.

    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
    
  3. Sonraki>Dağıt>Kapat seçin. YAML yapılandırmasında yapıştırmayı gösteren ekran görüntüsü.

  4. Ölçeklendirme>Dağıtımı seçin: store-front seçin. Ölçeklendirme modunun artık HPA, Çoğaltma Sınırları ve CPU Kullanımı/Hedef olarak ayarlandığını yapılandırma tarafından görebilirsiniz. Mağaza ön dağıtımı için HPA modunu gösteren AKS masaüstü ölçeklendirmeye genel bakışı gösteren ekran görüntüsü.

  5. HPA modunun etkinleştirildiğini ve çoğaltma sınırlarının bildirim değerleriyle eşleşip eşleşmediğini doğrulayın.

Komut satırı

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. aks-store-quickstart dağıtımında, ön uç kapsayıcısı 1m CPU talep eder ve sınırı 1000m CPU’dur.

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 Front uygulaması üzerindeki yük minimum düzeydeyken pod kopyası sayısı üçe düşer. Gereksiz podların kaldırıldığını görmek için komutunu yeniden kullanabilirsiniz kubectl get pods .

    TARGETS ve REPLICAS sütunları, store-front-hpa için beklenen otomatik ölçeklendirme davranışını gösterdiğinde devam edin.

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

Not

AKS Otomatik kümesi oluşturduysanız, küme düğümleri otomatik olarak ölçeklediğinden bu adımlar uygulanmaz.

AKS Standard kümenizi önceki öğreticilerdeki komutları kullanarak oluşturduysanız kümenizin üç 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ümesindeki düğüm sayısını beşe yükseltir. Komutun tamamlanması birkaç dakika sürer.

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

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

    az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster --query "[].{name:name,count:count}" -o table
    
    az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 5
    

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

    "aadProfile": null,
    "addonProfiles": null,
    "agentPoolProfiles": [
      {
        ...
        "count": 5,
        "mode": "System",
        "name": "nodepool1",
        "osDiskSizeGb": 128,
        "osDiskType": "Managed",
        "osType": "Linux",
        "ports": null,
        "vmSize": "Standard_DS2_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çekleyicisini 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.

İşiniz bittiğinde Sil simgesini seçin ve onay iletisinde Ad alanını da sil'i seçin. Çöp kutusu simgesine tıklayarak AKS masaüstü projesinin silinmesini gösteren ekran görüntüsü.

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