Bagikan melalui


Memantau penyebaran beban kerja

Artikel ini adalah bagian dari beberapa seri. Mulailah dengan gambaran umum.

Penting untuk memantau kesehatan dan performa beban kerja Kubernetes Anda untuk memastikan bahwa beban kerja berjalan secara optimal. Azure Kubernetes Service (AKS) memiliki beberapa alat yang dapat Anda gunakan untuk memeriksa kesehatan dan performa penyebaran, DaemonSet fitur, dan layanan Anda.

Alat

Penting untuk menentukan apakah semua penyebaran dan DaemonSet fitur berjalan. Artikel ini menjelaskan cara menentukan apakah replika dalam status siap dan tersedia cocok dengan jumlah replika yang diharapkan dengan menggunakan:

  • Portal Microsoft Azure.
  • Fitur wawasan kontainer Azure Monitor.
  • Alat baris perintah kubectl.
  • Prometheus dan Grafana.

Portal Microsoft Azure

Anda dapat menggunakan portal Azure untuk memverifikasi kesehatan komponen berikut dalam beban kerja Anda. Untuk informasi selengkapnya, lihat Mengakses sumber daya Kubernetes dari portal Azure.

Penyebaran, ReplicaSet, StatefulSet, dan DaemonSet

Verifikasi bahwa jumlah replika yang dalam status siap cocok dengan jumlah replika yang diinginkan. Portal menunjukkan:

  • Jumlah replika yang saat ini tersedia dan siap melayani lalu lintas. Replika ini telah berhasil dijadwalkan ke simpul pekerja, menyelesaikan proses startup mereka, dan melewati pemeriksaan kesiapan mereka.

  • Jumlah replika yang diinginkan yang ditentukan untuk penyebaran, atau jumlah replika yang ingin dipertahankan oleh penyebaran. Pengontrol penyebaran Kubernetes terus memantau status penyebaran dan memastikan bahwa jumlah replika yang sebenarnya cocok dengan angka yang diinginkan.

Layanan dan masuk

Pastikan statusnya baik-baik saja untuk semua layanan dan ingress.

Penyimpanan

Pastikan bahwa status terikat untuk semua klaim volume persisten dan volume persisten.

Wawasan kontainer

Wawasan kontainer adalah fitur Monitor yang menyediakan kemampuan pemantauan untuk beban kerja kontainer yang disebarkan ke AKS atau dikelola oleh Kubernetes dengan dukungan Azure Arc. Fitur ini mengumpulkan informasi performa dan kesehatan, seperti metrik memori dan prosesor dari pengontrol, simpul, dan kontainer. Ini juga menangkap log kontainer untuk analisis.

Anda bisa menggunakan berbagai tampilan dan buku kerja bawaan untuk menganalisis data yang dikumpulkan. Periksa performa dan perilaku berbagai komponen dalam kluster Anda. Dengan wawasan kontainer, Anda bisa mendapatkan wawasan tentang status keseluruhan beban kerja kontainer Anda sehingga Anda dapat membuat keputusan berdasarkan informasi untuk mengoptimalkan performanya dan memecahkan masalah.

Anda dapat menggunakan wawasan kontainer untuk:

  • Identifikasi hambatan sumber daya dengan mengidentifikasi kontainer yang berjalan pada setiap simpul dan penggunaan prosesor dan memorinya.

  • Identifikasi penggunaan prosesor dan memori grup kontainer dan kontainernya yang dihosting dalam instans kontainer.

  • Lihat performa keseluruhan pengontrol atau pod dengan mengidentifikasi tempat kontainer berada di pengontrol atau pod.

  • Tinjau penggunaan sumber daya beban kerja yang berjalan pada host dan tidak terkait dengan proses standar yang mendukung pod.

  • Pahami perilaku kluster di bawah beban rata-rata dan berat sehingga Anda dapat mengidentifikasi kebutuhan kapasitas dan menentukan beban maksimum yang dapat dipertahankan kluster.

  • Akses log dan metrik kontainer langsung yang dihasilkan mesin kontainer sehingga Anda dapat memecahkan masalah secara real time.

  • Konfigurasikan pemberitahuan untuk secara proaktif memberi tahu Anda atau merekam saat penggunaan CPU dan memori pada simpul atau kontainer melebihi ambang batas Anda, atau ketika perubahan status kesehatan terjadi di kluster pada rollup kesehatan infrastruktur atau simpul.

Dalam portal Azure, wawasan kontainer menyediakan beberapa alat untuk membantu memantau dan menganalisis kesehatan dan performa kluster AKS.

  • Kluster: Fitur ini memberikan gambaran umum tentang kluster AKS Anda, termasuk metrik utama seperti penggunaan CPU dan memori, jumlah pod dan simpul, dan lalu lintas jaringan. Anda bisa mendapatkan wawasan tentang keseluruhan kesehatan dan penggunaan sumber daya kluster.

  • Laporan: Fitur ini menyediakan laporan bawaan yang dapat Anda gunakan untuk memvisualisasikan dan menganalisis berbagai aspek performa kluster Anda, seperti penggunaan sumber daya, kesehatan pod, dan wawasan kontainer. Data ini membantu Anda memahami perilaku dan performa kontainer dan beban kerja Anda.

  • Node: Fitur ini menyediakan informasi terperinci tentang simpul di kluster Anda. Ini menunjukkan metrik untuk penggunaan CPU dan memori, I/O disk dan jaringan, serta kondisi dan status setiap simpul. Anda dapat menggunakan data ini untuk memantau performa simpul individual, mengidentifikasi potensi hambatan, dan memastikan alokasi sumber daya yang efisien.

  • Pengontrol: Fitur ini memberikan visibilitas ke dalam pengontrol Kubernetes di kluster AKS Anda. Ini menunjukkan informasi seperti jumlah instans pengontrol, status saat ini, dan status operasi pengontrol. Anda dapat memantau kesehatan dan performa pengontrol yang mengelola penyebaran beban kerja, layanan, dan sumber daya lainnya.

  • Kontainer: Fitur ini memberikan wawasan tentang kontainer yang berjalan di kluster AKS Anda. Ini menyediakan informasi yang terkait dengan penggunaan sumber daya, mulai ulang, dan peristiwa siklus hidup setiap kontainer. Anda dapat menggunakan data ini untuk membantu memantau dan memecahkan masalah kontainer dalam beban kerja Anda.

  • Log langsung: Fitur log langsung menyediakan streaming langsung peristiwa log dari menjalankan kontainer, sehingga Anda dapat melihat log kontainer secara real time. Anda dapat menggunakan data ini untuk memantau dan memecahkan masalah aplikasi secara efektif dan dengan cepat mengidentifikasi dan menyelesaikan masalah dalam kontainer Anda.

Untuk informasi selengkapnya, lihat sumber daya berikut:

Alat baris perintah

Untuk memeriksa status beban kerja, Anda dapat menggunakan alat baris perintah kubectl untuk berkomunikasi dengan sarana kontrol kluster Kubernetes melalui API Kubernetes.

Pod

Untuk mencantumkan pod yang berjalan di semua namespace, jalankan perintah berikut:

kubectl get pod -A

Dalam output dari perintah, kolom SIAP memberikan informasi penting tentang status kesiapan kontainer pod.

Angka pertama menandakan jumlah kontainer yang saat ini dalam keadaan siap . Kontainer ini telah melewati pemeriksaan kesiapan dan siap untuk menangani lalu lintas masuk. Angka kedua menunjukkan jumlah total kontainer yang ditentukan dalam pod, terlepas dari status kesiapannya. Ini termasuk kontainer yang siap dan yang masih diinisialisasi atau mengalami masalah.

Pastikan bahwa angka pertama (kontainer siap) cocok dengan angka kedua (total kontainer) untuk pod. Jika berbeda, beberapa kontainer mungkin tidak siap atau mungkin ada masalah yang mencegahnya mencapai status siap .

Penyebaran, StatefulSet, DaemonSet, dan StatefulSet

Jalankan perintah berikut untuk mengambil penyebaran di semua namespace:

kubectl get deploy -A

Dalam output kubectl get deploy perintah, angka di kolom SIAP menunjukkan status kesiapan replika saat ini dalam penyebaran.

Angka pertama menunjukkan jumlah replika yang siap dan tersedia untuk melayani lalu lintas. Replika ini telah berhasil memulai dan melewati pemeriksaan kesiapannya. Angka kedua menunjukkan jumlah replika yang diinginkan yang ditentukan dalam konfigurasi penyebaran. Ini adalah jumlah target replika yang bertujuan untuk dipertahankan penyebaran.

Penting untuk memastikan bahwa angka pertama cocok dengan angka kedua. Ini menunjukkan bahwa jumlah replika yang diinginkan berjalan dan siap. Perbedaan antara dua angka mungkin menunjukkan masalah penskalaan atau kesiapan yang harus Anda atasi.

Jalankan perintah berikut untuk mengambil fitur StatefulSet di semua namespace:

kubectl get statefulset -A

Jalankan perintah berikut untuk mengambil fitur DaemonSet di semua namespace:

kubectl get ds -A

Anda dapat menjalankan kubectl get ds perintah untuk memverifikasi bahwa berjalan seperti yang DaemonSet diharapkan. Misalnya, Anda dapat menjalankan perintah berikut untuk memverifikasi bahwa agen wawasan kontainer berhasil disebarkan:

kubectl get ds ama-logs --namespace=kube-system

Demikian juga, jika Anda mengonfigurasi kluster AKS untuk mengumpulkan metrik Prometheus di Monitor untuk Prometheus terkelola, Anda dapat menjalankan perintah berikut untuk memverifikasi bahwa DaemonSet disebarkan dengan benar pada kumpulan simpul Linux:

kubectl get ds ama-metrics-node --namespace=kube-system

Output ini menyediakan informasi tentang fitur di DaemonSet kluster Anda. Periksa output untuk memastikan bahwa jumlah pod dalam status siap, saat ini, dan yang diinginkan sama. Jika sama, jumlah pod yang diinginkan yang ditentukan dalam DaemonSet konfigurasi sama dengan jumlah pod yang saat ini berjalan dan siap.

Kami menyarankan agar Anda melakukan pemeriksaan yang sama untuk fitur ReplicaSet . Anda dapat menggunakan perintah berikut untuk mengambil ReplicaSet fitur di semua namespace:

kubectl get rs -A

Pastikan bahwa angka dalam output ini sama untuk setiap status sehingga jumlah pod atau replika yang dimaksudkan berjalan seperti yang diharapkan. Perbedaan mungkin menunjukkan perlunya penyelidikan atau pemecahan masalah lebih lanjut dengan menggunakan salah satu perintah berikut.

kubectl describe: Anda dapat menggunakan perintah kubectl describe untuk mendapatkan informasi terperinci tentang sumber daya Kubernetes, seperti pod, penyebaran, dan layanan. Anda bisa mendapatkan gambaran umum komprehensif tentang sumber daya yang ditentukan, termasuk status, peristiwa, kondisi, dan metadata terkait saat ini. Informasi diambil dari server API Kubernetes. Perintah ini berguna untuk memecahkan masalah dan memahami status sumber daya.

Anda dapat menjalankan kubectl describe pod <pod-name> untuk mendapatkan informasi terperinci tentang pod tertentu, termasuk status, peristiwa, label, dan kontainer saat ini yang terkait dengannya. Output menunjukkan informasi seperti status pod, peristiwa, volume, dan kondisi.

log kubectl: Anda dapat menggunakan perintah log kubectl untuk mengambil log yang dihasilkan oleh kontainer dalam sebuah pod. Perintah ini berguna untuk penelusuran kesalahan dan pemecahan masalah. Anda dapat melihat log secara real time, atau mengambil log historis dari kontainer.

Untuk melihat log kontainer, Anda dapat menggunakan perintah kubectl logs <pod-name> -c <container-name>. Ganti <pod-name> dengan nama pod. Ganti <container-name> dengan nama kontainer tempat Anda ingin mengambil log. Jika hanya ada satu kontainer dalam pod, Anda tidak perlu menentukan nama kontainer. Anda juga dapat menggunakan -f bendera dengan kubectl logs untuk mengikuti log secara real time. Bendera ini mirip tail -f dengan perintah Linux.

peristiwa kubectl: Anda dapat menggunakan perintah peristiwa kubectl untuk pemecahan masalah saat penyebaran, DaemonSet, ReplicaSet, atau pod tidak memulai atau mengalami masalah selama startup. Perintah ini menyediakan daftar kronologis peristiwa yang terkait dengan sumber daya yang ditentukan. Anda bisa mendapatkan wawasan tentang apa yang mungkin menyebabkan masalah.

Untuk menggunakan kubectl events, Anda dapat menjalankan perintah kubectl events diikuti dengan nama sumber daya tertentu. Atau Anda dapat menggunakan pemilih untuk memfilter peristiwa berdasarkan label, namespace layanan, atau kriteria lainnya.

Misalnya, untuk mengambil peristiwa yang terkait dengan pod tertentu, Anda dapat menjalankan kubectl events --field-selector involvedObject.name=<pod-name> --field-selector involvedObject.kind=Pod. Ganti <pod-name> dengan nama pod yang ingin Anda selidiki. Output kubectl events perintah menampilkan informasi seperti jenis peristiwa (normal atau peringatan), pesan peristiwa, alasan peristiwa, dan stempel waktu saat peristiwa terjadi. Anda dapat menggunakan informasi ini untuk membantu menentukan apa yang menyebabkan kegagalan atau masalah selama startup.

Jika Anda menduga bahwa sumber daya tertentu seperti penyebaran, DaemonSet, atau ReplicaSet mengalami masalah, Anda dapat memfilter peristiwa dengan menggunakan pemilih. Misalnya, kubectl events --field-selector involvedObject.name=<deployment-name> --field-selector involvedObject.kind=Deployment menampilkan peristiwa yang terkait dengan penyebaran tertentu. Periksa peristiwa sehingga Anda dapat mengumpulkan detail penting tentang potensi kesalahan, kegagalan, atau peristiwa lain yang mungkin telah mencegah sumber daya dimulai dengan benar. Gunakan data ini untuk membantu memecahkan masalah dan mengatasi masalah yang memengaruhi sumber daya.

Pemantauan dalam kluster dengan Prometheus dan Grafana

Jika Anda menyebarkan Prometheus dan Grafana di kluster AKS, Anda dapat menggunakan Dasbor Detail Kluster K8 untuk mendapatkan wawasan. Dasbor ini menyajikan informasi yang dikumpulkan dari metrik kluster Prometheus, seperti penggunaan CPU dan memori, aktivitas jaringan, dan penggunaan sistem file. Ini juga menunjukkan statistik terperinci untuk masing-masing pod, kontainer, dan layanan sistemd .

Untuk memastikan kesehatan dan performa penyebaran, pekerjaan, pod, dan kontainer, Anda dapat menggunakan fitur di dasbor. Pilih Penyebaran untuk melihat jumlah replika untuk setiap penyebaran dan jumlah total replika. Pilih Kontainer untuk melihat bagan yang memperlihatkan kontainer yang sedang berjalan, tertunda, gagal, dan berhasil.

Memantau layanan terkelola untuk Prometheus dan Azure Managed Grafana

Anda dapat menggunakan dasbor bawaan untuk memvisualisasikan dan menganalisis metrik Prometheus. Untuk melakukannya, Anda harus menyiapkan kluster AKS untuk mengumpulkan metrik Prometheus di Memantau layanan terkelola untuk Prometheus, dan menyambungkan ruang kerja Monitor Anda ke ruang kerja Azure Managed Grafana.

Instal dasbor bawaan untuk mendapatkan tampilan komprehensif tentang performa dan kesehatan kluster Kubernetes Anda. Untuk petunjuk penginstalan terperinci, lihat Mixin pemantauan Prometheus untuk Kubernetes. Dasbor disediakan dalam instans Azure Managed Grafana yang ditentukan di folder Prometheus Terkelola. Beberapa dasbor meliputi:

  • Kubernetes / Sumber Daya Komputasi / Kluster
  • Kubernetes / Compute Resources / Namespace (Pods)
  • Kubernetes / Compute Resources / Node (Pods)
  • Kubernetes / Compute Resources / Pod
  • Kubernetes / Komputasi Sumber Daya / Namespace (Beban Kerja)
  • Kubernetes / Sumber Daya Komputasi / Beban Kerja
  • Kubernetes / Kubelet
  • Node Exporter / USE Method / Node
  • Node Exporter / Nodes
  • Kubernetes / Compute Resources / Cluster (Windows)
  • Kubernetes / Compute Resources / Namespace (Windows)
  • Kubernetes / Compute Resources / Pod (Windows)
  • Kubernetes / USE Method / Cluster (Windows)
  • Kubernetes / USE Method / Node (Windows)

Dasbor bawaan ini banyak digunakan dalam komunitas sumber terbuka untuk memantau kluster Kubernetes dengan Prometheus dan Grafana. Gunakan dasbor ini untuk melihat metrik, seperti penggunaan sumber daya, kesehatan pod, dan aktivitas jaringan. Anda juga dapat membuat dasbor kustom yang disesuaikan dengan kebutuhan pemantauan Anda. Dasbor membantu Anda memantau dan menganalisis metrik Prometheus secara efektif di kluster AKS, yang memungkinkan Anda mengoptimalkan performa, memecahkan masalah, dan memastikan kelancaran pengoperasian beban kerja Kubernetes Anda.

Anda dapat menggunakan dasbor Kubernetes / Compute Resources / Node (Pods) untuk melihat metrik untuk node agen Linux Anda. Anda dapat memvisualisasikan penggunaan CPU, kuota CPU, penggunaan memori, dan kuota memori untuk setiap pod.

Dasbor Kubernetes / Compute Resources / Pod Grafana memberikan wawasan tentang konsumsi sumber daya dan metrik performa dari kluster, namespace, dan pod yang dipilih. Anda dapat menggunakan dasbor ini untuk mendapatkan metrik yang terkait dengan penggunaan CPU, pembatasan CPU, kuota CPU, penggunaan memori, kuota memori, metrik jaringan, dan metrik penyimpanan. Di dasbor, pilih kluster AKS, namespace, dan pod dalam namespace yang dipilih untuk melihat detail berikut:

  • Penggunaan CPU: Bagan ini menampilkan penggunaan CPU dari waktu ke waktu untuk pod yang dipilih. Anda dapat meninjau pola konsumsi CPU dan mengidentifikasi potensi lonjakan atau kelainan.

  • Pembatasan CPU: Bagan ini memberikan wawasan tentang pembatasan CPU, yang terjadi ketika pod melebihi batas sumber daya CPU-nya. Pantau metrik ini untuk membantu mengidentifikasi area di mana performa pod dibatasi karena pembatasan CPU.

  • Kuota CPU: Bagan ini menunjukkan kuota CPU yang dialokasikan untuk pod yang dipilih. Jika pod melebihi kuota CPU yang ditetapkan, pod mungkin memerlukan penyesuaian sumber daya.

  • Penggunaan memori: Bagan ini menyajikan penggunaan memori pod yang dipilih. Pantau pola konsumsi memori dan identifikasi masalah terkait memori apa pun.

  • Kuota memori: Bagan ini menampilkan kuota memori yang dialokasikan untuk pod. Jika pod melebihi kuota memori yang ditetapkan, pod mungkin menunjukkan kebutuhan akan pengoptimalan sumber daya.

  • Metrik jaringan: Bagan ini menunjukkan bandwidth yang diterima dan ditransmisikan, serta tingkat paket yang diterima dan dikirimkan. Metrik ini membantu Anda memantau penggunaan jaringan dan mendeteksi potensi penyempitan atau anomali jaringan.

  • Metrik penyimpanan: Bagian ini menyediakan informasi tentang metrik terkait penyimpanan, seperti operasi I/O per detik (IOPS) dan throughput. Pantau metrik ini untuk membantu mengukur performa dan efisiensi penyimpanan pod.

Anda dapat menggunakan dasbor Kubernetes / Compute Resources / Pod Grafana untuk mendapatkan wawasan tentang penggunaan sumber daya, performa, dan perilaku pod di kluster Kubernetes Anda. Gunakan informasi ini untuk mengoptimalkan alokasi sumber daya, memecahkan masalah performa, dan membuat keputusan berdasarkan informasi untuk memastikan kelancaran pengoperasian beban kerja kontainer Anda.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Kontributor lain:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya