Memantau kluster Kubernetes menggunakan Azure Monitor dan alat native cloud

pemantauan Kubernetes di Azure Monitor menjelaskan layanan Azure Monitor yang digunakan untuk memberikan pemantauan lengkap terhadap lingkungan Kubernetes Anda dan beban kerja yang berjalan di atasnya. Artikel ini menyediakan praktik terbaik tentang cara memanfaatkan layanan ini untuk memantau berbagai lapisan lingkungan Kubernetes Berdasarkan peran umum yang mengelolanya.

Berikut ini adalah ilustrasi model umum lingkungan Kubernetes yang khas, mulai dari lapisan infrastruktur hingga melalui aplikasi. Setiap lapisan memiliki persyaratan pemantauan berbeda yang ditangani oleh layanan yang berbeda dan biasanya dikelola oleh peran yang berbeda dalam organisasi.

Diagram lapisan lingkungan Kubernetes dengan peran administratif terkait.

Tanggung jawab atas berbagai lapisan lingkungan Kubernetes dan aplikasi yang bergantung padanya biasanya ditangani oleh beberapa peran. Tergantung pada ukuran organisasi Anda, peran ini dapat dilakukan oleh orang yang berbeda atau bahkan tim yang berbeda. Tabel berikut ini menjelaskan berbagai peran sementara bagian di bawah ini menyediakan skenario pemantauan yang biasanya akan ditemui masing-masing.

Peran Deskripsi
Pengembang Mengembangkan dan memelihara aplikasi yang berjalan pada kluster. Bertanggung jawab atas lalu lintas khusus aplikasi termasuk performa dan kegagalan aplikasi. Mempertahankan keandalan aplikasi sesuai dengan SLA.
Teknisi platform Bertanggung jawab atas kluster Kubernetes. Menyediakan dan memelihara platform yang digunakan oleh pengembang.
Teknisi jaringan Bertanggung jawab atas lalu lintas antara beban kerja dan setiap interaksi masuk/keluar dengan klaster. Menganalisis lalu lintas jaringan dan melakukan analisis ancaman.

Teknisi jaringan

Insinyur Jaringan bertanggung jawab atas lalu lintas antara beban kerja dan setiap lalu lintas masuk/keluar dengan kluster. Mereka menganalisis lalu lintas jaringan dan melakukan analisis ancaman.

Diagram lapisan lingkungan Kubernetes untuk teknisi jaringan.

Memantau tingkat 1 - Jaringan

Berikut ini adalah skenario umum untuk memantau jaringan.

  • Buat log flow dengan Network Watcher untuk mencatat informasi tentang lalu lintas IP yang mengalir melalui grup keamanan jaringan yang digunakan oleh kluster Anda lalu gunakan analitik traffic untuk menganalisis dan memberikan wawasan tentang data ini. Gunakan ruang kerja Log Analytics yang sama untuk analitik lalu lintas yang Anda gunakan untuk log kontainer dan log sarana kontrol Anda.
  • Menggunakan analitik lalu lintas, tentukan apakah ada lalu lintas yang mengalir baik ke atau dari port tak terduga yang digunakan oleh kluster dan juga jika ada lalu lintas yang mengalir melalui IP publik yang tidak boleh diekspos. Gunakan informasi ini untuk menentukan apakah aturan jaringan Anda memerlukan modifikasi.
  • Untuk kluster AKS, gunakan add-on Network Observability untuk AKS (pratinjau) untuk memantau dan mengamati akses antar layanan dalam kluster (lalu lintas timur-barat).

Insinyur platform

Insinyur platform, juga dikenal sebagai administrator kluster, bertanggung jawab atas kluster Kubernetes itu sendiri. Mereka menyediakan dan memelihara platform yang digunakan oleh pengembang. Mereka perlu memahami kesehatan kluster dan komponennya, dan dapat memecahkan masalah yang terdeteksi. Mereka juga perlu memahami biaya untuk mengoperasikan kluster dan berpotensi untuk dapat mengalokasikan biaya ke tim yang berbeda.

Diagram lapisan lingkungan Kubernetes untuk insinyur platform.

Organisasi besar mungkin juga memiliki arsitek armada, yang mirip dengan insinyur platform tetapi bertanggung jawab atas beberapa kluster. Mereka membutuhkan visibilitas di seluruh lingkungan dan harus melakukan tugas administratif dalam skala besar. Rekomendasi dalam skala besar disertakan dalam panduan di bawah ini. Lihat Apa itu Azure Kubernetes Fleet Manager? untuk detail tentang membuat sumber daya Fleet untuk skenario multi-kluster dan bersekala besar.

Mengonfigurasi pemantauan untuk insinyur platform

Bagian di bawah ini mengidentifikasi langkah-langkah untuk memantau lingkungan Kubernetes Anda menggunakan layanan Azure di tingkat Container. Fungsionalitas dan opsi integrasi disediakan untuk masing-masing untuk membantu Anda menentukan di mana Anda mungkin perlu memodifikasi konfigurasi ini untuk memenuhi persyaratan khusus Anda. Onboarding Managed Prometheus dan pengelogan kontainer dapat menjadi bagian dari pengalaman yang sama seperti yang dijelaskan dalam Mengaktifkan pemantauan untuk kluster Kubernetes. Bagian berikut menjelaskan masing-masing secara terpisah sehingga Anda dapat mempertimbangkan semua opsi onboarding dan konfigurasi untuk masing-masing.

Mengaktifkan pengambilan data metrik Prometheus

Penting

Untuk menggunakan layanan terkelola Azure Monitor untuk Prometheus, Anda harus memiliki ruang kerja Azure Monitor. Untuk informasi tentang pertimbangan desain untuk konfigurasi ruang kerja, lihat arsitektur ruang kerja Azure Monitor.

Aktifkan pengambilan data metrik Prometheus oleh layanan terkelola Azure Monitor untuk Prometheus dari kluster Anda, baik saat kluster tersebut dibuat maupun dengan menambahkan fungsionalitas ini ke kluster yang sudah ada. Lihat Mengaktifkan metrik Prometheus untuk detailnya.

Jika Anda sudah memiliki lingkungan Prometheus yang ingin Anda gunakan untuk kluster AKS Anda, aktifkan layanan terkelola Azure Monitor untuk Prometheus lalu gunakan tulis jarak jauh untuk mengirim data ke lingkungan Prometheus yang ada. Anda juga dapat gunakan penulisan jarak jauh untuk mengirim data dari lingkungan Prometheus yang dikelola sendiri yang ada ke layanan terkelola Azure Monitor untuk Prometheus.

Lihat konfigurasi metrik Default Prometheus di Azure Monitor untuk detail tentang metrik yang dikumpulkan secara default dan frekuensi pengumpulannya. Jika Anda ingin menyesuaikan konfigurasi, lihat Kustomisasi pengikisan metrik Prometheus di layanan terkelola Azure Monitor untuk Prometheus.

Mengaktifkan Grafana untuk analisis data Prometheus

Catatan

Azure Monitor dasbor dengan Grafana saat ini dalam pratinjau publik dan dapat menggantikan Grafana yang Dikelola. Versi Grafana ini tidak memiliki biaya, tidak memerlukan konfigurasi, dan menyajikan dasbor di portal Azure. Gunakan Grafana Terkelola jika Anda ingin membuat dasbor yang menggabungkan data dari beberapa sumber data atau jika Anda ingin berintegrasi dengan lingkungan Grafana yang ada.

Buat instans Grafana Terkelola dan link ke ruang kerja Azure Monitor Anda sehingga Anda dapat menggunakan data Prometheus Anda sebagai sumber data. Anda juga dapat melakukan konfigurasi ini secara manual menggunakan tambahkan layanan terkelola Azure Monitor untuk Prometheus sebagai sumber data. Berbagai dasbor bawaan tersedia untuk memantau kluster Kubernetes termasuk beberapa yang menyajikan informasi serupa seperti tampilan wawasan Kontainer.

Jika Anda memiliki lingkungan Grafana yang ada, maka Anda dapat terus menggunakannya dan menambahkan layanan terkelola Azure Monitor untuk Prometheus sebagai sumber data. Anda juga dapat tambahkan sumber data Azure Monitor ke Grafana untuk menggunakan data yang dikumpulkan oleh wawasan Kontainer di dasbor Grafana kustom. Lakukan konfigurasi ini jika Anda ingin fokus pada dasbor Grafana daripada menggunakan tampilan dan laporan wawasan Kontainer.

Mengaktifkan pengumpulan log kontainer

Penting

Untuk menggunakan layanan terkelola Azure Monitor untuk Prometheus, Anda harus memiliki ruang kerja Log Analytics. Untuk informasi tentang pertimbangan desain untuk konfigurasi ruang kerja, lihat arsitektur ruang kerja Azure Monitor.

Saat Anda mengaktifkan pengumpulan log kontainer untuk kluster Kubernetes, Azure Monitor menyebarkan versi kontainer agen Azure Monitor yang mengirim log stdout/stderr dan infrastruktur ke ruang kerja Log Analytics di Azure Monitor di mana mereka dapat dianalisis menggunakan Kusto Query Language (KQL).

Lihat prasyarat dan opsi konfigurasi dalam Mengaktifkan Pemantauan untuk Kluster AKS untuk memulai kluster Kubernetes Anda. Onboard menggunakan Azure Policy untuk memastikan bahwa semua kluster mempertahankan konfigurasi yang konsisten.

Setelah pengelogan kontainer diaktifkan untuk kluster, lakukan tindakan berikut untuk mengoptimalkan penginstalan Anda.

  • Jika Anda hanya menggunakan log untuk pemecahan masalah sesekali, pertimbangkan untuk mengonfigurasi tabel ini sebagai log dasar.
  • Gunakan prasetel biaya yang dijelaskan dalam Mengaktifkan pengaturan pengoptimalan biaya dalam Wawasan Kontainer untuk mengurangi biaya Anda untuk pengumpulan data Wawasan Kontainer dengan mengurangi jumlah data yang dikumpulkan. Nonaktifkan pengumpulan metrik dengan mengonfigurasi wawasan Kontainer untuk hanya mengumpulkan Log dan peristiwa karena banyak nilai metrik yang sama dengan Prometheus.

Jika Anda memiliki solusi yang sudah ada untuk pengumpulan log, ikuti panduan untuk alat tersebut atau aktifkan pengumpulan log dengan Azure Monitor dan gunakan fitur ekspor data ruang kerja Log Analytics untuk mengirim data ke Azure Event Hubs untuk meneruskan ke sistem alternatif.

Mengumpulkan log pesawat kendali untuk kluster AKS

Log untuk komponen sarana kontrol AKS diimplementasikan dalam Azure sebagai log resource. Buat pengaturan diagnostik untuk setiap kluster AKS untuk mengirim log sumber daya ke ruang kerja Log Analytics. Gunakan Azure Policy untuk memastikan konfigurasi yang konsisten di beberapa kluster.

Ada biaya untuk mengirim log sumber daya ke ruang kerja, jadi Anda hanya boleh mengumpulkan kategori log yang ingin Anda gunakan. Untuk deskripsi kategori yang tersedia untuk AKS, lihat Log sumber daya. Mulailah dengan mengumpulkan jumlah kategori minimal dan kemudian ubah pengaturan diagnostik untuk mengumpulkan kategori tambahan selagi kebutuhan Anda meningkat dan saat Anda memahami biaya terkait. Anda dapat mengirim log ke akun penyimpanan Azure untuk mengurangi biaya jika Anda perlu menyimpan informasi karena alasan kepatuhan. Untuk detail tentang biaya penyerapan dan penyimpanan data log, lihat detail harga Azure Monitor Logs.

Jika Anda tidak yakin log sumber daya mana yang awalnya akan diaktifkan, gunakan rekomendasi berikut, yang didasarkan pada persyaratan pelanggan yang paling umum. Anda dapat mengaktifkan kategori lain nanti jika perlu.

Kategori Aktifkan? Tujuan
kube-apiserver Aktifkan ruang kerja Log Analytics
kube-audit Aktifkan Azure Storage Hal ini menjaga biaya seminimal mungkin namun mempertahankan log audit jika diperlukan oleh auditor.
kube-audit-admin Aktifkan ruang kerja Log Analytics
kube-controller-manager Aktifkan ruang kerja Log Analytics
kube-scheduler Nonaktifkan
penskala otomatis kluster Aktifkan jika skala otomatis diaktifkan ruang kerja Log Analytics
penjaga Aktifkan jika Microsoft Entra ID diaktifkan ruang kerja Log Analytics
AllMetrics Nonaktifkan karena metrik dikumpulkan di Prometheus Terkelola ruang kerja Log Analytics

Jika Anda memiliki solusi yang sudah ada untuk pengumpulan log, ikuti panduan untuk alat tersebut atau aktifkan pengumpulan log dengan Azure Monitor dan gunakan fitur ekspor data ruang kerja Log Analytics untuk mengirim data ke pusat aktivitas Azure untuk meneruskan ke sistem alternatif.

Mengumpulkan log Aktivitas untuk kluster AKS

Perubahan konfigurasi pada kluster AKS Anda disimpan di log Aktivitas. Buat pengaturan diagnostik untuk mengirim data ini ke ruang kerja Log Analytics Anda untuk menganalisisnya dengan data pemantauan lainnya. Tidak ada biaya untuk pengumpulan data ini, dan Anda dapat menganalisis atau memperingatkan data menggunakan Log Analytics.

Memantau tingkat 2 - Komponen tingkat kluster

Tingkat kluster mencakup komponen berikut:

Komponen Persyaratan pemantauan
Simpul Pahami status kesiapan dan performa penggunaan CPU, memori, disk, dan IP untuk setiap simpul dan pantau tren penggunaannya secara proaktif sebelum menyebarkan beban kerja apa pun.

Berikut ini adalah skenario umum untuk memantau komponen tingkat kluster.

Portal Azure

  • Gunakan dasbor pemantauan terpadu di portal Azure untuk melihat performa simpul di kluster Anda, termasuk pemanfaatan CPU dan memori.
  • Gunakan tampilan Node untuk melihat kesehatan setiap simpul dan kesehatan serta performa pod yang berjalan di dalamnya. Untuk informasi selengkapnya tentang menganalisis kesehatan dan performa simpul, lihat performa kluster Analyze Kubernetes di portal Azure..
  • Di bawah Laporan, gunakan buku kerja Pemantauan Node untuk menganalisis kapasitas disk, IO disk, dan penggunaan GPU. Untuk informasi selengkapnya tentang buku kerja ini, lihat buku kerja Pemantauan Node.
  • Di bawah Pemantauan, pilih Buku Kerja, lalu Penggunaan IP Subnet untuk melihat alokasi IP dan penugasan pada setiap simpul untuk rentang waktu yang dipilih.

Dasbor Grafana

  • Gunakan dasbor bawaan di Managed Grafana untuk Kubelet untuk melihat kesehatan dan performa masing-masing.
  • Gunakan dasbor Grafana dengan nilai metrik Prometheus yang terkait dengan disk seperti node_disk_io_time_seconds_total dan windows_logical_disk_free_bytes untuk memantau penyimpanan yang terpasang.
  • Beberapa dasbor Kubernetes tersedia yang memvisualisasikan performa dan kesehatan node Anda berdasarkan data yang disimpan di Prometheus.

Log Analytics

  • Pilih kategori Kontainer dalam dialog kueri agar ruang kerja Log Analytics Anda mengakses kueri log bawaan untuk kluster Anda, termasuk kueri log Image yang mengambil data dari tabel ContainerImageInventory yang diisi oleh insight Kontainer.

Pemecahan Masalah

Analisis biaya

  • Konfigurasikan OpenCost, yang merupakan proyek sandbox CNCF sumber terbuka dan netral vendor untuk memahami biaya Kubernetes Anda, untuk mendukung analisis biaya kluster Anda. Ini mengekspor data biaya terperinci ke penyimpanan Azure.
  • Gunakan data dari OpenCost untuk memecah penggunaan relatif kluster oleh tim yang berbeda di organisasi Anda sehingga Anda dapat mengalokasikan biaya di antara masing-masing kluster.
  • Gunakan data dari OpenCost untuk memastikan bahwa kluster menggunakan kapasitas penuh simpulnya dengan mengemas beban kerja dengan padat, menggunakan lebih sedikit simpul besar dibandingkan dengan banyak simpul yang lebih kecil.

Pantauan Level 3 - Komponen Kubernetes yang Terkelola

Tingkat Kubernetes terkelola mencakup komponen berikut:

Komponen Pemantauan
Server API Pantau status server API dan identifikasi peningkatan beban permintaan dan hambatan jika layanan tidak berfungsi.
Kubelet Pantau Kubelet untuk membantu memecahkan masalah manajemen pod, pod tidak dimulai, simpul tidak siap, atau pod dimatikan.

Berikut ini adalah skenario umum untuk memantau komponen Kubernetes terkelola Anda.

Portal Azure

  • Gunakan penjelajah metrik untuk melihat penghitung Permintaan Dalam Penerbangan untuk kluster.
  • Gunakan buku kerja Kubelet untuk melihat kesehatan dan performa setiap kubelet.

Grafana

  • Gunakan dasbor bawaan di Managed Grafana untuk Kubelet guna melihat kesehatan dan performa setiap kubelet.
  • Gunakan dasbor seperti apiserver Kubernetes untuk tampilan lengkap performa server API. Hal ini mencakup nilai-nilai seperti latensi permintaan dan waktu pemrosesan antrean kerja.

Log Analytics

  • Gunakan kueri log dengan log sumber daya untuk menganalisis log sarana kontrol yang dihasilkan oleh komponen AKS.

  • Setiap aktivitas konfigurasi untuk AKS dicatat di log Aktivitas. Saat Anda mengirim log Aktivitas ke ruang kerja Log Analytics Anda dapat menganalisisnya dengan Log Analytics. Misalnya, kueri sampel berikut dapat digunakan untuk mengembalikan rekaman yang mengidentifikasi peningkatan yang berhasil di semua kluster AKS Anda.

    AzureActivity
    | where CategoryValue == "Administrative"
    | where OperationNameValue == "MICROSOFT.CONTAINERSERVICE/MANAGEDCLUSTERS/WRITE"
    | extend properties=parse_json(Properties_d) 
    | where properties.message == "Upgrade Succeeded"
    | order by TimeGenerated desc
    

Pemecahan Masalah

Memantau tingkat 4 - Objek dan beban kerja Kubernetes

Tingkat objek dan beban kerja Kube mencakup komponen berikut:

Komponen Persyaratan pemantauan
Penyebaran Pantau status penyebaran yang sebenarnya vs yang diinginkan serta status dan pemanfaatan sumber daya pod yang berjalan di dalamnya.
Pod Pantau status dan pemanfaatan sumber daya, termasuk CPU dan memori pod yang berjalan dalam kluster AKS Anda.
Kontainer Pantau pemanfaatan sumber daya, termasuk CPU dan memori, kontainer yang berjalan di kluster AKS Anda.

Berikut ini adalah skenario umum untuk memantau objek dan beban kerja Kubernetes Anda.

Portal Azure

Dasbor Grafana

Data langsung

Pemberitahuan untuk insinyur platform

Alerts di Azure Monitor secara proaktif memberi tahu Anda tentang data dan pola yang menarik dalam data pemantauan Anda. Mereka memungkinkan Anda mengidentifikasi dan mengatasi masalah dalam sistem Anda sebelum pelanggan Anda mengetahuinya. Jika Anda memiliki solusi ITSM untuk pemberitahuan, Anda dapat integrasikan dengan Azure Monitor. Anda juga dapat ekspor data ruang kerja untuk mengirim data dari ruang kerja Log Analytics Anda ke lokasi lain yang mendukung solusi pemberitahuan Anda saat ini.

Jenis pemberitahuan

Tabel berikut ini menjelaskan berbagai jenis aturan pemberitahuan kustom yang bisa Anda buat berdasarkan data yang dikumpulkan oleh layanan yang dijelaskan di atas.

Jenis pemberitahuan Deskripsi
Pemberitahuan Prometheus "alat peringatan Prometheus ditulis dalam Prometheus Query Language (Prom QL) dan diterapkan pada metrik Prometheus yang disimpan di layanan terkelola Azure Monitor untuk Prometheus." Pemberitahuan yang direkomendasikan sudah menyertakan pemberitahuan Prometheus yang paling umum, dan Anda dapat membuat aturan pemberitahuan tambahan sesuai kebutuhan.
Aturan peringatan metrik Aturan pemberitahuan metrik menggunakan nilai metrik yang sama dengan penjelajah Metrik. Bahkan, Anda dapat membuat aturan pemberitahuan langsung dari penjelajah metrik dengan data yang saat ini Anda analisis. Aturan pemberitahuan metrik dapat berguna untuk memperingatkan performa AKS menggunakan salah satu nilai dalam metrik referensi data AKS.
Aturan peringatan pencarian log Gunakan aturan pemberitahuan pencarian log untuk menghasilkan pemberitahuan dari hasil kueri log. Untuk informasi selengkapnya, lihat Cara membuat pemberitahuan pencarian log dari Container Insights dan Cara mengkueri log dari Container Insights.

Mulailah dengan serangkaian alert Prometheus yang direkomendasikan dari aturan alert metrik di Container insights (pratinjau) yang mencakup kondisi alert paling umum untuk kluster Kubernetes. Anda dapat menambahkan lebih banyak aturan pemberitahuan nanti saat mengidentifikasi kondisi pemberitahuan tambahan.

Pengembang

Selain mengembangkan aplikasi, pengembang mempertahankan aplikasi yang berjalan pada kluster. Mereka bertanggung jawab atas lalu lintas khusus aplikasi termasuk performa dan kegagalan aplikasi dan menjaga keandalan aplikasi sesuai dengan SLA yang ditentukan perusahaan.

Diagram lapisan lingkungan Kubernetes untuk pengembang.

Monitor tingkat 5 - Aplikasi

Terapkan Azure Monitor OpenTelemetry Distro untuk mengaktifkan pengalaman Wawasan Aplikasi dan mengonfigurasi sampling untuk mengontrol biaya.

Pengalaman menggunakan Application Insights

Log aplikasi

  • Container Insights mengirimkan log stdout/stderr ke ruang kerja Log Analytics. Lihat log sumber daya untuk deskripsi log yang berbeda dan layanan Kubernetes untuk daftar tabel tempat log masing-masing dikirim.

Service mesh

  • Untuk kluster AKS, terapkan add-on mesh layanan berbasis Istio yang memberikan pengawasan pada arsitektur mikroservis Anda. Istio adalah jala layanan sumber terbuka yang berlapis secara transparan ke aplikasi terdistribusi yang ada. Add-on ini membantu dalam penerapan dan manajemen Istio untuk AKS.

Lihat juga