Reservasi sumber daya simpul di Azure Kubernetes Service (AKS)

Dalam artikel ini, Anda mempelajari tentang reservasi sumber daya simpul di Azure Kubernetes Service (AKS).

Reservasi sumber daya

AKS menggunakan sumber daya simpul untuk membantu simpul berfungsi sebagai bagian dari kluster. Penggunaan ini dapat menyebabkan perbedaan antara total sumber daya simpul dan sumber daya yang dapat dialokasikan di AKS.

AKS mencadangkan dua jenis sumber daya, CPU dan memori, pada setiap simpul untuk mempertahankan performa dan fungsionalitas simpul. Seiring simpul menjadi lebih besar dari segi sumber daya, reservasi sumber daya juga meningkat karena meningkatnya kebutuhan untuk mengelola pod yang diterapkan oleh pengguna. Perlu diingat bahwa Anda tidak dapat mengubah reservasi sumber daya pada simpul.

Reservasi CPU

CPU yang dicadangkan tergantung pada jenis node dan konfigurasi kluster, yang mungkin mengakibatkan CPU yang kurang dapat dialokasikan karena menjalankan fitur tambahan. Tabel berikut menunjukkan alokasi CPU dalam milicore:

Inti CPU pada host 1 inti 2 inti 4 inti 8 inti 16 inti 32 inti 64 inti
CPU cadangan untuk Kube (millicores) 60 100 140 180 260 420 740

Pemesanan memori

Di AKS, memori yang dicadangkan merupakan jumlah dari dua nilai berikut:

AKS 1.29 dan yang lebih baru

  • kubelet daemon memiliki aturan pengeluaran memory.available < 100 Mi secara default. Aturan ini memastikan bahwa node memiliki setidaknya 100 Mi yang dapat dialokasikan setiap saat. Ketika host berada di bawah ambang batas memori yang tersedia, kubelet memicu penghentian salah satu pod yang sedang berjalan dan membebaskan memori pada mesin host.

  • Tingkat reservasi memori yang ditetapkan sesuai dengan nilai yang lebih rendah: 20 MB * Pod Maks yang didukung pada Node + 50 MB atau 25% dari total sumber daya memori sistem.

    Examples:

    • Jika komputer virtual (VM) memiliki memori 8 GB dan simpul mendukung hingga 30 pod, AKS mencadangkan 20 MB * 30 Max Pods + 50 MB = 650 MB untuk kube-reserved. Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable.
    • Jika VM menyediakan memori 4 GB dan node mendukung hingga 70 pod, AKS mencadangkan 25% * 4 GB = 1000 MB untuk kube-reserved, karena nilai ini lebih kecil daripada 20 MB * 70 maksimum pod + 50 MB = 1450 MB.

    Untuk informasi selengkapnya, lihat Mengonfigurasi pod maksimum per simpul dalam kluster AKS.

Catatan

Untuk menyesuaikan nilai CPU dan memori kubeReserved atau hardEvictionThreshold pada kumpulan node Linux, gunakan pengaturan pratinjau konfigurasi node kustom dan daftarkan flag fitur AKSNodeCustomizationPreview. Untuk informasi selengkapnya, lihat Menyesuaikan konfigurasi simpul untuk kumpulan simpul Azure Kubernetes Service (AKS).

Versi AKS sebelum 1.29

  • kubelet daemon memiliki aturan pengeluaran memory.available < 750 Mi secara default. Aturan ini memastikan bahwa node memiliki setidaknya 750 Mi yang dapat dialokasikan setiap saat. Ketika memori yang tersedia pada host berada di bawah ambang batas tersebut, kubelet memicu penghentian salah satu pod yang sedang berjalan dan membebaskan memori pada mesin host.
  • Tarif regresif untuk reservasi memori agar daemon kubelet berfungsi dengan benar (kube-reserved).
    • 25% dari 4 GB memori pertama
    • 20% memori 4 GB berikutnya (hingga 8 GB)
    • 10% memori 8 GB berikutnya (hingga 16 GB)
    • 6% memori 112 GB berikutnya (hingga 128 GB)
    • 2% dari setiap memori yang melebihi 128 GB

Catatan

AKS mencadangkan tambahan 2 GB untuk proses sistem dalam simpul Windows yang bukan bagian dari memori terhitung.

Aturan alokasi memori dan CPU dirancang untuk:

  • Jaga agar simpul agen tetap sehat, termasuk beberapa pod sistem hosting yang penting bagi kesehatan kluster.
  • Menyebabkan node melaporkan memori yang dapat dialokasikan dan CPU lebih sedikit daripada seharusnya jika tidak menjadi bagian dari kluster Kubernetes.

Misalnya, jika sebuah node memiliki kapasitas 7 GB, node tersebut melaporkan bahwa 34% memori tidak dapat dialokasikan, termasuk ambang pengusiran keras sebesar 750 Mi.

0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved

Selain alokasi yang dicadangkan untuk Kubernetes itu sendiri, sistem operasi node yang mendasarinya juga mencadangkan sejumlah sumber daya CPU dan memori untuk menjaga fungsi sistem operasi.

Untuk praktik terbaik terkait, lihat Praktik terbaik untuk fitur penjadwal dasar di AKS.

Langkah berikutnya