Bu konu, ACK kümeleri için açık kaynaklı bir bileşen olan ack-prometheus-operator'ı örnek alarak, mesh izleme amacıyla kendi yönettiğiniz bir Prometheus'u bir ASM örneği ile nasıl entegre edeceğinizi açıklar.
Önkoşullar
Bir ACK kümesi mevcuttur. Daha fazla bilgi için bkz. ACK yönetilen kümesi oluşturma.
Bir ASM örneği mevcuttur. Daha fazla bilgi için bkz. ASM örneği oluşturma. ACK kümesinde Prometheus ve Grafana örnekleri yüklenmiştir. Daha fazla bilgi için bkz. Açık kaynaklı Prometheus izleme.
ack-prometheus-operator'ı yükleyin
Bu konuda, ACK kümeleri için açık kaynaklı bir bileşen olan ack-prometheus-operator örnek olarak kullanılmıştır. Kümenizde başka yöntemlerle kendi yönettiğiniz bir Prometheus kurarsanız, additionalScrapeConfigs içeriğini Prometheus örneğinizin scrape yapılandırmalarına eklemeniz gerekir. Scrape yapılandırmaları hakkında daha fazla bilgi için bkz. prometheus_scrape_config.
ACK konsolu adresine gidin. Sol gezinme bölmesinde Clusters öğesini tıklayın.
Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde seçeneğini tıklayın.
Helm sayfasında ack-prometheus-operator uygulamasını bulun ve Actions sütunundaki Update seçeneğini tıklayın.
-
Update Release panelinde YAML metin kutusundaki
additionalScrapeConfigsalanını değiştirin ve ardından OK seçeneğini tıklayın.YAML dosyası uzundur.
additionalScrapeConfigsalanını bulmak için Ctrl+F tuşlarına basarak arama yapın. DeğiştirilenadditionalScrapeConfigsalanı aşağıdaki gibidir:additionalScrapeConfigs: # Scrape config for envoy stats - job_name: 'envoy-stats' metrics_path: /stats/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_port_name] action: keep regex: '.*-envoy-prom' - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:15090 target_label: __address__ - action: labeldrop regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name
Ölçümler oluşturun
Veri düzlemindeki hizmetlere istek gönderin. Bu örnekte Bookinfo uygulaması kullanılmaktadır. Daha fazla bilgi için bkz. başlangıç kılavuzu. Bookinfo uygulamasının ürün sayfasına gidin ve ölçüm oluşturmak için sayfayı birkaç kez yenileyin. Sayfada Type, Pages, Publisher, Language ve ISBN gibi Book Details bilgileri ile Reviewer1'den beş yıldızlı ve Reviewer2'den dört yıldızlı bir incelemeyi içeren Book Reviews bilgileri görüntüleniyorsa örnek uygulama doğru çalışıyor ve ölçüm üretiyor demektir.
Sonuçları doğrulayın
Envoy ölçüm toplamayı doğrulayın
Aşağıdaki komutu çalıştırın. Komut ölçüm döndürürse Envoy bunları topluyor demektir. Boş bir yanıt, toplamanın çalışmadığını gösterir.
details=$(kubectl get pod -l app=details -o jsonpath={.items..metadata.name})
kubectl exec $details -c istio-proxy -- curl -s localhost:15090/stats/prometheus |grep istio
Prometheus'ta mesh ölçümlerini görüntüleyin
ACK konsolu adresine gidin. Sol gezinme bölmesinde Clusters öğesini tıklayın.
Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde seçeneğini tıklayın.
Services sayfasında Prometheus hizmetini bulun ve External IP bağlantısını tıklayın.
Prometheus sayfasında ifade giriş kutusuna
istio_requests_totalyazın ve Execute seçeneğini tıklayın. Sonuçlar tablosunda iki kayıt bulunabilir: Biriresponse_codedeğeri503(değer: 1),source_appdeğerireviews,source_versiondeğeriv2vedestination_servicedeğeriratings.bookinfo.svc.cluster.local; diğeri iseresponse_codedeğeri200(değer: 19),source_appdeğerireviews,source_versiondeğeriv2,destination_appdeğeriratingsvedestination_versiondeğeriv1.
Grafana'da mesh ölçümlerini görüntüleyin
ACK konsolu adresine gidin. Sol gezinme bölmesinde Clusters öğesini tıklayın.
Clusters sayfasında kümenizin adını tıklayın. Sol gezinme bölmesinde seçeneğini tıklayın.
Services sayfasında Grafana'yı arayın ve External IP bağlantısını tıklayın.
Grafana sayfasında Istio Workload Dashboard seçeneğini belirleyin.
