All Products
Search
Document Center

Container Service for Kubernetes:Rekomendasikan spesifikasi kontainer menggunakan profil sumber daya

Last Updated:Nov 11, 2025

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

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih Cost Suite > Cost Optimization.

  3. 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.

      Catatan

      Jika 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.

  4. Klik Enable Profiling untuk menuju ke halaman Resource Profile.

Langkah 2: Kelola kebijakan profiling sumber daya

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih Cost Suite > Cost Optimization.

  3. 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.Resource buffer

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.

image.png

Tabel berikut menjelaskan kolom-kolom dalam ikhtisar profil.

image.png

Catatan

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.

  • Mengumpulkan: Profil sumber daya baru dibuat dan datanya belum mencukupi. Saat pertama kali menggunakan fitur ini, tunggu setidaknya satu hari. Sebelum menggunakan profil, pastikan beban kerja berjalan secara stabil dalam periode waktu tertentu untuk mencakup puncak dan lembah lalu lintas.

  • Normal: Profil sumber daya telah dihasilkan.

  • Beban kerja dihapus: Beban kerja yang sesuai telah dihapus. Profil akan dihapus secara otomatis setelah periode waktu tertentu.

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:

    1. Hitung spesifikasi sumber daya target (Target) berdasarkan nilai profil dan buffer konsumsi sumber daya yang dikonfigurasi: Target = Recommend × (1 + Buffer).

    2. Hitung tingkat deviasi (Degree) antara spesifikasi sumber daya target (Target) dan permintaan sumber daya asli (Request): Degree = 1 - (Request / Target).

    3. 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.Application profile details

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

  1. 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:Change resources

    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.

  2. 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

  1. Buat file recommendation-profile.yaml yang 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:
      - default

    Field konfigurasi dijelaskan sebagai berikut:

    Parameter

    Tipe

    Deskripsi

    metadata.name

    String

    Nama objek. Jika RecommendationProfile bertipe non-namespaced, Anda tidak perlu menentukan namespace.

    spec.controllerKind

    String

    Jenis beban kerja yang diaktifkan profiling sumber dayanya. Jenis beban kerja yang didukung meliputi Deployment, StatefulSet, dan DaemonSet.

    spec.enabledNamespaces

    String

    Namespace yang diaktifkan profiling sumber dayanya.

  2. Aktifkan profiling sumber daya untuk aplikasi target.

    kubectl apply -f recommendation-profile.yaml
  3. Buat file cpu-load-gen.yaml yang 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"
  4. Terapkan aplikasi `cpu-load-gen` menggunakan file `cpu-load-gen.yaml`.

    kubectl apply -f cpu-load-gen.yaml
  5. Ambil 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 yaml

    ack-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-apiVersion

    Versi API dari beban kerja. Karena batasan label Kubernetes, garis miring (/) diganti dengan tanda hubung (-).

    apps-v1 (sebelumnya apps/v1)

    alpha.alibabacloud.com/recommendation-workload-kind

    Jenis beban kerja, seperti Deployment atau StatefulSet.

    Deployment

    alpha.alibabacloud.com/recommendation-workload-name

    Nama 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

    containerName

    Nama kontainer.

    string

    cpu-load-gen

    target

    Hasil profil spesifikasi sumber daya, termasuk dimensi CPU dan memori.

    map[ResourceName]resource.Quantity

    cpu: 4742m

    memory: 262144k

    originalTarget

    Hasil antara dari algoritma profiling sumber daya. Kami tidak merekomendasikan penggunaannya secara langsung.

    -

    -

    Catatan

    Nilai 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:

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih Operations > Prometheus Monitoring.

    3. Pada halaman Prometheus Monitoring, pilih Cost Analysis/Resource Optimization > Resource Profile.

      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"}
    Penting

    Metrik profiling sumber daya yang disediakan oleh komponen ack-koordinator diubah namanya menjadi koord_manager_recommender_recommendation_workload_target pada 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 ke koord_manager_recommender_recommendation_workload_target setelah 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.

  1. Ambil alamat IP pod

    kubectl get pod -A -o wide | grep koord-manager

    Output 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>
  2. 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_target

    Output 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 --all

Bagaimana 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:

  1. 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.

  2. 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.

Catatan

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:
  - "*"