Kustomisasi konfigurasi node untuk kumpulan node Azure Kubernetes Service (AKS)

Dengan menyesuaikan konfigurasi simpul, Anda dapat menyesuaikan pengaturan sistem operasi (OS) atau parameter kubelet agar sesuai dengan kebutuhan beban kerja Anda. Saat membuat kluster AKS atau menambahkan kumpulan simpul ke kluster, Anda dapat mengkustomisasikan subset pengaturan OS dan kubelet yang umum digunakan. Untuk mengonfigurasi pengaturan di luar subset ini, gunakan set daemon untuk menyesuaikan konfigurasi yang Anda butuhkan tanpa kehilangan dukungan AKS untuk simpul Anda.

Prasyarat

Karena layanan menambahkan dukungan untuk pengaturan baru dan parameter kubelet, layanan mungkin memerlukan pendaftaran bendera fitur pratinjau. Jika bendera pratinjau diperlukan, referensi parameter konfigurasi node kustom memanggilnya.

Persyaratan pratinjau untuk pengaturan kubelet kubeReserved dan hardEvictionThreshold

Penting

Fitur pratinjau AKS tersedia atas dasar layanan mandiri dan pendaftaran sukarela. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan pratinjau tersebut dikecualikan dari perjanjian tingkat layanan (SLA) serta garansi terbatas. Fitur pratinjau AKS sebagian didukung oleh dukungan pelanggan sebatas upaya terbaik. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:

Memasang ekstensi aks-preview Azure CLI

  1. Untuk menginstal ekstensi aks-preview, jalankan perintah berikut:

    az extension add --name aks-preview
    
  2. Jalankan perintah berikut untuk memperbarui ke versi terbaru ekstensi:

    az extension update --name aks-preview
    

Daftarkan flag fitur CustomNodeConfigPreview pada langganan Azure Anda sebelum menggunakan pengaturan kubelet pratinjau kubeReserved dan hardEvictionThreshold.

Daftarkan CustomNodeConfigPreview penanda fitur

  1. Daftarkan CustomNodeConfigPreview bendera fitur dengan menggunakan az feature register perintah .

    az feature register --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"
    

    Dibutuhkan beberapa menit agar status menampilkan Terdaftar.

  2. Verifikasi status pendaftaran dengan menggunakan az feature show perintah .

    az feature show --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"
    
  3. Saat status menunjukkan Terdaftar, segarkan pendaftaran penyedia sumber daya Microsoft.ContainerService dengan menggunakan perintah az provider register.

    az provider register --namespace "Microsoft.ContainerService"
    

Membuat file konfigurasi simpul kustom untuk kumpulan simpul AKS

Untuk mengubah konfigurasi OS dan kubelet, buat file konfigurasi baru dengan parameter dan pengaturan yang Anda inginkan. Jika Anda tidak menentukan nilai untuk parameter, nilai default akan digunakan.

Catatan

Contoh berikut menunjukkan pengaturan konfigurasi umum. Ubah pengaturan untuk memenuhi persyaratan beban kerja Anda. Untuk daftar lengkap parameter konfigurasi kustom yang didukung, lihat Parameter konfigurasi simpul kustom untuk AKS.

Konfigurasi Kubelet

Buat file linuxkubeletconfig.json dengan konten berikut:

{
 "cpuManagerPolicy": "static",
 "cpuCfsQuota": true,
 "cpuCfsQuotaPeriod": "200ms",
 "imageGcHighThreshold": 90,
 "imageGcLowThreshold": 70,
 "topologyManagerPolicy": "best-effort",
 "allowedUnsafeSysctls": [
  "kernel.msg*",
  "net.*"
],
 "failSwapOn": false
}

Untuk menggunakan pengaturan kubelet Pratinjau Kustomisasi Node pada pool node Linux, tambahkan kubeReserved dan hardEvictionThreshold ke file konfigurasi kubelet Anda. Contoh berikut mencadangkan CPU dan memori untuk daemon sistem Kubernetes dan mengonfigurasi ambang batas penggusuran keras kubelet:

{
  "cpuManagerPolicy": "static",
  "kubeReserved": {
    "cpuMillicores": 200,
    "memoryMB": 1024
  },
  "hardEvictionThreshold": {
    "memoryAvailable": "20%",
    "nodeFsAvailable": "10%",
    "nodeFsInodesFree": "5%"
  }
}

Gunakan kubeReserved dan hardEvictionThreshold hanya pada kumpulan simpul Linux. Kedua pengaturan memerlukan flag fitur CustomNodeConfigPreview.

Konfigurasi OS

Buat file linuxosconfig.json dengan konten berikut:

{
 "transparentHugePageEnabled": "madvise",
 "transparentHugePageDefrag": "defer+madvise",
 "swapFileSizeMB": 1500,
 "sysctls": {
  "netCoreSomaxconn": 163849,
  "netIpv4TcpTwReuse": true,
  "netIpv4IpLocalPortRange": "32000 60000"
 }
}

Membuat kluster AKS menggunakan file konfigurasi kustom

Catatan

Ingatlah informasi berikut saat menggunakan file konfigurasi kustom saat membuat kluster AKS baru:

  • Jika Anda menentukan konfigurasi saat membuat kluster, konfigurasi hanya berlaku untuk simpul di kumpulan simpul awal. Kluster mempertahankan nilai default untuk pengaturan apa pun yang tidak dikonfigurasi dalam file JSON.
  • CustomLinuxOsConfig tidak didukung untuk jenis OS Windows.
  • Pengaturan kubelet pratinjau kubeReserved dan hardEvictionThreshold hanya didukung untuk kumpulan node Linux dan memerlukan flag fitur CustomNodeConfigPreview. Selesaikan langkah-langkah pendaftaran dalam Persyaratan pratinjau untuk kubeReserved dan hardEvictionThreshold pengaturan kubelet sebelum Anda membuat kluster atau kumpulan simpul.

Buat kluster baru menggunakan file konfigurasi kustom dengan menjalankan az aks create perintah dan menentukan file konfigurasi Anda untuk --kubelet-config parameter dan --linux-os-config . Contoh perintah berikut membuat kluster baru dengan kustom ./linuxkubeletconfig.json dan ./linuxosconfig.json file:

az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json

Menambahkan kumpulan simpul dengan menggunakan file konfigurasi kustom

Catatan

Ingatlah informasi berikut saat menggunakan file konfigurasi kustom untuk menambahkan kumpulan simpul baru ke kluster AKS yang ada:

  • Saat menambahkan kumpulan simpul Linux ke kluster yang ada, Anda dapat menentukan konfigurasi kubelet, konfigurasi OS, atau keduanya. Saat menambahkan kumpulan simpul Windows ke kluster yang ada, Anda hanya dapat menentukan konfigurasi kubelet. Jika Anda menentukan konfigurasi saat menambahkan kumpulan simpul, konfigurasi hanya berlaku untuk simpul di kumpulan simpul baru. Kumpulan simpul mempertahankan nilai default untuk pengaturan apa pun yang tidak dikonfigurasi dalam file JSON.
  • CustomKubeletConfig didukung untuk kumpulan simpul Linux dan Windows.
  • Pengaturan kubelet pratinjau kubeReserved dan hardEvictionThreshold hanya didukung untuk kumpulan node Linux dan memerlukan flag fitur CustomNodeConfigPreview. Selesaikan langkah-langkah pendaftaran dalam Persyaratan pratinjau untuk kubeReserved dan hardEvictionThreshold pengaturan kubelet sebelum Anda membuat kluster atau kumpulan simpul.

Buat pool node Linux baru dengan menggunakan perintah az aks nodepool add dan menentukan file konfigurasi Anda untuk parameter --kubelet-config dan --linux-os-config. Contoh perintah berikut membuat kumpulan simpul Linux baru dengan file kustom ./linuxkubeletconfig.json :

az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json

Konfirmasikan setelan sudah diterapkan

Setelah menerapkan konfigurasi simpul kustom, Anda dapat mengonfirmasi pengaturan diterapkan ke simpul dengan menyambungkan ke host dan memverifikasi sysctl atau perubahan konfigurasi dilakukan pada sistem file.

Meninjau parameter konfigurasi kustom yang didukung

Untuk daftar lengkap parameter konfigurasi kubelet dan Linux OS yang didukung, nilai, default, dan deskripsi yang diizinkan, lihat Parameter konfigurasi node kustom untuk AKS.

Pertimbangan untuk konfigurasi simpul kustom

Ingatlah pertimbangan berikut saat menyesuaikan konfigurasi node Anda:

  • Peningkatan gambar node menerapkan kembali konfigurasi simpul kustom.
  • Operasi peluasan skala mempertahankan konfigurasi simpul kustom.
  • AKS tidak melakukan validasi pra-penerbangan untuk setiap parameter atau nilai konfigurasi node kustom. Pastikan bahwa parameter dan nilai konfigurasi node kustom yang Anda tentukan didukung dan valid untuk menghindari potensi masalah dengan node kluster Anda.
  • Setelan pratinjau kubeReserved dan hardEvictionThreshold hanya tersedia di pool node Linux.
  • Jika Anda mengonfigurasi kubeReserved, nilainya harus positif dan tidak boleh melebihi kapasitas CPU atau memori yang tersedia pada kumpulan simpul target.
  • Jika Anda mengonfigurasi hardEvictionThreshold, gunakan hanya unit yang didukung: Ki, , Mi, Giatau % untuk memoryAvailable dan nodeFsAvailable, dan nomor mentah atau % untuk nodeFsInodesFree.
  • Nilai default untuk parameter konfigurasi simpul kustom sering berubah dengan versi sistem operasi baru. Saat menerapkan konfigurasi simpul kustom, tinjau nilai default untuk parameter yang Anda konfigurasi untuk memastikan bahwa pengaturan kustom Anda sesuai untuk versi OS simpul kluster Anda.
  • Batasi jumlah orang yang memiliki izin untuk memodifikasi konfigurasi simpul kustom untuk mencegah konsekuensi yang tidak diinginkan pada stabilitas dan performa kluster. Pertimbangkan untuk menggunakan otorisasi ID Microsoft Entra untuk API Kubernetes untuk membatasi akses ke pengaturan konfigurasi kluster.
  • Pisahkan kumpulan simpul dengan konfigurasi kustom dari yang tanpa konfigurasi kustom untuk mencegah konsekuensi yang tidak diinginkan pada beban kerja yang mungkin sensitif terhadap perubahan konfigurasi tertentu. Misalnya, jika Anda memiliki beban kerja penting yang memerlukan pengaturan kubelet tertentu, pertimbangkan untuk mengisolasi beban kerja tersebut ke kumpulan simpul khusus dengan konfigurasi kubelet kustom yang diperlukan.