Cara Memantau Penggunaan Resource Kubernetes Dengan Server Metrics dan Kubectl Top

  • Post author:
  • Post category:Tutorial

Memantau penggunaan sumber daya klaster Kubernetes Anda sangat penting agar Anda dapat melacak kinerja dan memahami apakah beban kerja Anda beroperasi secara efisien. Perintah kubectl top mengalirkan metrik langsung dari cluster Anda, memungkinkan Anda mengakses dasar-dasarnya di terminal Anda.

Perintah ini biasanya tidak langsung berfungsi di lingkungan Kubernetes yang baru. Itu tergantung pada addon Server Metrik yang diinstal di cluster Anda. Komponen ini mengumpulkan metrik dari Node dan Pod Anda dan menyediakan API untuk mengambil data.

Dalam artikel ini kami akan menunjukkan cara menginstal Server Metrics dan mengakses pengukurannya menggunakan kubectl top. Anda akan dapat melihat konsumsi CPU dan memori dari setiap Node dan Pods.

Menambahkan Server Metrics ke Kubernetes

Distribusi Kubernetes biasanya tidak disertakan dengan Metrics Server bawaan. Anda dapat dengan mudah memeriksa apakah cluster Anda sudah memiliki dukungan dengan mencoba menjalankan kubectl top:

$ kubectl top node error: Metrics API not available

Pesan kesalahan mengonfirmasi bahwa metrics server API tidak ada di cluster.

Metrics Server dipertahankan dalam Kubernetes Komunitas Kelompok Minat Khusus (SIG). Itu dapat ditambahkan ke cluster Anda menggunakan manifes YAML biasa atau diagram Helm proyek.

Kami akan menggunakan file manifes untuk tutorial ini. Jalankan perintah Kubectl berikut untuk menginstal Server Metrics:

$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml serviceaccount/metrics-server menciptakan peran cluster. rbac.authorization.k8s.io/system:aggregated-metrics-reader dibuat clusterrole.rbac.authorization.k8s.io/system:metrics-server dibuat rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader dibuat clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator dibuat clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server dibuat layanan/metrics-server membuat penerapan.apps/metrics-server dibuat apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io Created

Metrics Server sekarang akan mulai mengumpulkan dan mengekspos data konsumsi sumber daya Kubernetes. Jika instalasi gagal dengan kesalahan, Anda harus memeriksa cluster Anda memenuhi persyaratan proyek. Metrics Server memiliki dependensi khusus yang mungkin tidak didukung di beberapa lingkungan.

Banyak distribusi Kubernetes yang mendukung Metrics Server menggunakan sistem add-on mereka sendiri. Anda dapat menggunakan perintah ini untuk menambahkan Server Metrics ke cluster Minikube dengan mudah, misalnya: addons minikube

$ mengaktifkan metrics-server Menggunakan image k8s.gcr.io/metrics-server/metrics-server:v0.4.2 The `metrics-server ` addon diaktifkanMengambil Metrik Dengan Kubectl Top

Dengan Server Metrics terinstal, Anda sekarang dapat menjalankan kubectl top untuk mengakses informasi yang dikumpulkannya.

Gunakan sub-perintah node untuk mendapatkan pemanfaatan sumber daya saat ini dari setiap Node di cluster Anda:

$ kubectl top node NAMA CPU(core) CPU% MEMORY(bytes) MEMORY% minikube 249m 3% 847Mi 2%

Sub-perintah pod menyediakan metrik individual untuk setiap Pod Anda:

$ kubectl pod teratas NAMA CPU(core) MEMORY(byte) nginx 120m 8Mi

Ini akan memunculkan Pod di namespace default. Tambahkan flag –namespace jika Anda tertarik dengan Pod di namespace tertentu:

$ kubectl top pod –namespace demo-app NAME CPU(cores) MEMORY(bytes) nginx 0m 2Mi

Flag –all-namespaces juga didukung untuk membuat daftar setiap Pod di cluster Anda.

Metrics mungkin memerlukan beberapa menit untuk tersedia setelah Pod baru dibuat. Ada penundaan di pipeline server metrik sehingga tidak menjadi masalah kinerja itu sendiri.

Perintah kubectl top tidak membanjiri Anda dengan lusinan metrik. Ini berfokus pada mencakup hal-hal penting dari penggunaan CPU dan memori. Awal dasar ini dapat memadai untuk skenario di mana Anda hanya membutuhkan data dengan cepat, seperti mengidentifikasi Pod yang menyebabkan lonjakan penggunaan secara keseluruhan.

Salah satu sumber kebingungan adalah nilai 100m yang dilaporkan di bidang CPU(core). Perintah menampilkan penggunaan CPU dalam milicore. Pengukuran 1000m selalu berarti konsumsi 100% dari satu inti CPU. 500m menunjukkan konsumsi 50% dari satu inti, sedangkan 2000m berarti dua inti sedang ditempati.

Mengubah Urutan Pengurutan Objek

Perintah kubectl top secara opsional dapat mengurutkan daftar objek yang dipancarkan berdasarkan konsumsi CPU atau memori. Hal ini memudahkan untuk dengan cepat menemukan Node atau Pod yang memberikan tekanan tertinggi pada sumber daya cluster.

Tambahkan flag –sort-by dengan cpu atau memori sebagai nilainya untuk mengaktifkan perilaku ini:

$ kubectl top pod –sort -by=memori NAMA CPU(core) CPU% MEMORY(bytes) MEMORY% nginx-1 249m 3% 1790Mi 5% nginx-2 150m 1% 847Mi 2% Memfilter Daftar Objek

Serupa dengan perintah Kubectl lainnya, flag –selector memungkinkan Anda memfilter daftar objek ke item dengan label tertentu:

$ kubectl top pod –selector application=demo-app NAME CPU(core) CPU% MEMORY(bytes) MEMORY% nginx-1 249m 3% 1790Mi 5% nginx-2 150m 1% 847Mi 2%

Dalam contoh ini, hanya Pod yang memiliki label aplikasi: demo-app yang akan disertakan dalam output. =, ==, dan != didukung sebagai operator. Beberapa batasan dapat diterapkan dengan merangkainya menjadi string yang dipisahkan koma, seperti application=demo-app,version!=1. Objek hanya akan muncul jika cocok dengan semua filter label dalam kueri Anda.

Mendapatkan Pemanfaatan Sumber Daya Tertentu

Node atas dan sub-perintah pod teratas keduanya dapat diteruskan dengan nama Node atau Pod tertentu yang akan diambil. Metrik saat ini yang terkait dengan item tersebut akan ditampilkan dalam isolasi.

Supply nama objek sebagai argumen sederhana untuk perintah, langsung setelah node atau pod:

$ kubectl top node minikube NAME CPU(core) CPU% MEMORY(bytes) MEMORY% minikube 245m 3% 714Mi 2%Ringkasan

Perintah atas kubectl memunculkan metrik konsumsi sumber daya penting untuk Node dan Pod di cluster Kubernetes Anda. Anda dapat menggunakannya untuk memeriksa penggunaan CPU dan memori yang terkait dengan setiap beban kerja Anda dengan cepat. Informasi ini dapat membantu untuk mendiagnosis masalah kinerja dan mengidentifikasi kapan saatnya untuk menambahkan Node.

lain Sebelum menggunakan perintah, Anda perlu menginstal Server Kubernetes Metrics di cluster Anda. Ini menyediakan API yang mengekspos data pemanfaatan sumber daya. Mengaktifkan Server Metrik menimbulkan overhead kinerja tetapi ini biasanya diabaikan di sebagian besar penerapan. Biasanya membutuhkan 1m inti CPU dan 2MiB memori per Node yang dipantau, meskipun ini mungkin berbeda dengan beban kerja yang berjalan di lingkungan spesifik Anda.

Itulah berita seputar Cara Memantau Penggunaan Resource Kubernetes Dengan Server Metrics dan Kubectl Top, semoga bermanfaat. Disadur dari HowToGeek.com.