Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Service Mesh:Customize Waypoint resource usage and HPA

Son Güncelleme:Oct 07, 2026

Waypoint proxy'leri yüksek L7 trafik hacimlerini işlediğinde veya uzun ömürlü bağlantılar için zarif kapatma gerektirdiğinde varsayılan kaynak tahsisleri yetersiz kalabilir. Service Mesh (ASM), Ambient modunda Gateway API aracılığıyla dağıtılan Waypoint proxy'leri için CPU ve bellek isteklerini, Yatay Pod Otomatik Ölçeklendirici (HPA) ölçeklendirme sınırlarını ve proxy boşaltma davranışını özelleştirmenize olanak tanır.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • Kümenizde Gateway API bileşeninin 1.2.1 veya sonraki bir sürümünün yüklü olması

Çalışma mantığı

Bir Waypoint'i özelleştirmek için hedef ayarları bir ConfigMap içinde tanımlayın ve bunu Gateway kaynağından referans verin. ASM, ConfigMap'i okur ve geçersiz kılmalarınızı Strategic Merge Patch kullanarak varsayılan kaynak yapılandırmasıyla birleştirir. ConfigMap'iniz yalnızca değiştirmek istediğiniz alanları içermelidir; ASM birleştirmeyi yönetir ve Waypoint Deployment ile HPA'yı buna göre oluşturur veya günceller.

ConfigMap üç yapılandırma bölümünü destekler:

Bölüm Amaç
data.horizontalPodAutoscaler Minimum ve maksimum çoğaltma sayısı gibi HPA ayarları
data.deployment Konteyner kaynak istekleri ve zarif kapatma zamanlaması gibi pod düzeyindeki ayarlar
data.proxyConfig Boşaltma süresi ve sonlandırma davranışı gibi Istio proxy çalışma zamanı ayarları

Özel ayarlara sahip bir ConfigMap oluşturun

ConfigMap, yapılandırdığı Gateway kaynağıyla aynı ad alanında olmalıdır.

  1. Aşağıdaki içeriği gw-options.yaml olarak kaydedin.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: gw-options
    data:
      horizontalPodAutoscaler: |
        spec:
          minReplicas: 2
          maxReplicas: 2
      deployment: |
        spec:
          # Do not configure replicas when HPA is enabled.
          # replicas: 4
          template:
            spec:
              containers:
              - name: istio-proxy
                resources:
                  requests:
                    cpu: 1000m
              # The maximum wait time before a pod goes offline.
              terminationGracePeriodSeconds: 120
      proxyConfig: |
        # The proxy drain duration.
        drainDuration: 30s
        # The maximum duration for the proxy to stop draining. Ensure that terminationGracePeriodSeconds > terminationDrainDuration > drainDuration.
        terminationDrainDuration: 60s
  2. ConfigMap'i uygulayın.

    kubectl apply -f gw-options.yaml

ConfigMap parametre referansı

HPA parametreleri (data.horizontalPodAutoscaler)

Parametre Açıklama
spec.minReplicas Minimum Waypoint pod çoğaltma sayısı. Önceki örnekte 2 olarak ayarlanmıştır.
spec.maxReplicas Maksimum Waypoint pod çoğaltma sayısı. Önceki örnekte 2 (sabit çoğaltma sayısı) olarak ayarlanmıştır.
Önemli

HPA etkinleştirildiğinde Deployment bölümünde replicas ayarlamayın. HPA denetleyicisi çoğaltma sayılarını otomatik olarak yönetir ve statik bir replicas değeri HPA ölçeklendirme kararlarıyla çakışır.

Deployment parametreleri (data.deployment)

Parametre Açıklama
spec.template.spec.containers[].name Konteyner adı. Waypoint proxy konteyneri için istio-proxy olarak ayarlayın.
spec.template.spec.containers[].resources.requests.cpu Waypoint proxy için CPU isteği. Önceki örnekte 1000m (1 vCPU) olarak ayarlanmıştır. Yüksek L7 trafiğine sahip ad alanları için bu değeri artırın.
spec.template.spec.terminationGracePeriodSeconds Kubernetes'in kapatma sırasında bir pod'u zorla sonlandırmadan önce beklediği maksimum süre (saniye cinsinden). Önceki örnekte 120 olarak ayarlanmıştır.

ProxyConfig parametreleri (data.proxyConfig)

Parametre Açıklama
drainDuration Envoy proxy'nin kapatma sırasında aktif bağlantıları boşalttığı süre. Önceki örnekte 30s olarak ayarlanmıştır.
terminationDrainDuration Proxy'nin zarif kapatmayı başlattıktan sonra kalan bağlantıları sonlandırmadan önce beklediği maksimum süre. Önceki örnekte 60s olarak ayarlanmıştır.
Önemli

Üç zamanlama parametresi şu sıralama kısıtlamasını karşılamalıdır: terminationGracePeriodSeconds > terminationDrainDuration > drainDuration. Bu kısıtlama ihlal edilirse proxy boşaltmayı bitirmeden bağlantılar sonlandırılabilir ve bu da istek hatalarına neden olabilir.

ConfigMap'i Gateway kaynağına bağlayın

ConfigMap'i oluşturduktan sonra infrastructure.parametersRef alanı aracılığıyla onu Gateway kaynağından referans verin.

  1. Aşağıdaki içeriği gateway.yaml olarak kaydedin. infrastructure.parametersRef bloğu gw-options ConfigMap'ine referans verir. ASM bu referansı okur ve ConfigMap değerlerini Waypoint Deployment ve HPA'ya uygular.

    apiVersion: gateway.networking.k8s.io/v1
    kind: Gateway
    metadata:
      name: waypoint
      namespace: default
    spec:
      infrastructure:
        parametersRef:
          group: ""
          kind: ConfigMap
          name: gw-options
      gatewayClassName: istio-waypoint
      listeners:
      - allowedRoutes:
          namespaces:
            from: Same
        name: mesh
        port: 15008
        protocol: HBONE
  2. Gateway kaynağını uygulayın.

    kubectl apply -f gateway.yaml

Yapılandırmayı doğrulayın

Her iki kaynağı da uyguladıktan sonra ASM'nin ConfigMap ayarlarını Waypoint Deployment ve HPA ile birleştirdiğini doğrulayın.

  1. Waypoint Deployment'ı kontrol edin. Çıktıda şunları onaylayın:

    • istio-proxy konteynerinin resources.requests altında cpu: 1000m değeri vardır.

    • terminationGracePeriodSeconds değeri 120 olarak ayarlanmıştır.

    kubectl get deployment waypoint -n default -o yaml
  2. HPA'yı kontrol edin. Waypoint HPA için MINPODS değerinin 2 ve MAXPODS değerinin 2 olduğunu onaylayın.

    kubectl get hpa -n default