ACK menyediakan fitur profiling sumber daya untuk beban kerja Kubernetes native. Fitur ini menganalisis penggunaan sumber daya historis guna merekomendasikan spesifikasi kontainer, sehingga menyederhanakan proses konfigurasi permintaan dan batas kontainer. Topik ini menjelaskan cara menggunakan fitur profiling sumber daya melalui konsol ACK maupun baris perintah.
Prasyarat dan catatan
Fitur ini hanya didukung pada Kluster ACK Pro yang memenuhi kondisi berikut:
Versi v0.7.1 atau lebih baru dari komponen ack-koordinator (sebelumnya ack-slo-manager) telah diinstal. Untuk informasi selengkapnya, lihat ack-koordinator.
Versi v0.3.8 atau lebih baru dari komponen metrics-server telah diinstal.
Jika sebuah node menggunakan containerd sebagai runtime kontainer dan ditambahkan ke kluster sebelum pukul 14.00 pada 19 Januari 2022, Anda harus menambahkan ulang node tersebut atau meningkatkan kluster ke versi terbaru. Untuk informasi selengkapnya, lihat Tambahkan node yang ada dan Tingkatkan kluster secara manual.
Fitur profiling sumber daya sedang dalam pratinjau publik sebagai bagian dari suite manajemen biaya dan siap digunakan.
Untuk memastikan akurasi hasil profiling, aktifkan profiling sumber daya untuk beban kerja dan tunggu setidaknya satu hari agar data yang cukup terkumpul.
Deskripsi penagihan
Komponen ack-koordinator dapat diinstal dan digunakan secara gratis. Namun, biaya tambahan mungkin berlaku dalam skenario berikut:
ack-koordinator adalah komponen yang dikelola sendiri yang mengonsumsi sumber daya node pekerja setelah instalasi. Anda dapat mengonfigurasi permintaan sumber daya untuk setiap modul selama instalasi.
Secara default, ack-koordinator mengekspos metrik pemantauan untuk fitur-fitur seperti profiling sumber daya dan penjadwalan detail halus dalam format Prometheus. Jika Anda mengaktifkan Aktifkan Pemantauan Prometheus untuk ACK-Koordinator dan menggunakan Managed Service for Prometheus saat mengonfigurasi komponen, metrik ini dilaporkan ke Managed Service for Prometheus sebagai metrik dasar. Jika Anda mengubah pengaturan default, seperti durasi penyimpanan default, biaya tambahan mungkin berlaku. Untuk informasi selengkapnya, lihat Penagihan Layanan Terkelola untuk Prometheus.
Pengantar profil sumber daya
Dalam Kubernetes, permintaan sumber daya memberikan deskripsi semantik untuk manajemen sumber daya kontainer. Saat sebuah kontainer menentukan permintaan, penjadwal mencocokkan permintaan tersebut dengan sumber daya yang dapat dialokasikan dari sebuah node untuk menentukan tempat penjadwalan pod. Permintaan kontainer biasanya ditetapkan berdasarkan pengalaman. Administrator terus-menerus menyesuaikan pengaturan dengan merujuk pada pemanfaatan sumber daya historis, kinerja pengujian stres aplikasi, dan umpan balik operasional online.
Namun, metode konfigurasi manual ini memiliki keterbatasan berikut:
Untuk memastikan stabilitas aplikasi online, administrator sering kali menyisihkan buffer sumber daya yang signifikan guna menangani fluktuasi beban pada layanan hulu dan hilir. Praktik ini menyebabkan permintaan kontainer ditetapkan jauh lebih tinggi daripada pemanfaatan sumber daya aktual, sehingga mengakibatkan pemanfaatan sumber daya kluster yang rendah dan pemborosan yang signifikan.
Ketika tingkat alokasi kluster tinggi, administrator dapat mengurangi konfigurasi permintaan untuk meningkatkan pemanfaatan sumber daya. Hal ini meningkatkan kepadatan penerapan kontainer, yang dapat memengaruhi stabilitas kluster ketika lalu lintas aplikasi meningkat.
Untuk mengatasi masalah ini, ack-koordinator menyediakan fitur profiling sumber daya yang merekomendasikan spesifikasi sumber daya kontainer guna mengurangi kompleksitas konfigurasi. ACK menyediakan antarmuka di konsol yang membantu administrator aplikasi menganalisis validitas spesifikasi sumber daya aplikasi secara cepat dan melakukan penyesuaian sesuai kebutuhan. Selain itu, ACK juga menyediakan akses melalui baris perintah, yang memungkinkan Anda langsung mengelola profil sumber daya aplikasi menggunakan CustomResourceDefinitions (CRD).
Gunakan profil sumber daya di konsol
Langkah 1: Instal fitur profiling sumber daya
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Pada halaman Cost Optimization, klik tab Resource Profile. Di bagian Resource Profile, ikuti petunjuk di layar untuk mengaktifkan fitur tersebut.
Instalasi atau peningkatan komponen: Ikuti petunjuk di layar untuk menginstal atau meningkatkan komponen ack-koordinator. Jika ini pertama kalinya Anda menggunakan fitur ini, Anda harus menginstal komponen ack-koordinator.
CatatanJika versi ack-koordinator lebih awal dari v0.7.0, Anda harus melakukan migrasi dan peningkatan. Untuk informasi selengkapnya, lihat Migrasikan ack-koordinator dari pasar ke pusat komponen.
Untuk mengonfigurasi profiling saat pertama kali menggunakan fitur ini, pilih Default Configuration setelah instalasi atau peningkatan. Opsi ini mengontrol cakupan profiling sumber daya dan merupakan metode yang direkomendasikan. Anda juga dapat menyesuaikan pengaturan nanti dengan mengklik Konfigurasi Profil di konsol.
Klik Enable Profiling untuk menuju ke halaman Resource Profile.
Langkah 2: Kelola kebijakan profiling sumber daya
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Pada halaman Cost Optimization, klik tab Resource Profile, lalu klik Profile Configuration.
Konfigurasi profil mendukung dua mode: Global Configuration dan Automated O&M Configuration. Secara default, mode Konfigurasi Global dipilih saat Anda menginstal komponen profiling sumber daya. Anda dapat mengubah mode konfigurasi dan parameter, lalu klik OK untuk menerapkan perubahan.
Mode Konfigurasi Global (direkomendasikan)
Mode Konfigurasi Global mengaktifkan profiling sumber daya untuk semua beban kerja. Secara default, mode ini mengecualikan namespace `arms-prom` dan `kube-system`.
Parameter
Deskripsi
Rentang nilai
Excluded Namespaces
Namespace yang dinonaktifkan profiling sumber dayanya. Biasanya ini adalah namespace untuk komponen sistem. Cakupan akhir adalah irisan antara namespace yang ditentukan dan jenis beban kerja.
Namespace yang ada di kluster saat ini. Anda dapat memilih beberapa namespace. Nilai default adalah `kube-system` dan `arms-prom`.
Enabled Workload Types
Jenis beban kerja yang diaktifkan profiling sumber dayanya. Cakupan akhir adalah irisan antara namespace yang ditentukan dan jenis beban kerja.
Mendukung tiga jenis beban kerja Kubernetes native: Deployment, StatefulSet, dan DaemonSet. Anda dapat memilih beberapa jenis.
CPU Consumption Buffer
Buffer keamanan yang digunakan untuk menghasilkan profil sumber daya. Untuk informasi selengkapnya, lihat deskripsi berikut.
Harus berupa angka non-negatif. Tiga tingkat buffer umum disediakan: 70%, 50%, dan 30%.
Memory Consumption Buffer
Buffer keamanan yang digunakan untuk menghasilkan profil sumber daya. Untuk informasi selengkapnya, lihat deskripsi berikut.
Harus berupa angka non-negatif. Tiga tingkat buffer umum disediakan: 70%, 50%, dan 30%.
Mode Konfigurasi O&M Otomatis
Mode Konfigurasi O&M Otomatis hanya mengaktifkan profiling sumber daya untuk beban kerja di namespace tertentu. Jika kluster Anda besar (misalnya, berisi lebih dari 1.000 node) atau Anda hanya ingin mengaktifkan fitur ini untuk beberapa beban kerja, Anda dapat menggunakan mode ini untuk menentukan beban kerja sesuai kebutuhan.
Parameter
Deskripsi
Rentang nilai
Enabled Namespaces
Namespace yang diaktifkan profiling sumber dayanya. Cakupan akhir adalah irisan antara namespace yang ditentukan dan jenis beban kerja.
Namespace yang ada di kluster saat ini. Anda dapat memilih beberapa namespace.
Enabled Workload Types
Jenis beban kerja yang diaktifkan profiling sumber dayanya. Cakupan akhir adalah irisan antara namespace yang ditentukan dan jenis beban kerja.
Mendukung tiga jenis beban kerja Kubernetes native: Deployment, StatefulSet, dan DaemonSet. Anda dapat memilih beberapa jenis.
CPU Consumption Buffer
Buffer keamanan yang digunakan untuk menghasilkan profil sumber daya. Untuk informasi selengkapnya, lihat deskripsi berikut.
Harus berupa angka non-negatif. Tiga tingkat buffer umum disediakan: 70%, 50%, dan 30%.
Memory Consumption Buffer
Buffer keamanan yang digunakan untuk menghasilkan profil sumber daya. Untuk informasi selengkapnya, lihat deskripsi berikut.
Harus berupa angka non-negatif. Tiga tingkat buffer umum disediakan: 70%, 50%, dan 30%.
Buffer konsumsi sumber daya: Saat administrator mengevaluasi kapasitas aplikasi, seperti permintaan per detik (QPS), mereka biasanya tidak menggunakan 100% sumber daya fisik. Hal ini karena keterbatasan sumber daya fisik, seperti Hyper-threading, dan kebutuhan aplikasi untuk menyisihkan sumber daya guna menangani permintaan beban puncak. Saran penurunan spesifikasi akan muncul ketika selisih antara nilai profil dan permintaan sumber daya asli melebihi buffer keamanan. Untuk informasi selengkapnya tentang algoritma, lihat deskripsi saran profil di bagian Langkah 3: Lihat ikhtisar profil aplikasi.

Langkah 3: Lihat ikhtisar profil aplikasi
Setelah Anda mengonfigurasi kebijakan profiling sumber daya, Anda dapat melihat profil sumber daya setiap beban kerja di halaman Resource Profile.
Untuk meningkatkan akurasi hasil profiling, sistem akan meminta Anda mengumpulkan data setidaknya selama 24 jam saat pertama kali menggunakan fitur ini.

Tabel berikut menjelaskan kolom-kolom dalam ikhtisar profil.

Dalam tabel berikut, tanda hubung (-) menunjukkan bahwa item tersebut tidak berlaku.
Kolom | Deskripsi | Nilai | Dapat difilter |
Nama Beban Kerja | Nama beban kerja. | - | Ya. Anda dapat melakukan pencarian tepat berdasarkan nama di bilah menu. |
Namespace | Namespace dari beban kerja. | - | Ya. Secara default, namespace `kube-system` tidak termasuk dalam filter. |
Jenis Beban Kerja | Jenis beban kerja. | Nilai yang valid: Deployment, DaemonSet, dan StatefulSet. | Ya. Filter default adalah Semua. |
Permintaan CPU | Permintaan sumber daya CPU dari pod beban kerja. | - | Tidak. |
Permintaan Memori | Permintaan sumber daya memori dari pod beban kerja. | - | Tidak. |
Status Data Profil | Profil sumber daya dari beban kerja. |
| Tidak. |
Profil CPU, Profil Memori | Saran penyesuaian untuk permintaan sumber daya asli dari beban kerja. Saran ini didasarkan pada nilai profil, permintaan sumber daya asli, dan buffer konsumsi sumber daya yang dikonfigurasi dalam kebijakan profiling. Untuk informasi selengkapnya, lihat deskripsi berikut. | Nilai yang valid: Upgrade, Downgrade, dan Keep. Persentase menunjukkan deviasi. Rumusnya adalah: | Ya. Filter default mencakup Upgrade dan Downgrade. |
Waktu Pembuatan | Waktu saat profil dibuat. | - | Tidak. |
Upgrade/Downgrade | Setelah mengevaluasi profil dan saran, klik Upgrade/Downgrade untuk meningkatkan atau menurunkan spesifikasi sumber daya. Untuk informasi selengkapnya, lihat Langkah 5: Ubah spesifikasi sumber daya aplikasi. | - | Tidak. |
Profiling sumber daya ACK menghasilkan nilai profil untuk spesifikasi sumber daya setiap kontainer dalam beban kerja. Dengan membandingkan nilai profil (Recommend), permintaan sumber daya asli (Request), dan buffer konsumsi sumber daya yang dikonfigurasi (Buffer), konsol profiling sumber daya menghasilkan prompt operasional, seperti menambah atau mengurangi permintaan sumber daya (upgrade atau downgrade). Jika beban kerja memiliki beberapa kontainer, prompt akan ditampilkan untuk kontainer dengan deviasi terbesar. Prinsip perhitungannya adalah sebagai berikut:
Jika nilai profil (Recommend) lebih besar daripada permintaan sumber daya asli (Request), kontainer telah menggunakan sumber daya secara berlebihan (penggunaan lebih besar daripada permintaan) dalam jangka waktu lama. Hal ini menimbulkan risiko stabilitas. Anda harus meningkatkan spesifikasi sumber daya sesegera mungkin. Konsol menampilkan prompt "Upgrade disarankan".
Jika nilai profil (Recommend) lebih kecil daripada permintaan sumber daya asli (Request), kontainer mungkin membuang-buang sumber daya dan spesifikasi sumber daya dapat diturunkan. Hal ini harus ditentukan berdasarkan buffer konsumsi sumber daya yang dikonfigurasi. Rinciannya adalah sebagai berikut:
Hitung spesifikasi sumber daya target (Target) berdasarkan nilai profil dan buffer konsumsi sumber daya yang dikonfigurasi:
Target = Recommend × (1 + Buffer).Hitung tingkat deviasi (Degree) antara spesifikasi sumber daya target (Target) dan permintaan sumber daya asli (Request):
Degree = 1 - (Request / Target).Berdasarkan nilai profil dan tingkat deviasi (Degree), prompt untuk saran CPU dan memori dihasilkan. Jika nilai absolut deviasi (Degree) lebih besar dari 0,1, saran downgrade akan muncul.
Dalam kasus lain, profil sumber daya menyarankan Keep untuk spesifikasi sumber daya aplikasi, yang berarti tidak diperlukan penyesuaian.
Langkah 4: Lihat detail profil aplikasi
Di halaman Resource Profile, klik nama beban kerja untuk menuju ke halaman detail profilnya.
Halaman detail terdiri dari tiga bagian: informasi dasar beban kerja, kurva sumber daya untuk detail profil setiap kontainer, dan jendela untuk mengubah spesifikasi sumber daya aplikasi.
Seperti yang ditunjukkan pada gambar di atas, metrik dalam kurva sumber daya detail profil dijelaskan sebagai berikut. CPU digunakan sebagai contoh.
Nama Kurva | Makna |
cpu limit | Batas sumber daya CPU kontainer. |
cpu request | Permintaan sumber daya CPU kontainer. |
cpu recommend | Nilai sumber daya CPU profil kontainer. |
cpu usage (average) | Penggunaan CPU rata-rata dari semua replika kontainer dalam beban kerja. |
cpu usage (max) | Penggunaan CPU maksimum di antara semua replika kontainer dalam beban kerja. |
Langkah 5: Ubah spesifikasi sumber daya aplikasi
Di bagian Upgrade/Downgrade di bagian bawah halaman detail profil aplikasi, ubah spesifikasi sumber daya setiap kontainer berdasarkan nilai profil.
Kolom-kolom dijelaskan sebagai berikut:

Item konfigurasi
Makna
Sumber Daya yang Diperlukan Saat Ini
Permintaan sumber daya kontainer saat ini.
Batas Sumber Daya Saat Ini
Batas sumber daya kontainer saat ini.
Nilai Profil
Nilai profil yang dihasilkan oleh profiling sumber daya untuk kontainer. Nilai ini dapat digunakan sebagai referensi untuk permintaan sumber daya.
Buffer Keamanan
Buffer keamanan yang dikonfigurasi dalam manajemen kebijakan profiling sumber daya. Nilai ini dapat digunakan sebagai referensi untuk sumber daya yang diperlukan target. Misalnya, tambahkan koefisien buffer ke nilai profil (misalnya, 4,742 × 1,3 ≈ 6,2 seperti yang ditunjukkan pada gambar).
Sumber Daya yang Diperlukan Target
Nilai target yang direncanakan untuk menyesuaikan permintaan sumber daya kontainer.
Batas Sumber Daya Target
Nilai target yang direncanakan untuk menyesuaikan batas sumber daya kontainer. Catatan: Jika beban kerja menggunakan penjadwalan sadar topologi CPU, batas sumber daya CPU harus berupa bilangan bulat.
Setelah menyelesaikan konfigurasi, klik Submit. Spesifikasi sumber daya diperbarui, dan Anda akan diarahkan secara otomatis ke halaman detail beban kerja.
Setelah spesifikasi sumber daya diperbarui, pengontrol melakukan pembaruan bergulir pada beban kerja dan membuat ulang pod.
Gunakan profil sumber daya dari baris perintah
Langkah 1: Aktifkan profiling sumber daya
Buat file
recommendation-profile.yamlyang berisi konten YAML berikut untuk mengaktifkan profiling sumber daya untuk beban kerja.Anda dapat membuat CRD RecommendationProfile untuk mengaktifkan profiling sumber daya untuk beban kerja dan mendapatkan data profil spesifikasi sumber daya untuk kontainernya. CRD RecommendationProfile memungkinkan Anda mengontrol cakupan berdasarkan namespace dan jenis beban kerja. Cakupan akhir adalah irisan keduanya.
apiVersion: autoscaling.alibabacloud.com/v1alpha1 kind: RecommendationProfile metadata: # Nama objek. Anda tidak perlu menentukan namespace untuk objek non-namespaced. name: profile-demo spec: # Jenis beban kerja yang diaktifkan profiling sumber dayanya. controllerKind: - Deployment # Namespace yang diaktifkan profiling sumber dayanya. enabledNamespaces: - defaultField konfigurasi dijelaskan sebagai berikut:
Parameter
Tipe
Deskripsi
metadata.nameString
Nama objek. Jika RecommendationProfile bertipe non-namespaced, Anda tidak perlu menentukan namespace.
spec.controllerKindString
Jenis beban kerja yang diaktifkan profiling sumber dayanya. Jenis beban kerja yang didukung meliputi Deployment, StatefulSet, dan DaemonSet.
spec.enabledNamespacesString
Namespace yang diaktifkan profiling sumber dayanya.
Aktifkan profiling sumber daya untuk aplikasi target.
kubectl apply -f recommendation-profile.yamlBuat file
cpu-load-gen.yamlyang berisi konten YAML berikut.apiVersion: apps/v1 kind: Deployment metadata: name: cpu-load-gen labels: app: cpu-load-gen spec: replicas: 2 selector: matchLabels: app: cpu-load-gen-selector template: metadata: labels: app: cpu-load-gen-selector spec: containers: - name: cpu-load-gen image: registry.cn-zhangjiakou.aliyuncs.com/acs/slo-test-cpu-load-gen:v0.1 command: ["cpu_load_gen.sh"] imagePullPolicy: Always resources: requests: cpu: 8 # Permintaan CPU untuk aplikasi ini adalah 8 core. memory: "1Gi" limits: cpu: 12 memory: "2Gi"Terapkan aplikasi `cpu-load-gen` menggunakan file `cpu-load-gen.yaml`.
kubectl apply -f cpu-load-gen.yamlAmbil profil spesifikasi sumber daya.
kubectl get recommendations -l \ "alpha.alibabacloud.com/recommendation-workload-apiVersion=apps-v1, \ alpha.alibabacloud.com/recommendation-workload-kind=Deployment, \ alpha.alibabacloud.com/recommendation-workload-name=cpu-load-gen" -o yamlack-koordinator menghasilkan profil spesifikasi sumber daya untuk setiap beban kerja yang diaktifkan profiling sumber dayanya dan menyimpan hasilnya dalam CRD Recommendation. Kode berikut memberikan contoh profil spesifikasi sumber daya untuk beban kerja bernama
cpu-load-gen.apiVersion: autoscaling.alibabacloud.com/v1alpha1 kind: Recommendation metadata: labels: alpha.alibabacloud.com/recommendation-workload-apiVersion: apps-v1 alpha.alibabacloud.com/recommendation-workload-kind: Deployment alpha.alibabacloud.com/recommendation-workload-name: cpu-load-gen name: f20ac0b3-dc7f-4f47-b3d9-bd91f906**** namespace: recommender-demo spec: workloadRef: apiVersion: apps/v1 kind: Deployment name: cpu-load-gen status: recommendResources: containerRecommendations: - containerName: cpu-load-gen target: cpu: 4742m memory: 262144k originalTarget: # Ini menunjukkan hasil antara dari algoritma profiling sumber daya. Kami tidak merekomendasikan penggunaannya secara langsung. # ...Untuk memudahkan pengambilan, Recommendation memiliki namespace yang sama dengan beban kerja. Versi API, jenis, dan nama beban kerja disimpan dalam label, seperti yang dijelaskan dalam tabel berikut.
Kunci Label
Deskripsi
Contoh
alpha.alibabacloud.com/recommendation-workload-apiVersionVersi API dari beban kerja. Karena batasan label Kubernetes, garis miring (/) diganti dengan tanda hubung (-).
apps-v1 (sebelumnya apps/v1)
alpha.alibabacloud.com/recommendation-workload-kindJenis beban kerja, seperti Deployment atau StatefulSet.
Deployment
alpha.alibabacloud.com/recommendation-workload-nameNama beban kerja. Karena batasan label Kubernetes, panjangnya tidak boleh melebihi 63 karakter.
cpu-load-gen
Profil spesifikasi sumber daya untuk setiap kontainer disimpan dalam
status.recommendResources.containerRecommendations. Tabel berikut menjelaskan field-field tersebut.Nama Bidang
Makna
Format
Contoh
containerNameNama kontainer.
string
cpu-load-gen
targetHasil profil spesifikasi sumber daya, termasuk dimensi CPU dan memori.
map[ResourceName]resource.Quantity
cpu: 4742m
memory: 262144k
originalTargetHasil antara dari algoritma profiling sumber daya. Kami tidak merekomendasikan penggunaannya secara langsung.
-
-
CatatanNilai CPU profil minimum untuk satu pod adalah 0,025 core, dan nilai memori minimum adalah 250 MB.
Dengan membandingkan spesifikasi sumber daya yang dideklarasikan dalam aplikasi target (
cpu-load-gen) dengan hasil profiling dari langkah ini, Anda dapat melihat bahwa permintaan CPU untuk kontainer ini terlalu besar. Anda dapat mengurangi permintaan tersebut untuk menghemat sumber daya kluster.Kategori
Spesifikasi Sumber Daya Asli
Spesifikasi Sumber Daya Profil
CPU
8 core
4,742 core
Langkah 2: (Opsional) Lihat hasil di Prometheus
Komponen ack-koordinator menyediakan antarmuka kueri Prometheus untuk profil sumber daya, yang dapat Anda lihat langsung menggunakan pemantauan Prometheus ACK.
Jika ini pertama kalinya Anda menggunakan dasbor untuk fitur ini, pastikan dasbor Resource Profile ditingkatkan ke versi terbaru. Untuk informasi selengkapnya tentang peningkatan, lihat Operasi terkait.
Untuk melihat profil sumber daya di konsol ACK menggunakan pemantauan Prometheus, lakukan langkah-langkah berikut:
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Pada halaman Prometheus Monitoring, pilih .
Di tab Resource Profile, lihat data terperinci, termasuk spesifikasi kontainer (Request), penggunaan sumber daya aktual (Usage), dan spesifikasi sumber daya profil (Recommend). Untuk informasi selengkapnya, lihat Gunakan Layanan Terkelola Alibaba Cloud untuk Prometheus.
Jika Anda memiliki sistem pemantauan Prometheus yang dikelola sendiri, Anda dapat merujuk pada metrik berikut untuk mengonfigurasi dasbor.
# Spesifikasi sumber daya CPU profil untuk kontainer dalam beban kerja. koord_manager_recommender_recommendation_workload_target{exported_namespace="$namespace", workload_name="$workload", container_name="$container", resource="cpu"} # Spesifikasi sumber daya memori profil untuk kontainer dalam beban kerja. koord_manager_recommender_recommendation_workload_target{exported_namespace="$namespace", workload_name="$workload", container_name="$container", resource="memory"}PentingMetrik profiling sumber daya yang disediakan oleh komponen ack-koordinator diubah namanya menjadi
koord_manager_recommender_recommendation_workload_targetpada versi v1.5.0-ack1.14. Namun, metrik dari versi sebelumnya,slo_manager_recommender_recommendation_workload_target, masih kompatibel. Jika Anda memiliki sistem pemantauan Prometheus yang dikelola sendiri, kami merekomendasikan Anda beralih kekoord_manager_recommender_recommendation_workload_targetsetelah meningkatkan komponen ack-koordinator ke v1.5.0-ack1.14 atau lebih baru.
FAQ
Bagaimana cara kerja algoritma profiling sumber daya?
Algoritma profiling sumber daya melibatkan model data multidimensi. Prinsip algoritma dapat dirangkum sebagai berikut:
Algoritma profiling sumber daya terus-menerus mengumpulkan data penggunaan sumber daya kontainer dan menghitung statistik agregat, seperti nilai puncak, rata-rata tertimbang, dan persentil dari sampel penggunaan CPU dan memori.
Dalam profil akhir, nilai CPU yang direkomendasikan ditetapkan pada persentil P95 dan nilai memori yang direkomendasikan ditetapkan pada persentil P99. Margin keamanan ditambahkan pada kedua nilai tersebut untuk memastikan keandalan beban kerja.
Algoritma dioptimalkan berdasarkan waktu. Algoritma hanya merujuk pada data dari 14 hari terakhir dan menggunakan model jendela geser paruh waktu untuk statistik agregat. Bobot sampel data lama secara bertahap berkurang.
Algoritma mempertimbangkan informasi status runtime kontainer, seperti event kehabisan memori (OOM), untuk lebih meningkatkan akurasi nilai profil.
Apa saja persyaratan jenis aplikasi untuk profiling sumber daya?
Fitur ini cocok untuk aplikasi layanan online.
Saat ini, profil sumber daya memprioritaskan pemenuhan kebutuhan sumber daya kontainer untuk memastikan sebagian besar sampel data tercakup. Namun, untuk aplikasi offline, jenis pekerjaan pemrosesan batch ini lebih memperhatikan throughput keseluruhan dan dapat mentolerir tingkat persaingan sumber daya tertentu untuk meningkatkan pemanfaatan sumber daya kluster secara keseluruhan. Profil mungkin tampak konservatif untuk aplikasi offline. Selain itu, untuk komponen sistem kritis yang sering diterapkan dalam mode aktif-pasif, replika dalam peran cadangan menganggur dalam jangka waktu lama. Sampel penggunaan sumber daya dari replika ini juga dapat mengganggu algoritma profiling. Untuk skenario ini, proses profil sesuai kebutuhan sebelum digunakan. Kami merekomendasikan Anda mengikuti pembaruan produk untuk profiling sumber daya.
Bisakah saya langsung menggunakan nilai profil untuk menetapkan permintaan dan batas kontainer?
Hal ini tergantung pada karakteristik bisnis Anda. Hasil yang disediakan oleh profiling sumber daya merupakan ringkasan kebutuhan sumber daya aplikasi saat ini. Administrator harus memproses nilai profil berdasarkan karakteristik aplikasi sebelum menggunakannya.
Misalnya, untuk menangani puncak lalu lintas atau mencapai peralihan mulus dalam arsitektur aktif-aktif, Anda perlu menyisihkan buffer sumber daya tambahan. Selain itu, jika aplikasi sensitif terhadap sumber daya dan tidak dapat berjalan secara stabil di bawah beban host yang tinggi, Anda juga harus meningkatkan spesifikasi berdasarkan nilai profil.
Bagaimana cara melihat metrik profiling sumber daya dengan Prometheus yang dikelola sendiri?
Metrik pemantauan terkait profiling sumber daya disediakan sebagai antarmuka HTTP berformat Prometheus di modul ack-koord-manager komponen ack-koordinator. Anda dapat menjalankan perintah berikut untuk mengambil alamat IP pod dan mengakses data metrik.
Ambil alamat IP pod
kubectl get pod -A -o wide | grep koord-managerOutput yang diharapkan:
kube-system ack-koord-manager-b86bd47d9-92f6m 1/1 Running 0 16h 10.10.0.xxx cn-hangzhou.10.10.0.xxx <none> <none> kube-system ack-koord-manager-b86bd47d9-vg5z7 1/1 Running 0 16h 10.10.0.xxx cn-hangzhou.10.10.0.xxx <none> <none>Jalankan perintah berikut untuk melihat data metrik. Perhatikan bahwa ack-koord-manager berjalan dalam mode aktif-pasif dengan dua replika, dan data hanya disediakan oleh pod replika aktif. Untuk port
port(nilai default adalah 9326), rujuk pada konfigurasi penerapan aplikasi ack-koord-manager.Pastikan server tempat Anda menjalankan perintah dapat berkomunikasi dengan jaringan kontainer kluster.
curl -s http://10.10.0.xxx:9326/all-metrics | grep slo_manager_recommender_recommendation_workload_target # Jika Anda menggunakan versi komponen ack-koordinator yang lebih lama (sebelum v1.5.0-ack1.12), jalankan perintah berikut untuk melihat data metrik curl -s http://10.10.0.xxx:9326/metrics | grep slo_manager_recommender_recommendation_workload_targetOutput yang diharapkan:
# HELP slo_manager_recommender_recommendation_workload_target Recommendation of workload resource request. # TYPE slo_manager_recommender_recommendation_workload_target gauge slo_manager_recommender_recommendation_workload_target{container_name="xxx",namespace="xxx",recommendation_name="d2169dbf-fb36-4bf4-99d1-673577fb85c1",resource="cpu",workload_api_version="apps/v1",workload_kind="Deployment",workload_name="xxx"} 0.025 slo_manager_recommender_recommendation_workload_target{container_name="xxx",namespace="xxx",recommendation_name="d2169dbf-fb36-4bf4-99d1-673577fb85c1",resource="memory",workload_api_version="apps/v1",workload_kind="Deployment",workload_name="xxx"} 2.62144e+08
Setelah komponen ack-koordinator diinstal, komponen tersebut secara otomatis membuat objek Service dan ServiceMonitor serta mengaitkannya dengan pod yang sesuai. Jika Anda menggunakan Managed Service for Prometheus, metrik ini secara otomatis dikumpulkan dan ditampilkan di Dasbor Grafana yang sesuai.
Karena Prometheus mendukung berbagai metode pengumpulan, jika Anda menggunakan instance Prometheus yang dikelola sendiri, Anda harus mengonfigurasinya berdasarkan dokumentasi resmi Prometheus. Selama konfigurasi, rujuk prosedur di atas untuk pengujian. Setelah pengujian selesai, Anda dapat merujuk ke Langkah 2: (Opsional) Lihat hasil di Prometheus untuk mengonfigurasi Dasbor Grafana yang sesuai di lingkungan Anda.
Bagaimana cara menghapus hasil dan aturan profil sumber daya?
Profil sumber daya dan aturan disimpan dalam CRD Recommendation dan RecommendationProfile, masing-masing. Anda dapat menjalankan perintah berikut untuk menghapus semua hasil dan aturan profil sumber daya.
# Hapus semua hasil profil sumber daya.
kubectl delete recommendation -A --all
# Hapus semua aturan profil sumber daya.
kubectl delete recommendationprofile -A --allBagaimana cara memberikan izin Pengguna RAM untuk menggunakan profiling sumber daya?
Sistem otorisasi ACK mencakup otorisasi RAM di lapisan sumber daya dasar dan otorisasi RBAC di lapisan kluster ACK. Untuk pengantar sistem otorisasi ACK, lihat Praktik terbaik untuk otorisasi. Untuk memberikan izin Pengguna RAM agar dapat menggunakan fitur profiling sumber daya untuk kluster, kami merekomendasikan Anda mengikuti praktik terbaik berikut untuk otorisasi:
Otorisasi RAM
Anda dapat menggunakan Akun Alibaba Cloud Anda untuk masuk ke Konsol RAM dan memberikan izin bawaan AliyunCSFullAccess kepada Pengguna RAM. Untuk informasi selengkapnya, lihat Berikan izin.
Otorisasi RBAC
Setelah memberikan izin RAM, Anda juga harus memberikan peran RBAC developer atau peran yang lebih tinggi kepada Pengguna RAM untuk kluster target. Untuk informasi selengkapnya, lihat Gunakan RBAC untuk mengotorisasi operasi pada sumber daya kluster.
Peran developer yang telah ditentukan sebelumnya atau peran RBAC yang lebih tinggi memiliki izin baca dan tulis pada semua sumber daya Kubernetes di kluster. Jika Anda ingin memberikan izin yang lebih detail halus kepada Pengguna RAM, Anda dapat merujuk ke Gunakan RBAC kustom untuk membatasi operasi pada sumber daya kluster untuk membuat atau mengedit instance ClusterRole kustom. Fitur profiling sumber daya mengharuskan Anda menambahkan konten berikut ke ClusterRole:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: recommendation-clusterrole
rules:
- apiGroups:
- "autoscaling.alibabacloud.com"
resources:
- "*"
verbs:
- "*"