All Products
Search
Document Center

Container Service for Kubernetes:Profilisasi sumber daya untuk rekomendasi konfigurasi kontainer

Last Updated:Jun 21, 2026

ACK menyediakan fitur profilisasi sumber daya untuk workload native Kubernetes. Fitur ini menganalisis data historis penggunaan sumber daya guna memberikan rekomendasi spesifikasi sumber daya tingkat kontainer, sehingga menyederhanakan proses konfigurasi request dan limit kontainer. Topik ini menjelaskan cara menggunakan fitur profilisasi sumber daya melalui Konsol dan command line.

Prasyarat dan catatan penggunaan

  • Fitur ini hanya tersedia untuk Kluster ACK Pro yang memenuhi persyaratan berikut:

    • Komponen ack-koordinator (sebelumnya ack-slo-manager) versi v0.7.1 atau lebih baru telah diinstal. Untuk informasi selengkapnya, lihat ack-koordinator.

    • Komponen metrics-server versi v0.3.8 atau lebih baru 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 melakukan upgrade kluster ke versi terbaru. Untuk informasi selengkapnya, lihat Tambahkan node yang sudah ada dan upgrade kluster secara manual.

  • Fitur profilisasi sumber daya tersedia dalam pratinjau publik di Cost Suite dan dapat langsung digunakan.

  • Untuk memastikan hasil profilisasi akurat, tunggu setidaknya 24 jam setelah mengaktifkan profilisasi sumber daya untuk suatu workload agar sistem dapat mengumpulkan data yang cukup.

Penagihan

Instalasi dan penggunaan komponen ack-koordinator tidak dikenai biaya. Namun, biaya tambahan mungkin berlaku dalam skenario berikut.

  • ack-koordinator adalah komponen self-managed. Setelah diinstal, komponen ini mengonsumsi sumber daya node pekerja. Anda dapat mengonfigurasi request sumber daya untuk setiap modul saat menginstal komponen tersebut.

  • Secara default, ack-koordinator mengekspos metrik pemantauan untuk fitur seperti profilisasi sumber daya dan penjadwalan detail halus dalam format Prometheus. Jika Anda mengaktifkan opsi Enable Prometheus Monitoring for ACK-Koordinator dan menggunakan Managed Service for Prometheus, metrik ini dilaporkan ke Managed Service for Prometheus sebagai metrik dasar. Jika Anda mengubah pengaturan default, seperti periode retensi default, biaya tambahan mungkin berlaku. Untuk informasi selengkapnya, lihat Penagihan Managed Service for Prometheus.

Profilisasi sumber daya

Kubernetes menggunakan request sumber daya untuk menggambarkan kebutuhan sumber daya kontainer. Saat Anda menetapkan request sumber daya untuk sebuah kontainer, penjadwal mencocokkan request tersebut dengan sumber daya yang dapat dialokasikan dari node untuk menjadwalkan pod ke node tersebut. Dalam kebanyakan kasus, request sumber daya ditetapkan berdasarkan pengalaman. Administrator meninjau pemanfaatan historis, hasil pengujian beban, dan umpan balik produksi, lalu menyesuaikan nilainya dari waktu ke waktu.

Namun, pendekatan ini memiliki keterbatasan berikut:

  • Untuk menjaga stabilitas aplikasi produksi, administrator sering kali menyisakan buffer sumber daya besar guna menangani fluktuasi traffic lintas dependensi hulu dan hilir. Akibatnya, request sumber daya kontainer ditetapkan jauh lebih tinggi daripada pemanfaatan aktual, sehingga menyebabkan rendahnya pemanfaatan sumber daya kluster dan pemborosan sumber daya yang signifikan.

  • Saat alokasi kluster tinggi, administrator mungkin mengurangi request sumber daya untuk meningkatkan pemanfaatan kluster dan membebaskan lebih banyak kapasitas. Hal ini meningkatkan kerapatan kontainer dan dapat memengaruhi stabilitas kluster ketika traffic aplikasi meningkat.

Untuk mengatasi masalah ini, ack-koordinator menyediakan fitur profilisasi sumber daya yang merekomendasikan spesifikasi sumber daya tingkat kontainer serta mengurangi kompleksitas konfigurasi kontainer. ACK menyediakan fitur ini di Konsol, memungkinkan administrator aplikasi dengan cepat menilai apakah spesifikasi sumber daya saat ini wajar dan menyesuaikannya sesuai kebutuhan. Anda juga dapat menggunakan command line untuk mengelola profil sumber daya aplikasi secara langsung melalui CRD.

Gunakan profilisasi sumber daya di Konsol

Langkah 1: Instal dan aktifkan profilisasi sumber daya

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

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cost Suite > Cost Optimization.

  3. Pada halaman Cost Optimization, klik tab Resource Profiling. Di bagian Resource Profiling, ikuti petunjuk di layar untuk mengaktifkan fitur tersebut.

    • Instalasi atau upgrade komponen: Ikuti petunjuk di layar untuk menginstal atau meng-upgrade komponen ack-koordinator. Jika Anda menggunakan fitur ini untuk pertama kalinya, Anda harus menginstal komponen ack-koordinator.

      Catatan

      Jika komponen ack-koordinator Anda adalah versi sebelum v0.7.0, Anda harus melakukan migrasi dan upgrade. Untuk informasi selengkapnya, lihat Migrasi ack-koordinator dari application marketplace ke component center.

    • Konfigurasi profilisasi: Setelah instalasi atau upgrade, Anda dapat memilih Default Settings untuk mengontrol cakupan profilisasi (disarankan). Anda juga dapat mengklik Profiling Configuration di Konsol nanti untuk menyesuaikan pengaturan.

  4. Klik Enable Resource Profiling untuk membuka halaman Resource Profiling.

Langkah 2: Kelola kebijakan profilisasi

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

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cost Suite > Cost Optimization.

  3. Pada halaman Cost Optimization, klik tab Resource Profiling, lalu klik Profiling Configuration.

    Anda dapat memilih dari dua mode konfigurasi: Global Configuration dan Automated O&M mode. Mode default yang direkomendasikan selama instalasi komponen adalah mode Global Configuration. Anda dapat mengubah mode dan parameter di sini, lalu klik OK untuk menerapkan perubahan.

    Konfigurasi global (disarankan)

    Mode Global Configuration mengaktifkan profilisasi sumber daya untuk semua workload. Secara default, mode ini mengecualikan namespace arms-prom dan kube-system.

    Parameter

    Deskripsi

    Rentang nilai

    Excluded Namespace

    Namespace yang dinonaktifkan profilisasi sumber dayanya, biasanya namespace untuk komponen sistem. Cakupan profilisasi akhir adalah irisan antara namespace dan jenis workload yang ditentukan.

    Namespace yang ada di kluster saat ini. Anda dapat memilih beberapa namespace. Nilai default: kube-system dan arms-prom.

    Workload Type

    Jenis workload yang diaktifkan profilisasi sumber dayanya. Cakupan profilisasi akhir adalah irisan antara namespace dan jenis workload yang ditentukan.

    Workload native Kubernetes yang didukung adalah Deployment, StatefulSet, dan DaemonSet. Anda dapat memilih beberapa jenis workload.

    CPU Redundancy Rate

    Buffer keamanan untuk menghasilkan hasil profilisasi sumber daya. Untuk detailnya, lihat deskripsi berikut.

    Bilangan non-negatif. Pilihan umum adalah 70%, 50%, dan 30%.

    Memory Redundancy Rate

    Buffer keamanan untuk menghasilkan hasil profilisasi sumber daya. Untuk detailnya, lihat deskripsi berikut.

    Bilangan non-negatif. Pilihan umum adalah 70%, 50%, dan 30%.

    Konfigurasi Automated O&M

    Mode Automated O&M hanya mengaktifkan profilisasi sumber daya untuk workload di namespace yang dipilih. Jika kluster Anda besar (misalnya, dengan lebih dari 1.000 node), atau jika Anda ingin mencoba fitur ini hanya pada subset workload, gunakan mode ini untuk menentukan cakupan sesuai kebutuhan.

    Parameter

    Deskripsi

    Rentang nilai

    Namespace

    Namespace yang diaktifkan profilisasi sumber dayanya. Cakupan profilisasi akhir adalah irisan antara namespace dan jenis workload yang ditentukan.

    Namespace yang ada di kluster saat ini. Anda dapat memilih beberapa namespace.

    Workload Type

    Jenis workload yang diaktifkan profilisasi sumber dayanya. Cakupan profilisasi akhir adalah irisan antara namespace dan jenis workload yang ditentukan.

    Workload native Kubernetes yang didukung adalah Deployment, StatefulSet, dan DaemonSet. Anda dapat memilih beberapa jenis workload.

    CPU Redundancy Rate

    Buffer keamanan untuk menghasilkan hasil profilisasi sumber daya. Untuk detailnya, lihat deskripsi berikut.

    Bilangan non-negatif. Pilihan umum adalah 70%, 50%, dan 30%.

    Memory Redundancy Rate

    Buffer keamanan untuk menghasilkan hasil profilisasi sumber daya. Untuk detailnya, lihat deskripsi berikut.

    Bilangan non-negatif. Pilihan umum adalah 70%, 50%, dan 30%.

    Buffer konsumsi sumber daya adalah praktik tidak memanfaatkan 100% sumber daya fisik saat administrator menilai kapasitas aplikasi, seperti Queries Per Second (QPS). Hal ini disebabkan oleh keterbatasan sumber daya fisik, seperti Hyper-threading, dan kebutuhan aplikasi untuk menyisakan sumber daya guna menangani permintaan beban selama periode puncak. Jika selisih antara nilai profilisasi dan request sumber daya asli melebihi buffer keamanan, rekomendasi downgrade akan diberikan. Untuk detail algoritma, lihat deskripsi rekomendasi profilisasi di topik Ikhtisar Profilisasi Aplikasi.Resource buffer

Langkah 3: Lihat ikhtisar profilisasi

Setelah mengonfigurasi kebijakan profilisasi sumber daya, Anda dapat melihat hasil profilisasi sumber daya untuk setiap workload di halaman Resource Profiling.

Untuk meningkatkan akurasi, sistem akan meminta Anda mengumpulkan data minimal 24 jam saat pertama kali menggunakan fitur ini.

Tabel berikut menjelaskan kolom dalam ikhtisar profilisasi.

Catatan

Dalam tabel berikut, tanda hubung (-) menunjukkan bahwa bidang tersebut tidak berlaku.

Kolom

Deskripsi

Nilai

Dapat difilter

Workload name

Nama workload.

-

Ya. Anda dapat melakukan Pencarian tepat berdasarkan nama di bagian atas halaman.

Namespace

Namespace dari workload.

-

Ya. Secara default, namespace kube-system dikecualikan dari kondisi filter.

Workload type

Jenis workload.

Deployment, DaemonSet, dan StatefulSet.

Ya. Filter default adalah All.

Cpu request

Request sumber daya CPU dari pod workload.

-

Tidak.

Memory request

Request sumber daya memori dari pod workload.

-

Tidak.

Profile data status

Status profilisasi sumber daya untuk workload.

  • Collecting: Profil baru dibuat dan datanya belum mencukupi. Kami menyarankan Anda menunggu setidaknya satu hari untuk memastikan workload berjalan stabil dan datanya mencakup puncak serta lembah traffic.

  • Normal: Hasil profilisasi telah dihasilkan.

  • Workload deleted: Workload telah dihapus. Hasil profilisasi akan dihapus secara otomatis setelah periode retensi.

Tidak.

Cpu profile, memory profile

Rekomendasi berdasarkan nilai profilisasi, request sumber daya asli, dan buffer konsumsi sumber daya yang dikonfigurasi.

Mencakup Upgrade, Downgrade, dan Keep. Persentase menunjukkan besarnya penyimpangan, yang dihitung menggunakan rumus berikut: .

Ya. Kondisi filter default adalah Upgrade dan Downgrade.

Creation time

Waktu saat hasil profilisasi dibuat.

-

Tidak.

Change Resource Configuration

Setelah mengevaluasi hasil profilisasi dan rekomendasi, klik Change Resource Configuration untuk melakukan peningkatan atau penurunan sumber daya. Untuk informasi selengkapnya, lihat Langkah 5: Terapkan spesifikasi sumber daya yang direkomendasikan.

-

Tidak.

Profilisasi sumber daya ACK menghasilkan nilai profilisasi untuk spesifikasi sumber daya setiap kontainer dalam suatu workload. Dengan membandingkan nilai profilisasi (Recommend), request sumber daya asli (Request), dan buffer konsumsi sumber daya (Buffer) yang dikonfigurasi dalam kebijakan profilisasi, Konsol memberikan rekomendasi Upgrade atau Downgrade untuk request sumber daya. Jika suatu workload memiliki beberapa kontainer, Konsol menyorot kontainer dengan penyimpangan terbesar. Logika perhitungannya sebagai berikut.

  • Jika nilai profilisasi (Recommend) lebih besar daripada request sumber daya asli (Request), kontainer tersebut telah menggunakan sumber daya melebihi batas dalam jangka waktu lama (penggunaan melebihi request). Hal ini menimbulkan risiko stabilitas. Anda harus segera meningkatkan spesifikasi sumber daya. Konsol menampilkan rekomendasi "Upgrade".

  • Jika nilai profilisasi (Recommend) lebih kecil daripada request sumber daya asli (Request), kontainer tersebut mungkin membuang-buang sumber daya dan Anda dapat mengurangi spesifikasi sumber daya. Keputusan ini harus mempertimbangkan buffer konsumsi sumber daya yang dikonfigurasi.

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

    2. Hitung penyimpangan (Degree) request sumber daya asli (Request) dari spesifikasi sumber daya target (Target): Degree = 1 - (Request / Target).

    3. Berdasarkan nilai profilisasi dan tingkat penyimpangan (Degree), Konsol menghasilkan rekomendasi untuk CPU dan memori. Jika nilai absolut penyimpangan (Degree) lebih besar dari 0,1, Konsol menampilkan rekomendasi "Downgrade".

  • Dalam semua kasus lainnya, rekomendasinya adalah Maintain spesifikasi sumber daya saat ini, yang menunjukkan bahwa tidak diperlukan penyesuaian.

Langkah 4: Lihat detail profil aplikasi

Di halaman Resource Profiling, klik nama workload untuk membuka halaman detail profilnya.

Halaman detail terdiri dari tiga bagian: informasi dasar workload, kurva profil sumber daya untuk setiap kontainer, dan jendela untuk mengubah spesifikasi sumber daya aplikasi.应用画像详情

Seperti yang ditunjukkan pada gambar sebelumnya, tabel berikut menjelaskan metrik dalam kurva sumber daya, menggunakan CPU sebagai contoh.

Nama kurva

Deskripsi

cpu limit

Batas sumber daya CPU kontainer.

cpu request

Request sumber daya CPU kontainer.

cpu recommend

Nilai profilisasi CPU untuk kontainer.

cpu usage (average)

Penggunaan CPU rata-rata di semua replika kontainer dalam workload.

cpu usage (max)

Penggunaan CPU maksimum di antara semua replika kontainer dalam workload.

Langkah 5: Terapkan spesifikasi sumber daya yang direkomendasikan

Anda dapat menggunakan buffer keamanan yang dikonfigurasi sebagai referensi untuk kebutuhan sumber daya target. Misalnya, Anda dapat menambahkan faktor buffer di atas nilai profilisasi, seperti 4,742 * 1,3 ≈ 6,2.

Tabel berikut menjelaskan parameter-parameter tersebut.

Parameter

Deskripsi

Current resource request

Request sumber daya kontainer saat ini.

Current resource limit

Batas sumber daya kontainer saat ini.

Profiled value

Nilai profilisasi yang dihasilkan untuk kontainer, yang dapat digunakan sebagai referensi untuk request sumber daya.

Safety buffer

Buffer keamanan yang dikonfigurasi dalam kebijakan profilisasi, yang dapat digunakan sebagai referensi untuk kebutuhan sumber daya target. Misalnya, Anda dapat menambahkan faktor buffer di atas nilai profilisasi, seperti 4,742 * 1,3 ≈ 6,2.

New Resource Request

Nilai target untuk request sumber daya kontainer.

New Resource Limit

Nilai target untuk batas sumber daya kontainer. Catatan: Jika workload menggunakan penjadwalan sadar topologi CPU, batas sumber daya CPU harus berupa bilangan bulat.

  • Setelah menyelesaikan konfigurasi, klik Submit. Sistem akan memperbarui spesifikasi sumber daya dan secara otomatis mengarahkan Anda ke halaman detail workload.

    Setelah spesifikasi sumber daya diperbarui, controller melakukan pembaruan bergulir (rolling update) terhadap workload dan membuat ulang pod-nya.

  • Gunakan profilisasi sumber daya dari command line

    Langkah 1: Aktifkan profilisasi sumber daya

    1. Buat file bernama recommendation-profile.yaml dengan konten YAML berikut untuk mengaktifkan profilisasi sumber daya untuk suatu workload.

      CRD RecommendationProfile mengaktifkan profilisasi sumber daya untuk suatu workload dan menyediakan data spesifikasi sumber daya untuk kontainer-kontainernya. Anda dapat mengontrol cakupan profilisasi dengan menentukan namespace dan jenis workload. Cakupan akhir adalah irisan keduanya.

      apiVersion: autoscaling.alibabacloud.com/v1alpha1
      kind: RecommendationProfile
      metadata:
        # Nama objek. Namespace tidak diperlukan untuk objek berlingkup kluster ini.
        name: profile-demo
      spec:
        # Jenis workload yang diaktifkan profilisasi sumber dayanya.
        controllerKind:
        - Deployment
        # Namespace yang diaktifkan profilisasi sumber dayanya.
        enabledNamespaces:
        - default

      Tabel berikut menjelaskan field konfigurasi.

      Parameter

      Tipe

      Deskripsi

      metadata.name

      String

      Nama objek. Namespace tidak diperlukan karena RecommendationProfile adalah objek berlingkup kluster (non-namespaced).

      spec.controllerKind

      String

      Jenis workload yang diaktifkan profilisasi sumber dayanya. Jenis workload yang didukung meliputi Deployment, StatefulSet, dan DaemonSet.

      spec.enabledNamespaces

      String

      Namespace yang diaktifkan profilisasi sumber dayanya.

    2. Terapkan konfigurasi profil.

      kubectl apply -f recommendation-profile.yaml
    3. Buat file bernama cpu-load-gen.yaml dengan konten 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 # Request CPU untuk aplikasi ini adalah 8 core.
                  memory: "1Gi"
                limits:
                  cpu: 12
                  memory: "2Gi"
    4. Deploy aplikasi cpu-load-gen.

      kubectl apply -f cpu-load-gen.yaml
    5. Ambil hasil profilisasi 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 sumber daya untuk setiap workload yang diprofilisasi dan menyimpan hasilnya dalam CRD Recommendation. Berikut adalah contoh profil sumber daya untuk workload 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: # Hasil antara dari algoritma profilisasi sumber daya. Jangan gunakan langsung.
             # ...

      Untuk menyederhanakan pengambilan, objek Recommendation dibuat di namespace yang sama dengan workload. Objek ini juga menyertakan label yang menentukan versi API, jenis, dan nama workload, seperti yang dijelaskan dalam tabel berikut.

      Kunci label

      Deskripsi

      Contoh

      alpha.alibabacloud.com/recommendation-workload-apiVersion

      Versi API workload. Garis miring (/) diganti dengan tanda hubung (-) agar sesuai dengan sintaksis label Kubernetes.

      apps-v1 (dari apps/v1)

      alpha.alibabacloud.com/recommendation-workload-kind

      Jenis workload, seperti Deployment atau StatefulSet.

      Deployment

      alpha.alibabacloud.com/recommendation-workload-name

      Nama workload. Panjangnya tidak boleh lebih dari 63 karakter agar sesuai dengan sintaksis label Kubernetes.

      cpu-load-gen

      Hasil profilisasi sumber daya untuk setiap kontainer disimpan di status.recommendResources.containerRecommendations. Tabel berikut menjelaskan field-field tersebut.

      Field

      Deskripsi

      Format

      Contoh

      containerName

      Nama kontainer.

      string

      cpu-load-gen

      target

      Spesifikasi sumber daya yang diprofilisasi, termasuk CPU dan memori.

      map[ResourceName]resource.Quantity

      cpu: 4742m

      memory: 262144k

      originalTarget

      Hasil antara dari algoritma profilisasi. Jangan gunakan field ini secara langsung.

      -

      -

      Catatan

      Nilai minimum profilisasi CPU per pod adalah 0,025 core, dan nilai memori minimum adalah 250 MB.

      Dengan membandingkan spesifikasi sumber daya yang dideklarasikan dalam aplikasi cpu-load-gen dengan hasil profilisasi, Anda dapat melihat bahwa request CPU terlalu berlebihan. Anda dapat mengurangi request tersebut untuk menghemat sumber daya kluster.

      Kategori

      Spesifikasi asli

      Spesifikasi Profil

      CPU

      8 core

      4,742 core

    Langkah 2: (Opsional) Lihat hasilnya di Prometheus

    Komponen ack-koordinator menyediakan antarmuka kueri Prometheus untuk hasil profilisasi sumber daya. Anda dapat melihat hasil ini secara langsung menggunakan fitur Prometheus Monitoring di ACK.

    • Jika Anda menggunakan dasbor ini untuk pertama kalinya, pastikan dasbor Resource Profile telah diperbarui ke versi terbaru. Untuk langkah upgrade, lihat Operasi terkait.

      Untuk melihat hasil profilisasi sumber daya di Konsol ACK menggunakan Prometheus Monitoring, ikuti langkah-langkah berikut:

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

      2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Operations > Prometheus Monitoring.

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

        Di tab Resource Profile, lihat data detail, termasuk spesifikasi kontainer (Request), penggunaan sumber daya kontainer aktual (Usage), dan spesifikasi sumber daya kontainer yang diprofilisasi (Recommend). Untuk informasi selengkapnya, lihat Hubungkan dan konfigurasikan Managed Service for Prometheus.

    • Jika Anda memiliki instans Prometheus self-managed, konfigurasikan dasbor Anda berdasarkan metrik berikut.

      # Spesifikasi sumber daya CPU yang diprofilisasi untuk kontainer dalam workload.
      koord_manager_recommender_recommendation_workload_target{exported_namespace="$namespace", workload_name="$workload", container_name="$container", resource="cpu"}
      # Spesifikasi sumber daya memori yang diprofilisasi untuk kontainer dalam workload.
      koord_manager_recommender_recommendation_workload_target{exported_namespace="$namespace", workload_name="$workload", container_name="$container", resource="memory"}
      Penting

      Metrik profilisasi sumber daya yang disediakan oleh komponen ack-koordinator telah diubah namanya menjadi koord_manager_recommender_recommendation_workload_target di v1.5.0-ack1.14. Namun, metrik slo_manager_recommender_recommendation_workload_target dari versi sebelumnya masih kompatibel. Jika Anda memiliki instans Prometheus self-managed, beralihlah ke koord_manager_recommender_recommendation_workload_target setelah Anda meng-upgrade komponen ack-koordinator ke v1.5.0-ack1.14 atau lebih baru.

    FAQ

    Algoritma profilisasi sumber daya

    Algoritma profilisasi sumber daya menggunakan model data multidimensi yang bekerja sebagai berikut:

    • Algoritma ini terus-menerus mengumpulkan data penggunaan sumber daya kontainer dan menghitung statistik agregat, seperti nilai puncak, rata-rata tertimbang, dan persentil untuk penggunaan CPU dan memori.

    • Rekomendasi akhir menetapkan nilai CPU yang direkomendasikan ke persentil P95 dan nilai memori yang direkomendasikan ke persentil P99. Algoritma ini menambahkan margin keamanan pada keduanya untuk memastikan keandalan workload.

    • Algoritma ini dioptimalkan untuk ketepatan waktu dan hanya mempertimbangkan data dari 14 hari terakhir. Algoritma ini menggunakan model jendela geser half-life untuk agregasi, di mana bobot titik data lama secara bertahap berkurang.

    • Algoritma ini mempertimbangkan event runtime kontainer, seperti pembunuhan kehabisan memori (OOM), untuk meningkatkan akurasi nilai profilisasi.

    Jenis aplikasi yang sesuai

    Profilisasi sumber daya paling cocok untuk aplikasi layanan online.

    Saat ini, hasil profilisasi memprioritaskan memastikan kontainer memiliki sumber daya yang cukup untuk mencakup sebagian besar sampel penggunaannya. Namun, pendekatan ini bisa bersifat konservatif untuk jenis aplikasi tertentu. Untuk aplikasi offline, seperti tugas Pemrosesan batch yang memprioritaskan throughput keseluruhan dan dapat mentolerir beberapa Konflik sumber daya untuk meningkatkan pemanfaatan kluster, hasil profilisasi mungkin tampak terlalu konservatif. Selain itu, untuk komponen sistem kritis yang dideploy dalam konfigurasi mode aktif-pasif, replika pasif menganggur dalam waktu lama, dan penggunaan sumber dayanya yang rendah dapat mengganggu algoritma profilisasi. Untuk skenario ini, tinjau dan sesuaikan hasil profilisasi sesuai kebutuhan sebelum menerapkannya. Kami menyarankan Anda tetap mengikuti pembaruan produk untuk profilisasi sumber daya.

    Gunakan nilai profilisasi untuk request dan limit

    Hal ini tergantung pada workload spesifik Anda. Nilai profilisasi memberikan ringkasan permintaan sumber daya aplikasi Anda saat ini. Anda harus menggunakannya sebagai garis dasar dan menyesuaikannya berdasarkan karakteristik aplikasi dan kebutuhan bisnis Anda.

    Misalnya, untuk aplikasi yang perlu menangani lonjakan lalu lintas atau memerlukan failover tanpa hambatan dalam arsitektur aktif-aktif, Anda harus menambahkan buffer sumber daya. Untuk aplikasi yang sensitif terhadap sumber daya yang tidak berkinerja baik pada host dengan beban tinggi, Anda juga harus meningkatkan alokasi sumber daya melebihi nilai profilisasi.

    Lihat metrik di Prometheus self-managed

    Modul ack-koord-manager dari komponen ack-koordinator mengekspos metrik profilisasi sumber daya sebagai endpoint HTTP berformat Prometheus. Anda dapat mendapatkan alamat IP pod dan mengakses data metrik tersebut.

    1. Dapatkan 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 dual-replika dan data hanya tersedia di Pod replika primary). Untuk port (default: 9326), lihat konfigurasi Deployment 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 ack-koordinator 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 yang terkait dengan pod yang sesuai. Jika Anda menggunakan Managed Service for Prometheus, layanan tersebut secara otomatis mengumpulkan dan menampilkan metrik ini di Dasbor Grafana yang sesuai.

    Prometheus mendukung berbagai metode pengumpulan. Jika Anda menggunakan instans Prometheus self-managed, rujuk dokumentasi resmi Prometheus untuk konfigurasi dan gunakan proses yang dijelaskan di atas untuk debugging. Setelah debugging, Anda dapat merujuk ke Langkah 2: (Opsional) Lihat hasilnya di Prometheus untuk mengonfigurasi dasbor Grafana di lingkungan Anda.

    Hapus hasil dan aturan profilisasi

    CRD Recommendation menyimpan hasil profilisasi, dan CRD RecommendationProfile menyimpan aturan profilisasi. Jalankan perintah berikut untuk menghapus semua hasil dan aturan.

    # Hapus semua hasil profilisasi.
    kubectl delete recommendation -A --all
    # Hapus semua aturan profilisasi.
    kubectl delete recommendationprofile -A --all

    Berikan izin kepada Pengguna RAM

    Otorisasi ACK memiliki dua lapisan: otorisasi RAM untuk akses sumber daya dasar dan RBAC (Role-Based Access Control) untuk izin dalam kluster. Untuk ikhtisar, lihat Praktik terbaik otorisasi. Untuk memberikan izin kepada Pengguna RAM agar dapat menggunakan profilisasi sumber daya, Anda harus mengonfigurasi izin pada kedua tingkat tersebut:

    1. Otorisasi RAM

      Masuk ke Konsol RAM dengan Akun Alibaba Cloud Anda dan berikan kebijakan sistem bawaan AliyunCSFullAccess kepada Pengguna RAM tersebut. Untuk instruksi detail, lihat Berikan izin.

    2. Otorisasi RBAC

      Setelah menyelesaikan otorisasi RAM, berikan peran developer atau lebih tinggi kepada Pengguna RAM tersebut di kluster target. Untuk instruksi, lihat Gunakan RBAC untuk mengotorisasi operasi pada sumber daya kluster.

    Catatan

    Peran developer yang telah ditentukan sebelumnya memberikan akses baca dan tulis ke semua sumber daya Kubernetes di kluster. Untuk kontrol yang lebih detail, Anda dapat membuat atau mengedit ClusterRole kustom dengan mengikuti instruksi di Gunakan peran RBAC kustom untuk membatasi operasi sumber daya di kluster. Fitur profilisasi sumber daya memerlukan penambahan aturan berikut ke ClusterRole:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: recommendation-clusterrole
    rules:
    - apiGroups:
      - "autoscaling.alibabacloud.com"
      resources:
      - "*"
      verbs:
      - "*"