Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara mengaktifkan atau menonaktifkan node auto-provisioning (NAP) di Azure Kubernetes Service (AKS) menggunakan Azure CLI atau templat Azure Resource Manager (ARM).
Jika Anda ingin membuat kluster AKS dengan dukungan NAP dengan jaringan virtual kustom (VNet) dan subnet, lihat Membuat kluster provisi otomatis simpul (NAP) di jaringan virtual kustom.
Sebelum Anda mulai
Sebelum memulai, tinjau Ikhtisar provisi otomatis simpul (NAP) pada artikel di AKS, yang merinci cara kerja NAP, prasyarat, dan batasan.
Mengaktifkan provisi otomatis simpul (NAP) pada kluster AKS
Bagian berikut menjelaskan cara mengaktifkan NAP pada kluster AKS baru atau yang sudah ada:
Nota
Anda dapat mengaktifkan metrik pesawat kontrol untuk melihat log dan operasi dari penyediaan otomatis node dengan layanan terkelola Azure Monitor untuk add-on Prometheus.
Mengaktifkan NAP pada kluster baru
Aktifkan auto-provisioning node pada kluster baru dengan menggunakan perintah
az aks createdan flag--node-provisioning-modediatur keAuto. Perintah berikut juga mengatur--network-pluginkeazure,--network-plugin-modekeoverlay, dan--network-dataplanekecilium.az aks create \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Auto \ --network-plugin azure \ --network-plugin-mode overlay \ --network-dataplane cilium \ --generate-ssh-keys
Buat file bernama
nap.jsondan tambahkan konfigurasi templat ARM berikut dengan bidangproperties.nodeProvisioningProfile.modediatur keAutountuk mengaktifkan NAP. (Pengaturan defaultnya adalahManual.){ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": {}, "parameters": {}, "resources": [ { "type": "Microsoft.ContainerService/managedClusters", "apiVersion": "2025-05-01", "sku": { "name": "Base", "tier": "Standard" }, "name": "napcluster", "location": "uksouth", "identity": { "type": "SystemAssigned" }, "properties": { "networkProfile": { "networkPlugin": "azure", "networkPluginMode": "overlay", "networkPolicy": "cilium", "networkDataplane":"cilium", "loadBalancerSku": "Standard" }, "dnsPrefix": "napcluster", "agentPoolProfiles": [ { "name": "agentpool", "count": 3, "vmSize": "standard_d2s_v3", "osType": "Linux", "mode": "System" } ], "nodeProvisioningProfile": { "mode": "Auto" } } } ] }Aktifkan provisi otomatis node pada kluster baru menggunakan
az deployment group createperintah dengan flag--template-fileyang diatur ke path file templat ARM.az deployment group create --resource-group $RESOURCE_GROUP --template-file ./nap.json
Mengaktifkan NAP pada kluster yang ada
Aktifkan provisi otomatis node pada kluster yang ada menggunakan perintah
dengan bendera disetel ke . az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --node-provisioning-mode Auto
Menonaktifkan penyediaan otomatis node (NAP) pada cluster AKS
Penting
Anda hanya dapat menonaktifkan NAP pada kluster jika kondisi berikut terpenuhi:
- Tidak ada simpul NAP yang ada. Anda dapat menggunakan perintah
kubectl get nodes -l karpenter.sh/nodepooluntuk memeriksa simpul yang dikelola NAP yang ada. - Semua Karpenter
NodePoolsyang ada memiliki bidangspec.limits.cpudiatur ke0. Tindakan ini mencegah simpul baru dibuat, tetapi tidak mengganggu simpul yang sedang berjalan.
Atur
spec.limits.cpubidang ke0untuk setiap KarpenterNodePoolyang ada. Contohnya:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: limits: cpu: 0Penting
Jika Anda tidak ingin memastikan bahwa setiap pod yang sebelumnya berjalan pada simpul NAP dimigrasikan dengan aman ke node non-NAP sebelum menonaktifkan NAP, Anda dapat melewati langkah 2 dan 3 dan sebaliknya menggunakan
kubectl delete nodeperintah untuk setiap simpul yang dikelola NAP. Namun, kami tidak menyarankan untuk melewati langkah-langkah ini, karena ini dapat menyebabkan beberapa pod tertunda dan tidak menghormati Anggaran Gangguan Pod (PDB).Saat menggunakan
kubectl delete nodeperintah , berhati-hatilah untuk hanya menghapus simpul yang dikelola NAP. Anda dapat mengidentifikasi simpul yang dikelola NAP menggunakankubectl get nodes -l karpenter.sh/nodepoolperintah .karpenter.azure.com/disable:NoScheduleTambahkan taint ke setiap KarpenterNodePool. Contohnya:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: template: spec: ... taints: - key: karpenter.azure.com/disable effect: NoScheduleTindakan ini memulai proses migrasi beban kerja di simpul yang dikelola NAP ke simpul non-NAP, mematuhi PDB dan batas gangguan. Pod bermigrasi ke node non-NAP jika dapat cocok. Jika kapasitas berukuran tetap tidak mencukupi, beberapa simpul yang dikelola NAP akan tetap ada.
Ukuran tetap yang ada tingkatkan skalanya
ManagedClusterAgentPoolsatau buat ukuran tetap baruAgentPoolsuntuk mengambil beban dari simpul-simpul yang dikelola oleh NAP. Karena simpul ini ditambahkan ke kluster, simpul yang dikelola oleh NAP dikosongkan, dan pekerjaan dipindahkan ke simpul berukuran tetap.Hapus semua simpul yang dikelola NAP menggunakan perintah
kubectl get nodes -l karpenter.sh/nodepool. Jika simpul yang dikelola NAP masih ada, kluster kemungkinan tidak memiliki kapasitas ukuran tetap. Dalam hal ini, Anda harus menambahkan lebih banyak simpul sehingga beban kerja yang tersisa dapat dimigrasikan.
Perbarui mode NAP untuk
Manualmenggunakan perintah Azure CLI dengan flag--node-provisioning-modedisetel keManual.az aks update \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Manual
Perbarui bidang
properties.nodeProvisioningProfile.modemenjadiManualdi dalam templat ARM Anda dan lakukan penerapan ulang.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": {}, "parameters": {}, "resources": [ { "type": "Microsoft.ContainerService/managedClusters", "apiVersion": "2025-05-01", "sku": { "name": "Base", "tier": "Standard" }, "name": "napcluster", "location": "uksouth", "identity": { "type": "SystemAssigned" }, "properties": { "networkProfile": { "networkPlugin": "azure", "networkPluginMode": "overlay", "networkPolicy": "cilium", "networkDataplane":"cilium", "loadBalancerSku": "Standard" }, "dnsPrefix": "napcluster", "agentPoolProfiles": [ { "name": "agentpool", "count": 3, "vmSize": "standard_d2s_v3", "osType": "Linux", "mode": "System" } ], "nodeProvisioningProfile": { "mode": "Manual" } } } ] }
Langkah selanjutnya
Untuk informasi selengkapnya tentang node auto-provisioning di AKS, lihat artikel berikut ini:
- Menggunakan penyediaan otomatis untuk simpul pada jaringan virtual khusus
- Mengonfigurasi jaringan untuk penyediaan otomatis simpul di AKS
- Mengonfigurasi kumpulan simpul untuk provisi otomatis simpul di AKS
- Mengonfigurasi kebijakan gangguan untuk penyediaan otomatis node di AKS
- Meningkatkan citra node untuk provisi otomatis node di AKS