All Products
Search
Document Center

Container Service for Kubernetes:Kebijakan Pemesanan Sumber Daya Node

Last Updated:Mar 08, 2026

Alibaba Cloud Container Service for Kubernetes (ACK) memesan sebagian sumber daya setiap node untuk komponen Kubernetes dan proses sistem guna memastikan operasi stabil kernel sistem operasi, layanan sistem, serta proses daemon Kubernetes. Akibatnya, kapasitas total suatu node berbeda dari sumber daya yang dapat dialokasikan (allocatable). ACK menggunakan kebijakan pemesanan sumber daya bawaan, namun Anda juga dapat menyesuaikannya dengan mengonfigurasi kubelet.

Limits

Pemesanan sumber daya node kustom hanya didukung pada kluster yang menjalankan Kubernetes versi 1.20 atau lebih baru. Untuk melakukan upgrade kluster Anda, lihat Manually upgrade a cluster.

Cakupan dampak

Pemesanan sumber daya Custom dan cakupan dampak-nya

Untuk mengubah nilai pemesanan sumber daya, lihat Configure kubelet for a node pool. Setelah konfigurasi diperbarui, perubahan tersebut langsung diterapkan pada node yang sudah ada di kelompok node tersebut. Node baru—termasuk yang ditambahkan selama operasi scaling atau melalui fitur Add Existing Node—juga menggunakan konfigurasi yang telah diperbarui.

Penting
  • Jangan mengedit file konfigurasi kubelet secara manual melalui command line karena dapat menyebabkan konflik konfigurasi dan perilaku tak terduga selama operasi dan pemeliharaan (O&M) kelompok node.

  • Menambah pemesanan sumber daya akan mengurangi sumber daya yang dapat dialokasikan. Pada node dengan penggunaan sumber daya tinggi, hal ini dapat memicu eviction pod. Tetapkan nilai tersebut dengan hati-hati.

Cakupan dampak pemesanan sumber daya Default

ACK dapat memperbarui nilai pemesanan sumber daya bawaan sewaktu-waktu. Setelah pembaruan, nilai pemesanan baru diterapkan secara otomatis pada node ketika Anda melakukan perubahan konfigurasi di tingkat node—misalnya saat melakukan upgrade kluster, upgrade kelompok node, atau memodifikasi parameter kubelet kustom untuk kelompok node tersebut. Jika tidak dilakukan tindakan O&M tersebut, node yang sudah ada tetap menggunakan nilai pemesanan sebelumnya guna menjaga stabilitas.

Lihat sumber daya yang dapat dialokasikan pada node

Jalankan perintah berikut untuk melihat kapasitas total dan sumber daya yang dapat dialokasikan pada suatu node.

kubectl describe node [NODE_NAME] | grep Allocatable -B 7 -A 6

Output yang diharapkan:

Capacity:
  cpu:                4                 # Total core CPU pada node.
  ephemeral-storage:  123722704Ki       # Total penyimpanan sementara pada node, dalam KiB.
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7925980Ki         # Total memori pada node, dalam KiB.
  pods:               64
Allocatable:
  cpu:                3900m             # Core CPU yang dapat dialokasikan.
  ephemeral-storage:  114022843818      # Penyimpanan sementara yang dapat dialokasikan, dalam byte.
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             5824732Ki         # Memori yang dapat dialokasikan, dalam KiB.
  pods:               64

Hitung sumber daya yang dapat dialokasikan pada node

Gunakan rumus berikut untuk menghitung sumber daya yang dapat dialokasikan:Allocatable = Capacity − Reserved − Eviction threshold

Rincian rumus:

Rincian kebijakan pemesanan sumber daya

Sumber daya yang dipesan bergantung pada beberapa faktor:

  • Instance ECS dengan spesifikasi lebih tinggi biasanya menjalankan lebih banyak pod. Untuk menjaga performa, ACK memesan lebih banyak sumber daya untuk komponen Kubernetes pada node tersebut.

  • Node Windows memerlukan sumber daya tambahan untuk sistem operasi Windows dan komponen Windows Server. Oleh karena itu, node tersebut memesan lebih banyak sumber daya dibandingkan node Linux. Untuk informasi selengkapnya, lihat Create and manage Windows node pools.

ACK menghitung sumber daya yang dipesan berdasarkan rentang CPU dan memori. Total sumber daya yang dipesan sama dengan jumlah sumber daya yang dipesan di semua rentang tersebut. Pada Kubernetes 1.28, ACK mengoptimalkan algoritma pemesanan untuk mengurangi pemesanan CPU dan memori. Kami menyarankan Anda melakukan upgrade kluster. Lihat Manually upgrade a cluster.

Sumber daya yang dipesan mencakup sumber daya untuk komponen Kubernetes (kubeReserved) dan proses sistem (systemReserved). Masing-masing menyumbang 50% dari total sumber daya yang dipesan. Sebagai contoh, pada node 4-core: di kluster yang menjalankan Kubernetes 1.28 atau lebih baru, ACK memesan total 80 millicore—40 millicore untuk kubeReserved dan 40 millicore untuk systemReserved. Di kluster yang menjalankan Kubernetes 1.20 hingga 1.27, ACK memesan total 100 millicore—50 millicore untuk kubeReserved dan 50 millicore untuk systemReserved.

Kebijakan pemesanan sumber daya CPU

Kubernetes 1.28 dan versi lebih baru

Diagram berikut menunjukkan total pemesanan CPU untuk node komputasi.

image

Untuk node 32-core, total pemesanan CPU dihitung sebagai berikut:

1000 × 6% + 1000 × 1% + 1000 × 2 × 0,5% + (32000 − 4000) × 0,25% = 150 millicores

Kubernetes 1.20 hingga 1.27

Diagram berikut menunjukkan total pemesanan CPU untuk node komputasi.

image

Untuk node 32-core, total pemesanan CPU dihitung sebagai berikut:

100 + (32000 − 4000) × 2,5% = 800 millicores

Kebijakan pemesanan sumber daya memori

Kubernetes 1.28 dan versi lebih baru

Rumus berikut menghitung total pemesanan memori.

Total pemesanan memori = min(11 × ($max_num_pods) + 255, 25% × node memory). Nilai akhir adalah nilai yang lebih kecil antara 11 × ($max_num_pods) + 255 dan 25% dari memori node.

  • $max_num_pods: Jumlah maksimum pod yang didukung pada node.

    Catatan

    Plugin jaringan yang berbeda mendukung jumlah maksimum pod per node yang berbeda. Untuk rincian dan metode perhitungan, lihat Maximum pods per node.

    Anda dapat login ke Container Service Management Console dan melihat jumlah maksimum pod pada halaman Nodes.
    • Terway: Jumlah maksimum pod per node = Pod jaringan-kontainer maksimum + Pod host-network.

    • Flannel: Ditentukan oleh Anda saat membuat kluster.

  • Node memory: Memori yang benar-benar dapat digunakan, dalam MiB.

Sebagai contoh, jika kluster Anda menggunakan Terway dengan mode ENI bersama dan multiple IP address, serta node Anda merupakan instance ecs.g7.16xlarge dengan memori 256 GiB, maka jumlah maksimum pod adalah (8 − 1) × 30 + 3 = 213. Total pemesanan memori adalah min(11 × (210 + 3) + 255, 256 × 1024 × 25%) = 2598 MiB.

Kubernetes 1.20 hingga 1.27

Diagram berikut menggambarkan total memori yang dipesan untuk node komputasi.

image

Untuk node dengan memori 256 GiB, total pemesanan memori dihitung sebagai berikut:

4 × 25% + (8 − 4) × 20% + (16 − 8) × 10% + (128 − 16) × 6% + (256 − 128) × 2% = 11,88 GiB

Contoh pemesanan sumber daya bawaan untuk node ACK

Catatan

Untuk rincian tentang tipe instans ECS, lihat Instance families.

Total sumber daya node

Sumber daya yang dipesan (Kubernetes 1.28 dan versi lebih baru)

Sumber daya yang dipesan (Kubernetes 1.20 hingga 1.27)

Tipe instans contoh

CPU (core)

Memori

(GiB)

Maksimum Pod per Node

(menggunakan mode Terway inclusive ENI sebagai contoh)

CPU

(millicore)

Memori

(MiB)

CPU (millicore)

Memori (MiB)

Tipe instans ECS c7

2

4

15

70

420

100

1024

4

8

48

80

783

100

1843

8

16

48

90

783

200

2662

16

32

213

110

2598

400

3645

32

64

213

150

2598

800

5611

64

128

213

230

2598

1600

9543

128

256

423

390

4908

2400

12164

Tipe instans ECS ebmc7a

256

512

453

710

5238

3040

17407

FAQ

Bagaimana cara melihat total CPU dan memori pada suatu node?

CPU

Jalankan perintah ini untuk melihat total core CPU.

cat /proc/cpuinfo | grep processor

Output yang diharapkan:

processor       : 0
processor       : 1
processor       : 2
processor       : 3

Memori

Jalankan perintah ini untuk melihat total memori.

cat /proc/meminfo | grep MemTotal

Output yang diharapkan:

MemTotal:        7660952 kB

Mengapa memori yang tersedia lebih sedikit daripada spesifikasi tipe instans?

Ukuran memori dalam spesifikasi tipe instans mencakup seluruh memori, termasuk memori yang digunakan oleh sistem operasi. Oleh karena itu, memori yang tersedia secara real-time selalu lebih sedikit daripada spesifikasi tersebut. Untuk informasi selengkapnya, lihat After purchasing an instance, why does the displayed memory differ from the instance type specification?.

Referensi

  • Untuk mengonfigurasi pemesanan sumber daya kustom dan ambang batas eviction—serta mempelajari praktik terbaik terkait—lihat Configure kubelet for a node pool.

  • Anda dapat menetapkan permintaan sumber daya untuk pod aplikasi berdasarkan sumber daya yang dapat dialokasikan. Jumlah permintaan dari semua pod aplikasi pada suatu node tidak boleh melebihi sumber daya yang dapat dialokasikan pada node tersebut. Jika dilanggar, penjadwalan pod akan gagal karena kapasitas tidak mencukupi. ACK menyediakan fitur resource profiling untuk beban kerja Kubernetes native. Fitur ini menganalisis penggunaan sumber daya historis untuk membantu Anda menetapkan permintaan pod yang akurat. Untuk petunjuk langkah demi langkah, lihat Create a Deployment.