Metrics Server adalah sumber metrik sumber daya container yang skalabel dan efisien untuk pipeline penskalaan otomatis bawaan Kubernetes.
Metrics Server mengumpulkan metrik sumber daya dari Kubelets dan memaparkannya di apiserver Kubernetes melalui Metrics API untuk digunakan oleh Horizontal Pod Autoscaler dan Vertical Pod Autoscaler. Metrics API juga dapat diakses oleh kubectl top
, sehingga memudahkan proses debug pipeline penskalaan otomatis.
Peringatan
Server Metrik dimaksudkan hanya untuk tujuan penskalaan otomatis. Misalnya, jangan menggunakannya untuk meneruskan metrik ke solusi pemantauan, atau sebagai sumber metrik solusi pemantauan. Dalam kasus seperti ini, harap kumpulkan metrik dari titik akhir /metrics/resource
Kubelet secara langsung.
Server Metrik menawarkan:
Anda dapat menggunakan Server Metrik untuk:
Jangan gunakan Metrics Server saat Anda membutuhkan:
Untuk kasus penggunaan yang tidak didukung, lihat solusi pemantauan lengkap seperti Prometheus.
Metrics Server memiliki persyaratan khusus untuk konfigurasi cluster dan jaringan. Persyaratan ini bukan merupakan persyaratan default untuk semua distribusi klaster. Harap pastikan bahwa distribusi kluster Anda mendukung persyaratan berikut sebelum menggunakan Metrics Server:
--kubelet-insecure-tls
ke Metrics Server)hostNetwork
diaktifkan). Baca selengkapnya tentang komunikasi bidang kendali ke simpul..status.addresses
dan port di bidang .status.daemonEndpoints.kubeletEndpoint.port
(default 10250). Metrics Server akan memilih alamat node pertama berdasarkan daftar yang disediakan oleh flag baris perintah kubelet-preferred-address-types
(default InternalIP,ExternalIP,Hostname
dalam manifes). Server Metrik dapat diinstal langsung dari manifes YAML atau melalui bagan Helm resmi. Untuk menginstal rilis Metrics Server terbaru dari manifes komponen.yaml , jalankan perintah berikut.
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Petunjuk penginstalan untuk rilis sebelumnya dapat ditemukan di rilis Metrics Server.
Server Metrik | Grup/versi API Metrik | Versi Kubernetes yang didukung |
---|---|---|
0.7.x | metrics.k8s.io/v1beta1 | 1,19+ |
0.6.x | metrics.k8s.io/v1beta1 | 1,19+ |
0,5.x | metrics.k8s.io/v1beta1 | *1.8+ |
0,4.x | metrics.k8s.io/v1beta1 | *1.8+ |
0,3.x | metrics.k8s.io/v1beta1 | 1.8-1.21 |
*Versi Kubernetes yang lebih rendah dari v1.16 memerlukan penerusan flag baris perintah --authorization-always-allow-paths=/livez,/readyz
Metrics Server dapat diinstal dalam mode ketersediaan tinggi langsung dari manifes YAML atau melalui bagan Helm resmi dengan menetapkan nilai replicas
lebih besar dari 1
. Untuk menginstal rilis Metrics Server terbaru dalam mode ketersediaan tinggi dari manifes high-availability.yaml , jalankan perintah berikut.
Di Kubernetes v1.21+:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
Di Kubernetes v1.19-1.21:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability.yaml
Catatan
Konfigurasi ini memerlukan cluster dengan setidaknya 2 node di mana Server Metrik dapat dijadwalkan.
Selain itu, untuk memaksimalkan efisiensi konfigurasi yang sangat tersedia ini, disarankan untuk menambahkan flag CLI --enable-aggregator-routing=true
ke kube-apiserver sehingga permintaan yang dikirim ke Metrics Server memiliki beban yang seimbang antara 2 instance.
Bagan Helm dipertahankan sebagai komponen tambahan dalam repo ini dan dirilis ke dalam repositori bagan yang didukung pada cabang gh-pages
. Bagan versi baru akan dirilis untuk setiap rilis Metrics Server dan juga dapat dirilis secara mandiri jika diperlukan. Bagan pada cabang master
tidak boleh direferensikan secara langsung karena mungkin berisi modifikasi sejak terakhir kali dirilis, untuk melihat kode bagan gunakan tag rilis bagan.
Server Metrik memerlukan kemampuan CAP_NET_BIND_SERVICE
untuk mengikat ke port yang memiliki hak istimewa sebagai non-root. Jika Anda menjalankan Metrics Server di lingkungan yang menggunakan PSS atau mekanisme lain untuk membatasi kemampuan pod, pastikan Metrics Server diizinkan untuk menggunakan kemampuan ini. Hal ini berlaku bahkan jika Anda menggunakan tanda --secure-port
untuk mengubah port yang diikat oleh Metrics Server ke port yang tidak memiliki hak istimewa.
Mulai dari v0.5.0 Metrics Server hadir dengan permintaan sumber daya default yang menjamin kinerja yang baik untuk sebagian besar konfigurasi cluster hingga 100 node:
Penggunaan sumber daya Metrik Server bergantung pada beberapa dimensi independen, sehingga menciptakan Amplop Skalabilitas. Konfigurasi Server Metrik default harus berfungsi di klaster yang tidak melebihi ambang batas mana pun yang tercantum di bawah:
Kuantitas | Ambang batas namespace | Ambang batas cluster |
---|---|---|
#Node | tidak ada | 100 |
#Pod per node | 70 | 70 |
#Penerapan dengan HPA | 100 | 100 |
Sumber daya dapat disesuaikan secara proporsional berdasarkan jumlah node dalam cluster. Untuk cluster yang terdiri lebih dari 100 node, alokasikan tambahan:
Anda dapat menggunakan pendekatan yang sama untuk menurunkan permintaan sumber daya, tetapi ada batasan di mana hal ini dapat memengaruhi dimensi skalabilitas lainnya seperti jumlah maksimum pod per node.
Bergantung pada pengaturan klaster, Anda mungkin juga perlu mengubah tanda yang diteruskan ke kontainer Metrics Server. Bendera yang paling berguna:
--kubelet-preferred-address-types
- Prioritas jenis alamat node yang digunakan saat menentukan alamat untuk menghubungkan ke node tertentu (default [Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP])--kubelet-insecure-tls
- Jangan verifikasi CA sertifikat penyajian yang diberikan oleh Kubelets. Untuk tujuan pengujian saja.--requestheader-client-ca-file
- Tentukan bundel sertifikat root untuk memverifikasi sertifikat klien pada permintaan masuk.--node-selector
-Dapat menyelesaikan untuk mengambil metrik dari node yang ditentukan berdasarkan labelAnda bisa mendapatkan daftar lengkap tanda konfigurasi Metrics Server dengan menjalankan:
docker run --rm registry.k8s.io/metrics-server/metrics-server:v0.7.0 --help
Metrics Server adalah komponen dalam pipeline metrik inti yang dijelaskan dalam arsitektur pemantauan Kubernetes.
Untuk informasi lebih lanjut, lihat:
Sebelum memposting masalah, periksa terlebih dahulu Pertanyaan Umum dan Masalah Umum.
Pelajari cara berinteraksi dengan komunitas Kubernetes di halaman komunitas.
Anda dapat menghubungi pengelola proyek ini di:
Proyek ini dikelola oleh SIG Instrumentation
Partisipasi dalam komunitas Kubernetes diatur oleh Kode Etik Kubernetes.