ASM trafik zamanlama paketi, dağıtık sistemlerde merkezi trafik yönetimi için müdahalesiz ve ölçeklenebilir bir mimari sunar. Bu sayede cloud-native uygulamaların güvenilirliği artar, maliyetler azalır ve kaynak kullanımı iyileşir.
ASM trafik zamanlama paketi nedir?
ASM trafik zamanlama paketi, ASM üzerine inşa edilmiş merkezi bir trafik zamanlama mimarisidir. Cloud-native dağıtık uygulamalar arasındaki istekleri yönetir ve zamanlar.
Paket bir Agent ve bir denetleyiciden (controller) oluşur. Denetleyici, önceden tanımlanmış trafik zamanlama ilkelerini Agent'a yayınlar. Bir sidecar proxy'si bir pod'un gelen veya giden isteklerini ilettiğinde, Agent bu istekleri kısıtlamak veya kuyruğa almak için zamanlama kararlarını uygular.
ASM trafik zamanlama paketini etkinleştirin
ACK Serverless ve Container Compute Service (ACS) ASM trafik zamanlama paketini desteklemez.
ASM trafik zamanlama paketini kullanmak için ASM örneğinizin sürümünün 1.21.6.82 veya üzeri olduğundan ve ASM örneğinize bir Kubernetes kümesi eklendiğinden emin olun. Daha fazla bilgi için bkz. ASM örneğine küme ekleme.
ASM trafik zamanlama paketini etkinleştirmek için:
ASM konsolu
ASM konsoluna giriş yapın. Sol gezinme bölmesinde seçeneklerini seçin.
ASM örneğinin adını tıklayın. Sol gezinme bölmesinde seçeneklerini seçin.
Advanced Traffic Scheduling sekmesini seçin ve Enable Traffic Scheduling düğmesini tıklayın.
-
Aşağıdaki parametreleri yapılandırın ve ardından OK düğmesini tıklayın.
Yapılandırma öğesi
Açıklama
Storage Class
Zamanlama agent'ları ile meta veriler arasındaki veri alışverişi için geçerli depolama sınıfları.
Configure Resource
Agent pod'ları için kaynak yapılandırması.
Limit: Varsayılan olarak 2 CPU, 1024 MiB.
Request: Varsayılan olarak 0,5 CPU, 512 MiB.
Timeout Period
Sistem aşırı yüklendiğinde istekler kuyruğa alınır. Belirtilen süreyi aşan kuyruktaki istekler atılır.
Effective Scope
Varsayılan olarak genel kapsamdır. Desteklenen kapsamlar:
-
Gateway kapsamı: Belirli bir ağ geçidiyle ilişkili kaynaklara uygulanır.
-
Workload kapsamı: Belirli bir iş yüküne uygulanır.
-
Namespace kapsamı: Belirli bir ad alanına uygulanır.
-
kubectl
kubectl kullanarak ASM örneğine bağlanın. Daha fazla bilgi için bkz. Kontrol düzleminde kubectl aracılığıyla Istio kaynaklarına erişim.
-
Aşağıdaki komutu çalıştırın:
kubectl patch asmmeshconfig default --type=merge --patch='{"spec":{"adaptiveSchedulerConfiguration":{"enabled":true,"schedulerScopes":[{"namespace":"default"}]}}}'
Desteklenen trafik zamanlama ilkeleri
ASM trafik zamanlama paketi aşağıdaki ilkeleri destekler.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
İzleme ölçümlerini toplayın
Kubernetes kümeleriniz Managed Service for Prometheus veya kendi kurulumunuz olan Prometheus kullanıyorsa, ASM trafik zamanlama agent ölçümlerini toplamak için aşağıdakileri yapılandırın. Bu sayede ASM trafik zamanlama paketindeki belirli bir ilkenin etkili olup olmadığını doğrulayabilirsiniz.
Managed service for Prometheus
Özel bir toplama kuralı eklemek için aşağıdaki kodu çalıştırın. Daha fazla bilgi için bkz. Diğer Prometheus hizmet keşfi.
scrape_configs:
- job_name: asm-adaptive-scheduler-stats
scrape_interval: 30s
scrape_timeout: 30s
metrics_path: /metrics
scheme: http
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels:
- __meta_kubernetes_namespace
action: keep
regex: istio-system
- source_labels:
- __meta_kubernetes_pod_container_port_name
action: keep
regex: server
- source_labels:
- __meta_kubernetes_pod_container_name
action: keep
regex: aperture-agent
Kendi kurulumunuz olan Prometheus örnekleri
Managed service for Prometheus JSON dosyasını, Prometheus yapılandırması bölümünde açıklandığı gibi Prometheus örneğinizin scrape_configs düğümüne ekleyin.