Bagikan melalui


Reservasi sumber daya node 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. Ketika simpul tumbuh lebih besar dalam sumber daya, reservasi sumber daya juga tumbuh karena kebutuhan yang lebih tinggi untuk manajemen pod yang disebarkan 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 ini memperlihatkan reservasi CPU dalam milikore:

Core CPU pada host 1 core 2 inti 4 inti 8 inti 16 inti 32 inti 64 inti
CPU yang dicadangkan Kube (millicores) 60 100 140 180 260 420 740

Reservasi memori

Di AKS, memori yang dipesan terdiri dari jumlah dua nilai:

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 memori yang tersedia, kubelet pemicu penghentian salah satu pod yang sedang berjalan dan membebaskan memori pada komputer 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.

    Contoh:

    • Jika komputer virtual (VM) menyediakan memori 8 GB dan simpul mendukung hingga 30 pod, AKS mencadangkan 20 MB * 30 Pod Maks + 50 MB = 650 MB untuk kube yang dicadangkan. 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 simpul mendukung hingga 70 pod, AKS mencadangkan 25% * 4 GB = 1000 MB untuk kube yang dipesan, karena ini kurang dari 20 MB * 70 Pod Maks + 50 MB = 1450 MB.

    Untuk informasi selengkapnya, lihat Mengonfigurasi pod maksimum per simpul dalam kluster 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 host berada di bawah ambang memori yang tersedia, kubelet pemicu penghentian salah satu pod yang sedang berjalan dan membebaskan memori pada komputer host.
  • Tingkat regresif reservasi memori untuk daemon kubelet berfungsi dengan baik (kube-dicadangkan).
    • 25% dari memori 4 GB pertama
    • 20% dari memori 4 GB berikutnya (hingga 8 GB)
    • 10% dari memori 8 GB berikutnya (hingga 16 GB)
    • 6% dari memori 112 GB berikutnya (hingga 128 GB)
    • 2% dari memori apa pun lebih dari 128 GB

Catatan

AKS mencadangkan tambahan 2 GB untuk proses sistem di 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 lebih sedikit memori yang dapat dialokasikan dan CPU daripada yang akan dilaporkan jika bukan bagian dari kluster Kubernetes.

Misalnya, jika simpul menawarkan 7 GB, simpul melaporkan 34% memori yang tidak dapat dialokasikan termasuk ambang pengeluaran keras 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 reservasi untuk Kube sendiri, OS simpul yang mendasarinya juga mencadangkan sejumlah sumber daya CPU dan memori untuk mempertahankan fungsi OS.

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

Langkah berikutnya