全部产品
Search
文档中心

Container Service for Kubernetes:Aktifkan Penekanan CPU

更新时间:Jul 06, 2025

Dalam skenario overkomitmen sumber daya dinamis, Anda dapat meng-overcommit sumber daya yang tidak digunakan dari aplikasi dengan prioritas tinggi, seperti Guaranteed atau Burstable, kepada tugas-tugas BestEffort (BE) dengan prioritas rendah. Untuk memastikan penggunaan CPU oleh pod BE tetap dalam rentang yang wajar, Container Service for Kubernetes (ACK) menyediakan fitur Penekanan CPU, yang memungkinkan Anda memprioritaskan operasi stabil pod sensitif-latensi (LS) di node.

Catatan

Mengapa mengaktifkan Penekanan CPU

Untuk meningkatkan penggunaan sumber daya kluster, model overkomitmen sumber daya dinamis memungkinkan pemesanan buffer sumber daya untuk tugas LS prioritas tinggi guna mengelola fluktuasi beban pada link hulu dan hilir, sambil mengalokasikan sumber daya overcommitted kepada tugas BE prioritas rendah. Untuk memastikan sumber daya CPU yang cukup bagi pod LS di sebuah node, Anda dapat menggunakan ack-koordinator untuk membatasi penggunaan CPU oleh pod BE di node tersebut. Fitur Penekanan CPU menjaga utilisasi sumber daya node di bawah ambang batas tertentu dan membatasi jumlah sumber daya CPU yang dapat digunakan oleh pod BE. Ini memastikan stabilitas kontainer di node. Fitur Penekanan CPU membatasi jumlah sumber daya CPU yang digunakan oleh pod BE ketika penggunaan sumber daya keseluruhan node berada di bawah ambang batas, sehingga memastikan bahwa kontainer di node memiliki sumber daya yang cukup untuk beroperasi secara stabil.

Berikut adalah daftar istilah yang digunakan dalam gambar:

  • Ambang Batas CPU: ambang batas penggunaan CPU sebuah node.

  • Penggunaan Pod (LS): penggunaan CPU pod LS.

  • Pembatasan CPU untuk BE: penggunaan CPU pod BE.

Jumlah sumber daya CPU yang dapat digunakan oleh pod BE disesuaikan berdasarkan fluktuasi penggunaan CPU pod LS. Kami menyarankan Anda menggunakan nilai yang sama untuk Ambang Batas CPU dan watermark CPU cadangan dalam model overkomitmen sumber daya dinamis untuk memastikan tingkat pemanfaatan sumber daya CPU yang konsisten.

Prasyarat

Tagihan

Tidak ada biaya yang dikenakan saat Anda menginstal atau menggunakan komponen ack-koordinator. Namun, biaya mungkin dikenakan dalam skenario berikut:

  • ack-koordinator adalah komponen non-managed yang menggunakan sumber daya node pekerja setelah diinstal. Anda dapat menentukan jumlah sumber daya yang diminta oleh setiap modul saat menginstal komponen tersebut.

  • Secara default, ack-koordinator mengekspos metrik pemantauan fitur seperti profil sumber daya dan penjadwalan granular sebagai metrik Prometheus. Jika Anda mengaktifkan metrik Prometheus untuk ack-koordinator dan menggunakan Managed Service for Prometheus, metrik ini dianggap sebagai metrik kustom dan biaya akan dikenakan untuk metrik ini. Biaya tergantung pada faktor-faktor seperti ukuran kluster Anda dan jumlah aplikasi. Sebelum mengaktifkan metrik Prometheus, kami menyarankan Anda membaca topik Tagihan dari Managed Service for Prometheus untuk mempelajari tentang kuota gratis dan aturan tagihan metrik kustom. Untuk informasi lebih lanjut tentang cara memantau dan mengelola penggunaan sumber daya, lihat Kueri jumlah data observabel dan tagihan.

Prosedur

Anda dapat mengaktifkan fitur Penekanan CPU di tingkat kluster melalui ConfigMap. Selain itu, Anda dapat mengonfigurasi parameter terkait dalam ConfigMap, seperti ambang batas utilisasi CPU node (cpuSuppressThresholdPercent) dengan Penekanan CPU diaktifkan, untuk mencapai manajemen sumber daya yang granular.

  1. Buat file bernama configmap.yaml berdasarkan isi ConfigMap berikut:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ack-slo-config
      namespace: kube-system
    data:
      # Aktifkan Penekanan CPU.
      resource-threshold-config: |
        {
          "clusterStrategy": {
            "enable": true
          }
        }
  2. Periksa apakah ConfigMap ack-slo-config ada di namespace kube-system.

    • Jika ConfigMap ack-slo-config ada, kami menyarankan Anda menggunakan metode PATCH untuk memperbarui ConfigMap. Metode ini tidak mengubah pengaturan lain dalam ConfigMap.

      kubectl patch cm -n kube-system ack-slo-config --patch "$(cat configmap.yaml)"
    • Jika ConfigMap ack-slo-config tidak ada, jalankan perintah berikut untuk membuat ConfigMap bernama ack-slo-config:

      kubectl apply -f configmap.yaml
  3. Jalankan perintah berikut untuk menanyakan core CPU yang dialokasikan ke pod BE di node:

    cat /sys/fs/cgroup/cpuset/kubepods.slice/kubepods-besteffort.slice/cpuset.cpus

    Keluaran yang diharapkan:

    10-25,35-51,62-77,87-103

    Keluaran yang diharapkan menunjukkan bahwa core CPU berikut dialokasikan ke pod BE di node: 10-25,35-51,62-77,87-103. Ini menunjukkan bahwa sumber daya CPU yang tersedia untuk pod BE dibatasi setelah mengaktifkan Penekanan CPU, berdasarkan penggunaan sumber daya saat ini.

  4. Opsional: Konfigurasikan parameter lanjutan berdasarkan isi ConfigMap berikut.

    Penekanan CPU memungkinkan Anda mengonfigurasi lebih lanjut ambang batas utilisasi CPU.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: ack-slo-config
      namespace: kube-system
    data:
      resource-threshold-config: |
        {
          "clusterStrategy": {
            "enable": true,
            "cpuSuppressThresholdPercent": 65
          }
        }

    Tabel berikut menjelaskan parameter utama:

    Parameter

    Tipe

    Rentang nilai

    Deskripsi

    enable

    Boolean

    • true

    • false

    • true: mengaktifkan Penekanan CPU.

    • false: menonaktifkan Penekanan CPU.

    cpuSuppressThresholdPercent

    Integer

    [0, 100]

    Ambang batas utilisasi CPU node. Nilai default: 65. Satuan: %.