Aktifkan Xtrace dalam AlbConfig untuk menyisipkan ID jejak pada ingress ALB dan mengkorelasikan log akses dengan jejak terdistribusi—tanpa perlu instrumentasi per layanan.
Prasyarat
Pastikan Anda telah:
Menginstal ALB Ingress Controller (versi 2.11.1 atau lebih baru) pada kluster Anda
New clusters: Pada halaman Component Configuration saat pembuatan kluster, pilih ALB Ingress di bidang Ingress. Lihat Buat kluster ACK yang dikelola, Buat kluster khusus ACK (pembuatan kluster baru telah dihentikan), atau Buat kluster ACK serverless.
Kluster yang sudah ada: Instal atau tingkatkan komponen tersebut di Kelola komponen.
(Hanya untuk kluster khusus ACK) ALB Ingress Controller memiliki izin akses yang diperlukan. Berikan izin akses ALB Ingress Controller ke kluster khusus ACK.
Managed Service for OpenTelemetry telah diaktifkan. Aktifkan Managed Service for OpenTelemetry jika diperlukan.
Cara kerja
Saat permintaan mencapai listener ALB, ALB menghasilkan ID jejak menggunakan algoritma pengambilan sampel Zipkin dan menyuntikkannya ke header permintaan. ALB meneruskan permintaan ke backend dengan ID jejak yang dilampirkan. Log akses—termasuk ID jejak—ditulis ke Logstore Simple Log Service (SLS). Managed Service for OpenTelemetry membaca log tersebut, merekonstruksi jejak, dan menampilkannya di konsol OpenTelemetry.
Konfigurasikan Xtrace di tingkat listener dalam AlbConfig. Laju pengambilan sampel berlaku untuk seluruh traffic pada listener tersebut.
Aktifkan Xtrace untuk ALB Ingress
Langkah 1: Aktifkan Simple Log Service untuk kluster
Aktifkan Simple Log Service untuk kluster Anda agar proyek SLS dibuat secara otomatis. Lihat Kumpulkan log dari kontainer kluster ACK.
Langkah 2: Dapatkan ID proyek SLS
Masuk ke Konsol ACK dan klik Clusters.
Klik nama kluster Anda, lalu klik Cluster Information.
Pada tab Basic Information, salin nilai Simple Log Service Project untuk Langkah 3.
Langkah 3: Buat AlbConfig
AlbConfig membuat instans ALB dengan log akses Simple Log Service dan Xtrace yang diaktifkan pada listener.
Buat
alb-test.yaml:Ubah pengaturan Xtrace hanya setelah log akses Simple Log Service diaktifkan pada instans ALB. Untuk menggunakan kembali instans ALB yang sudah ada, atur
forceOverride: truedi bawahspec.configuntuk menimpa properti yang sudah ada. Lihat Gunakan kembali instans ALB yang sudah ada.Lihat Buat dan kelola vSwitch.
Parameter Xtrace
Parameter
Deskripsi
Default
Rentang
tracingEnabledMengaktifkan Xtrace untuk pendengar
falsetrue/falsetracingSampleLaju pengambilan sampel. 10000 = 100%, 5000 = 50%, 1 = 0,01%
—
1–10000
tracingTypeAlgoritma pengambilan sampel
—
ZipkinapiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb-demo spec: config: name: alb-test addressType: Intranet zoneMappings: # vSwitch harus berada di zona yang didukung ALB dan VPC yang sama dengan kluster. Pilih minimal dua vSwitch di zona berbeda untuk ketersediaan tinggi. - vSwitchId: vsw-2vc82nndnoo********** # Ganti dengan ID vSwitch Anda. - vSwitchId: vsw-2vc30f5mlhs********** accessLogConfig: logProject: "k8s-log-xz92lvykqj1siwvif****" # Ganti dengan ID proyek SLS Anda dari Langkah 2. logStore: alb_xz92lvykqj1siwvif**** # Harus dimulai dengan "alb_". Dibuat otomatis jika belum ada. listeners: - port: 80 protocol: HTTP logConfig: accessLogRecordCustomizedHeadersEnabled: false accessLogTracingConfig: tracingEnabled: true # Atur ke true untuk mengaktifkan Xtrace. Default: false. tracingSample: 9999 # Laju pengambilan sampel. Rentang: 1-10000, di mana 10000 = 100%. Contoh: 9999 = 99,99%. tracingType: Zipkin # Algoritma pengambilan sampel. Hanya berlaku saat tracingEnabled bernilai true.Terapkan AlbConfig:
kubectl apply -f alb-test.yamlOutput yang diharapkan:
albconfig.alibabacloud.com/alb-demo created
Langkah 4: Buat IngressClass
Buat
alb.yaml:apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb spec: controller: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig name: alb-demoTerapkan IngressClass:
kubectl apply -f alb.yamlOutput yang diharapkan:
ingressclass.networking.k8s.io/alb created
Langkah 5: Sebarkan layanan dan konfigurasikan routing Ingress
Buat
cafe-service.yamluntuk menyebarkan Penyebarancoffeedan Layanancoffee-svc:apiVersion: apps/v1 kind: Deployment metadata: name: coffee spec: replicas: 2 selector: matchLabels: app: coffee template: metadata: labels: app: coffee spec: containers: - name: coffee image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: coffee-svc spec: ports: - port: 80 targetPort: 80 protocol: TCP selector: app: coffee type: NodePortSebarkan layanan:
kubectl apply -f cafe-service.yamlOutput yang diharapkan:
deployment.apps/coffee created service/coffee-svc createdBuat
cafe-ingress.yamldengan aturan routing Ingress:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cafe-ingress spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /coffee pathType: ImplementationSpecific backend: service: name: coffee-svc port: number: 80Terapkan Ingress:
kubectl apply -f cafe-ingress.yamlOutput yang diharapkan:
ingress.networking.k8s.io/cafe-ingress created
Langkah 6: Konfigurasikan resolusi nama domain
Jika Anda menetapkan domain kustom di spec.rules.host, tambahkan Rekaman CNAME yang mengarah ke nama DNS ALB. Lihat Buat dan gunakan ALB Ingress untuk mengekspos Layanan ke traffic eksternal.
Langkah 7: Kirim permintaan untuk menghasilkan data jejak
Dapatkan alamat ALB:
kubectl get ingOutput yang diharapkan:
NAME CLASS HOSTS ADDRESS PORTS AGE cafe-ingress alb demo.domain.ingress.top alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com 80 16mKirim permintaan:
Jejak akan muncul di konsol setelah cukup banyak permintaan diambil sampelnya. Dengan
tracingSample: 9999(99,99%), satu permintaan sudah cukup. Dengan laju yang lebih rendah—misalnya,tracingSample: 100(1%)—kirim minimal 100 permintaan.curl -H Host:demo.domain.ingress.top http://alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com/coffeefor i in $(seq 1 100); do curl -s -o /dev/null -H Host:demo.domain.ingress.top http://alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com/coffee; doneTanggapan berupa halaman HTML berjudul Hello World.
Verifikasi tracing
Periksa log akses SLS
Masuk ke Konsol ACK dan klik Clusters.
Klik nama kluster Anda, lalu klik Cluster Information.
Pada tab Basic Information, klik tautan Simple Log Service Project untuk membuka konsol SLS. Pilih Logstore yang namanya diawali dengan
alb_(misalnya,alb_xz92lvykqj1siwvif****). Pencarian xtrace harus sesuai denganslb_xtrace(ID jejak) danxtrace_type(nilai zipkin), yang mengonfirmasi bahwa log akses mencatat data tracing.
Lihat jejak di konsol OpenTelemetry
Masuk ke Konsol Managed Service for OpenTelemetry.
Pada halaman Applications, pilih wilayah Anda dan klik nama aplikasi Anda.
Klik API Calls > Trace untuk melihat data jejak. Tab ini menampilkan hingga 100 jejak dengan durasi terpanjang. Lihat Panggilan Antarmuka.
Langkah selanjutnya
Untuk menggunakan Nginx Ingress sebagai gantinya dalam pelacakan terdistribusi, lihat Implementasikan Analisis Tracing untuk add-on Nginx Ingress Controller.
Untuk masalah, lihat Pemecahan Masalah ALB Ingress dan FAQ ALB Ingress.