Memantau metrik latensi startup

Halaman ini menjelaskan metrik dan dasbor yang tersedia untuk memantau latensi startup workload Google Kubernetes Engine (GKE) dan node cluster yang mendasarinya. Anda dapat menggunakan metrik untuk melacak, memecahkan masalah, dan mengurangi latensi startup.

Halaman ini ditujukan untuk admin dan operator Platform yang perlu memantau dan mengoptimalkan latensi startup workload mereka. Untuk mempelajari lebih lanjut peran umum yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE umum.

Ringkasan

Latensi startup sangat memengaruhi cara aplikasi Anda merespons lonjakan traffic, seberapa cepat replikanya pulih dari gangguan, dan seberapa efisien biaya pengoperasian cluster dan workload Anda. Memantau latensi startup workload dapat membantu Anda mendeteksi penurunan latensi dan melacak dampak update workload dan infrastruktur terhadap latensi startup.

Mengoptimalkan latensi startup workload memiliki manfaat berikut:

  • Menurunkan latensi respons layanan Anda kepada pengguna selama lonjakan traffic.
  • Mengurangi kapasitas penyajian berlebih yang diperlukan untuk menyerap lonjakan permintaan saat replika baru dibuat.
  • Mengurangi waktu tidak ada aktivitas resource yang sudah di-deploy dan menunggu resource yang tersisa untuk dimulai selama komputasi batch.

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Untuk menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
  • Aktifkan Cloud Logging dan Cloud Monitoring API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    Aktifkan API

Persyaratan

Untuk melihat metrik dan dasbor latensi startup workload, cluster GKE Anda harus memenuhi persyaratan berikut:

  • Anda harus memiliki GKE versi 1.31.1-gke.1678000 atau yang lebih baru.
  • Anda harus mengonfigurasi pengumpulan metrik sistem.
  • Anda harus mengonfigurasi pengumpulan log sistem.
  • Aktifkan kube state metrics dengan komponen POD di cluster Anda untuk melihat metrik Pod dan container.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk mengaktifkan pembuatan log serta mengakses dan memproses log, minta administrator untuk memberi Anda peran IAM berikut:

  • Melihat cluster, node, dan workload GKE: Pelihat Kubernetes Engine (roles/container.viewer) di project Anda
  • Mengakses metrik latensi startup dan melihat dasbor: Monitoring Viewer (roles/monitoring.viewer) di project Anda
  • Mengakses log dengan informasi latensi, seperti peristiwa pengambilan image Kubelet, dan melihatnya di Logs Explorer dan Observability Analytics: Logs Viewer (roles/logging.viewer) di project Anda

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Metrik latensi startup

Metrik latensi startup disertakan dalam metrik sistem GKE dan diekspor ke Cloud Monitoring di project yang sama dengan cluster GKE.

Nama metrik Cloud Monitoring dalam tabel ini harus diawali dengan kubernetes.io/. Awalan tersebut telah dihilangkan dari entri dalam tabel.

Jenis metrik (Tingkat hierarki resource)
Nama tampilan
Jenis, Tipe, Unit
Resource yang dimonitor
Deskripsi
Label
pod/latencies/pod_first_ready  (project)
Latensi pod pertama siap
GAUGE, Double, s
k8s_pod
Latensi startup end-to-end Pod (dari Pod Created hingga Ready), termasuk penarikan image. Dibuat sampelnya setiap 60 detik.
node/latencies/startup  (project)
Latensi startup node
GAUGE, INT64, s
k8s_node
Total latensi startup node, dari CreationTimestamp instance GCE hingga Kubernetes node ready untuk pertama kalinya. Dibuat sampelnya setiap 60 detik.

accelerator_family: klasifikasi node berdasarkan akselerator hardware: gpu, tpu, cpu.
kube_control_plane_available: apakah permintaan pembuatan node diterima saat KCP (bidang kontrol kube) tersedia.
autoscaler/latencies/per_hpa_recommendation_scale_latency_seconds  (project)
Latensi skala rekomendasi per HPA
GAUGE, DOUBLE, s
k8s_scale
Latensi rekomendasi penskalaan Horizontal Pod Autoscaler (HPA) (waktu antara pembuatan metrik dan penerapan rekomendasi penskalaan yang sesuai ke apiserver) untuk target HPA. Dibuat sampelnya setiap 60 detik. Setelah sampelnya dibuat, data tidak akan terlihat selama maksimal 20 detik.

metric_type: jenis sumber metrik. Harus salah satu dari "ContainerResource", "External", "Object", "Pods", atau "Resource".

Melihat dasbor Latensi Startup untuk workload

Dasbor Startup Latency untuk workload hanya tersedia untuk Deployment. Guna melihat metrik latensi startup untuk Deployment, lakukan langkah-langkah berikut di konsol Google Cloud :

  1. Buka halaman Workloads.

    Buka Workloads

  2. Untuk membuka tampilan Detail deployment, klik nama workload yang ingin Anda periksa.

  3. Klik tab Observability.

  4. Pilih Latensi Startup dari menu di sebelah kiri.

Melihat distribusi latensi startup Pod

Latensi startup Pod mengacu pada total latensi startup, termasuk penarikan image, yang mengukur waktu dari status Created Pod hingga status Ready. Anda dapat menilai latensi startup Pod menggunakan dua diagram berikut:

  • Diagram Pod Startup Latency Distribution: diagram ini menunjukkan persentil latensi startup Pod (persentil ke-50, persentil ke-95, dan persentil ke-99) yang dihitung berdasarkan pengamatan peristiwa startup Pod selama interval waktu tetap 3 jam, misalnya, 00.00-03.00 dan 03.00-06.00. Anda dapat menggunakan diagram ini untuk tujuan berikut:

    • Memahami latensi startup Pod dasar pengukuran Anda.
    • Identifikasi perubahan latensi startup Pod dari waktu ke waktu.
    • Korelasikan perubahan latensi startup Pod dengan peristiwa terbaru, seperti peristiwa Deployment Workload atau Cluster Autoscaler. Anda dapat memilih peristiwa dalam daftar Anotasi di bagian atas dasbor.
Diagram Distribusi Latensi Startup Pod
Gambar: Diagram Distribusi Latensi Startup Pod
  • Diagram Jumlah Startup Pod: diagram ini menampilkan jumlah Pod yang dimulai selama interval waktu yang dipilih. Anda dapat menggunakan diagram ini untuk tujuan berikut:

    • Memahami ukuran sampel Pod yang digunakan untuk menghitung persentil distribusi latensi startup Pod untuk interval waktu tertentu.
    • Memahami penyebab Pod dimulai, seperti Deployment Workload atau peristiwa Horizontal Pod Autoscaler. Anda dapat memilih peristiwa dalam daftar Anotasi di bagian atas dasbor.
Diagram Jumlah Startup Pod
Gambar: Diagram Pod Startup Count

Melihat latensi startup setiap Pod

Anda dapat melihat latensi startup setiap Pod pada diagram linimasa Pod First Ready Latency dan daftar terkait.

  • Gunakan diagram linimasa Latensi Siap Pod Pertama untuk mengorelasikan setiap mulai Pod dengan peristiwa terbaru, seperti peristiwa Horizontal Pod Autoscaler atau Cluster Autoscaler. Anda dapat memilih peristiwa ini dalam daftar Anotasi di bagian atas dasbor. Diagram ini membantu Anda menentukan potensi penyebab perubahan latensi startup dibandingkan dengan Pod lain.
  • Gunakan daftar Pod First Ready Latency untuk mengidentifikasi setiap Pod yang memerlukan waktu paling lama atau paling singkat untuk memulai. Anda dapat mengurutkan daftar berdasarkan kolom Latensi. Saat mengidentifikasi Pod yang memiliki latensi startup tertinggi, Anda dapat memecahkan masalah penurunan latensi dengan mengorelasikan peristiwa mulai Pod dengan peristiwa terbaru lainnya.
Diagram Latensi Siap Pertama Pod
Gambar: Diagram Latensi Siap Pertama Pod

Anda dapat mengetahui kapan setiap Pod dibuat dengan melihat nilai di kolom timestamp dalam peristiwa pembuatan Pod yang sesuai. Untuk melihat kolom timestamp, jalankan kueri berikut di Logs Explorer:

   log_id("cloudaudit.googleapis.com/activity") AND
   protoPayload.methodName="io.k8s.core.v1.pods.create" AND
   resource.labels.project_id=PROJECT_ID AND
   resource.labels.cluster_name=CLUSTER_NAME AND
   resource.labels.location=CLUSTER_LOCATION AND
   protoPayload.response.metadata.namespace=NAMESPACE AND
   protoPayload.response.metadata.name=POD_NAME

Untuk mencantumkan semua peristiwa pembuatan Pod untuk beban kerja Anda, gunakan filter berikut dalam kueri sebelumnya: protoPayload.response.metadata.name=~"POD_NAME_PREFIX-[a-f0-9]{7,10}-[a-z0-9]{5}"

Saat membandingkan latensi setiap Pod, Anda dapat menguji dampak berbagai konfigurasi pada latensi startup Pod dan mengidentifikasi konfigurasi optimal berdasarkan persyaratan Anda.

Menentukan latensi penjadwalan Pod

Latensi penjadwalan Pod adalah jumlah waktu antara saat Pod dibuat dan saat Pod dijadwalkan pada node. Latensi penjadwalan Pod berkontribusi pada waktu mulai end-to-end Pod, dan dihitung dengan mengurangi stempel waktu peristiwa penjadwalan Pod dan permintaan pembuatan Pod.

Anda dapat menemukan stempel waktu setiap peristiwa penjadwalan Pod dari kolom jsonPayload.eventTime di peristiwa penjadwalan Pod yang sesuai. Untuk melihat kolom jsonPayload.eventTime, jalankan kueri berikut di Logs Explorer:

  log_id("events")
  jsonPayload.reason="Scheduled"
  resource.type="k8s_pod"
  resource.labels.project_id=PROJECT_ID
  resource.labels.location=CLUSTER_LOCATION
  resource.labels.cluster_name=CLUSTER_NAME
  resource.labels.namespace_name=NAMESPACE
  resource.labels.pod_name=POD_NAME

Untuk mencantumkan semua peristiwa penjadwalan Pod untuk workload Anda, gunakan filter berikut dalam kueri sebelumnya: resource.labels.pod_name=~"POD_NAME_PREFIX-[a-f0-9]{7,10}-[a-z0-9]{5}"

Melihat latensi pengambilan image

Latensi pengambilan image container berkontribusi pada latensi startup Pod dalam skenario saat image belum tersedia di node atau image perlu dimuat ulang. Saat mengoptimalkan latensi pengambilan image, Anda mengurangi latensi startup workload selama peristiwa penyebaran skala cluster.

Anda dapat melihat tabel Kubelet Image Pull Events untuk melihat kapan image container workload ditarik dan berapa lama prosesnya berlangsung.

Tabel Peristiwa Pull Image Kubelet
Gambar: Tabel Peristiwa Penarikan Gambar Kubelet

Latensi pull image tersedia di kolom jsonPayload.message, yang berisi pesan seperti berikut:

  "Successfully pulled image "gcr.io/example-project/image-name" in 17.093s (33.051s including waiting). Image size: 206980012 bytes."

Melihat distribusi latensi rekomendasi penskalaan HPA

Latensi rekomendasi penskalaan Horizontal Pod Autoscaler (HPA) untuk target HPA adalah jumlah waktu antara saat metrik dibuat dan saat rekomendasi penskalaan yang sesuai diterapkan ke server API. Saat Anda mengoptimalkan latensi rekomendasi penskalaan HPA, Anda akan mengurangi latensi startup workload selama peristiwa penyebaran skala.

Penskalaan HPA dapat dilihat pada dua diagram berikut:

  • Diagram HPA Scaling Recommendation Latency Distribution: diagram ini menunjukkan persentil latensi rekomendasi penskalaan HPA (persentil ke-50, persentil ke-95, dan persentil ke-99) yang dihitung berdasarkan pengamatan rekomendasi penskalaan HPA selama interval waktu 3 jam terakhir. Anda dapat menggunakan diagram ini untuk tujuan berikut:

    • Pahami latensi rekomendasi penskalaan HPA dasar pengukuran Anda.
    • Mengidentifikasi perubahan latensi rekomendasi penskalaan HPA dari waktu ke waktu.
    • Korelasikan perubahan latensi rekomendasi penskalaan HPA dengan peristiwa terbaru. Anda dapat memilih peristiwa dalam daftar Anotasi di bagian atas dasbor.
Diagram Distribusi Latensi Rekomendasi Penskalaan HPA
Gambar: Diagram Distribusi Latensi Rekomendasi Penskalaan HPA
  • Diagram HPA Scaling Recommendation Count: diagram ini menunjukkan jumlah rekomendasi penskalaan HPA yang diamati selama interval waktu yang dipilih. Gunakan diagram untuk tugas berikut:

    • Memahami ukuran sampel rekomendasi penskalaan HPA. Sampel digunakan untuk menghitung persentil dalam distribusi latensi untuk rekomendasi penskalaan HPA selama interval waktu tertentu.
    • Korelasikan rekomendasi penskalaan HPA dengan peristiwa startup Pod baru dan dengan peristiwa Horizontal Pod Autoscaler. Anda dapat memilih peristiwa dalam daftar Anotasi di bagian atas dasbor.
Diagram Jumlah Rekomendasi Penskalaan HPA
Gambar: Diagram Jumlah Rekomendasi Penskalaan HPA

Melihat masalah penjadwalan untuk Pod

Masalah penjadwalan pod dapat memengaruhi latensi startup end-to-end beban kerja Anda. Untuk mengurangi latensi startup end-to-end workload Anda, pecahkan masalah dan kurangi jumlah masalah ini.

Berikut adalah dua diagram yang tersedia untuk melacak masalah tersebut:

  • Diagram Pod yang Tidak Dapat Dijadwalkan/Tertunda/Gagal menampilkan jumlah Pod yang tidak dapat dijadwalkan, tertunda, dan gagal dari waktu ke waktu.
  • Diagram Backoff/Waiting/Readiness Failed Containers menunjukkan jumlah container dalam status ini dari waktu ke waktu.

Melihat dasbor latensi startup untuk node

Untuk melihat metrik latensi startup untuk node, lakukan langkah-langkah berikut di konsolGoogle Cloud :

  1. Buka halaman Kubernetes Clusters.

    Buka Kubernetes Clusters

  2. Untuk membuka tampilan Cluster details, klik nama cluster yang ingin Anda periksa.

  3. Klik tab Observability.

  4. Dari menu di sebelah kiri, pilih Latensi Startup.

Melihat distribusi latensi startup node

Latensi startup node mengacu pada total latensi startup, yang mengukur waktu dari CreationTimestamp node hingga status Kubernetes node ready. Latensi startup node dapat dilihat di dua diagram berikut:

  • Diagram Node Startup Latency Distribution: diagram ini menunjukkan persentil latensi startup node (persentil ke-50, persentil ke-95, dan persentil ke-99) yang dihitung berdasarkan pengamatan peristiwa startup node selama interval waktu tetap 3 jam, misalnya, 00.00-03.00 dan 03.00-06.00. Anda dapat menggunakan diagram ini untuk tujuan berikut:

    • Pahami latensi startup node dasar Anda.
    • Mengidentifikasi perubahan latensi startup node dari waktu ke waktu.
    • Korelasikan perubahan latensi startup node dengan peristiwa terbaru, seperti Update Cluster atau Update Node Pool. Anda dapat memilih peristiwa dalam daftar Anotasi di bagian atas dasbor.
Diagram Distribusi Latensi Startup Node
Gambar: Diagram Distribusi Latensi Startup Node
  • Diagram Node Startup Count: diagram ini menunjukkan jumlah node yang dimulai selama interval waktu yang dipilih. Anda dapat menggunakan diagram untuk tujuan berikut:

    • Pahami ukuran sampel node, yang digunakan untuk menghitung persentil distribusi latensi startup node untuk interval waktu tertentu.
    • Pahami penyebab dimulainya node seperti Update Node Pool atau peristiwa Cluster Autoscaler. Anda dapat memilih peristiwa dalam daftar Anotasi di bagian atas dasbor.
Diagram Jumlah Startup Node
Gambar: Diagram Node Startup Count

Melihat latensi startup setiap node

Saat membandingkan latensi setiap node, Anda dapat menguji dampak berbagai konfigurasi node terhadap latensi startup node dan mengidentifikasi konfigurasi yang optimal berdasarkan persyaratan Anda. Anda dapat melihat latensi startup setiap node di diagram linimasa Node Startup Latency dan daftar terkait.

  • Gunakan diagram linimasa Node Startup Latency untuk menghubungkan setiap node yang dimulai dengan peristiwa terbaru, seperti Update Cluster atau Update Node Pool. Anda dapat menentukan potensi penyebab perubahan latensi startup dibandingkan dengan node lain. Anda dapat memilih peristiwa dalam daftar Anotasi di bagian atas dasbor.

  • Gunakan daftar Node Startup Latency untuk mengidentifikasi setiap node yang memerlukan waktu paling lama atau paling singkat untuk memulai. Anda dapat mengurutkan daftar berdasarkan kolom Latency. Saat mengidentifikasi node dengan latensi startup tertinggi, Anda dapat memecahkan masalah penurunan latensi dengan menghubungkan peristiwa mulai node dengan peristiwa terbaru lainnya.

Diagram Latensi Startup Node
Gambar: Diagram Latensi Startup Node

Anda dapat mengetahui kapan node individual dibuat dengan melihat nilai kolom protoPayload.metadata.creationTimestamp dalam peristiwa pembuatan node yang sesuai. Untuk melihat kolom protoPayload.metadata.creationTimestamp, jalankan kueri berikut di Logs Explorer:

   log_id("cloudaudit.googleapis.com/activity") AND
   protoPayload.methodName="io.k8s.core.v1.nodes.create" AND
   resource.labels.project_id=PROJECT_ID AND
   resource.labels.cluster_name=CLUSTER_NAME AND
   resource.labels.location=CLUSTER_LOCATION AND
   protoPayload.response.metadata.name=NODE_NAME

Melihat latensi startup di node pool

Jika node pool Anda memiliki konfigurasi yang berbeda, misalnya, untuk menjalankan workload yang berbeda, Anda mungkin perlu memantau latensi startup node secara terpisah menurut node pool. Saat membandingkan latensi startup node di seluruh node pool, Anda bisa mendapatkan insight tentang pengaruh konfigurasi node terhadap latensi startup node dan mengoptimalkan latensi.

Secara default, dasbor Latensi Startup Node menampilkan Distribusi Latensi Startup gabungan dan Latensi Startup Node individual di semua node pool dalam cluster. Untuk melihat latensi startup node untuk node pool tertentu, pilih nama node pool menggunakan filter $node_pool_name_var yang terletak di bagian atas dasbor.

Langkah berikutnya