Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure CLI veya Azure Resource Manager (ARM) şablonlarını kullanarak Azure Kubernetes Service (AKS) düğüm otomatik sağlamayı (NAP) etkinleştirme veya devre dışı bırakma açıklanmaktadır.
Özel sanal ağ (VNet) ve alt ağlarla NAP özellikli bir AKS kümesi oluşturmak istiyorsanız bkz. Özel bir sanal ağda düğüm otomatik sağlama (NAP) kümesi oluşturma.
Başlamadan önce
Başlamadan önce, NAP'nin nasıl çalıştığını, önkoşulları ve sınırlamaları ayrıntılı olarak açıklayan AKS'de düğüm otomatik sağlamaya (NAP) genel bakış makalesini gözden geçirin.
AKS kümesinde düğüm otomatik sağlamayı (NAP) etkinleştirme
Aşağıdaki bölümlerde yeni veya mevcut aks kümesinde NAP'nin nasıl etkinleştirileceği açıklanmaktadır:
Uyarı
Azure İzleyici yönetilen hizmetiyle Prometheus eklentisi için düğüm otomatik sağlama günlüklerini ve işlemlerini görmek amacıyla kontrol düzlemi ölçümlerini etkinleştirebilirsiniz.
Yeni kümede NAP'yi etkinleştirme
Yeni bir kümede düğüm otomatik sağlamayı etkinleştirmek için
az aks createkomutunu--node-provisioning-modebayrağıAutoolarak ayarlayarak kullanın. Aşağıdaki komut,--network-pluginöğesiniazureolarak,--network-plugin-modeöğesinioverlayolarak ve--network-dataplaneöğesiniciliumolarak ayarlar.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
Dosya adı
nap.jsonolan bir dosya oluşturun veproperties.nodeProvisioningProfile.modealanınıAutoolarak ayarlayarak NAP'i etkinleştiren aşağıdaki ARM şablonu yapılandırmasını ekleyin. (Varsayılan ayar:Manual.){ "$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" } } } ] }ARM şablon dosyasının yolunu
az deployment group createbayrağı ile belirleyerek--template-filekomutunu kullanarak yeni bir kümede düğüm otomatik sağlamayı etkinleştirin.az deployment group create --resource-group $RESOURCE_GROUP --template-file ./nap.json
Mevcut kümede NAP'yi etkinleştirme
Mevcut bir kümede
az aks updatekomutunu,--node-provisioning-modebayrağıAutoolarak ayarlanmış şekilde kullanarak düğüm otomatik sağlama işlemini etkinleştirin.az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --node-provisioning-mode Auto
AKS kümesinde düğüm otomatik sağlamayı (NAP) devre dışı bırakma
Önemli
Bir kümede NAP'yi yalnızca aşağıdaki koşullar karşılanırsa devre dışı bırakabilirsiniz:
- Mevcut NAP düğümü yok. Mevcut NAP ile yönetilen düğümleri denetlemek için komutunu kullanabilirsiniz
kubectl get nodes -l karpenter.sh/nodepool. - Mevcut tüm Karpenter
NodePools,spec.limits.cpualanı0olarak ayarlanmıştır. Bu eylem yeni düğümlerin oluşturulmasını engeller, ancak şu anda çalışan düğümleri kesintiye uğratmaz.
Mevcut her Karpenter için
spec.limits.cpualanını0olarakNodePoolayarlayın. Örneğin:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: limits: cpu: 0Önemli
NAP'yi devre dışı bırakmadan önce daha önce BIR NAP düğümünde çalışan her pod'un NAP olmayan bir düğüme güvenli bir şekilde geçirildiğinden emin olmak istemiyorsanız, 2. ve 3. adımları atlayabilir ve bunun yerine NAP ile yönetilen her düğüm için komutunu kullanabilirsiniz
kubectl delete node. Ancak bazı podları beklemede bırakabileceğinden ve Pod Disruption Budgets (PDB) ile uyumlu olmadığından bu adımları atlamanızı önermeyiz.komutunu kullanırken
kubectl delete nodeyalnızca NAP ile yönetilen düğümleri silmeye dikkat edin. komutunu kullanarak NAP ile yönetilen düğümlerikubectl get nodes -l karpenter.sh/nodepooltanımlayabilirsiniz.karpenter.azure.com/disable:NoScheduleyabancı maddeyi her Karpenter'a ekleyin. Örneğin:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: template: spec: ... taints: - key: karpenter.azure.com/disable effect: NoScheduleBu eylem, NAP ile yönetilen düğümlerdeki iş yüklerini NAP olmayan düğümlere geçirme işlemini başlatır ve PDB'leri ve kesinti sınırlarını uygular. Podlar sığabiliyorsa NAP olmayan düğümlere geçiş yapar. Eğer yeterli sabit boyutlu kapasite yoksa, NAP tarafından yönetilen bazı düğümler kalır.
Yükü NAP ile yönetilen düğümlerden almak için mevcut sabit boyutlu
ManagedClusterAgentPoolsölçeklendirin veya yeni bir sabit boyutluAgentPoolsoluşturun. Bu düğümler kümeye eklendikçe NAP ile yönetilen düğümler boşaltılır ve iş sabit boyutlu düğümlere geçirilir.komutunu kullanarak NAP ile yönetilen tüm düğümleri
kubectl get nodes -l karpenter.sh/nodepoolsilin. NAP ile yönetilen düğümler hala mevcutsa kümede büyük olasılıkla sabit boyutlu kapasite yoktur. Bu durumda, kalan iş yüklerinin geçirilebilmesi için daha fazla düğüm eklemeniz gerekir.
Manualbayrağıaz aks updateolarak ayarlanmış--node-provisioning-modeAzure CLI komutunu kullanarak NAP modunuManualolarak güncelleştirin.az aks update \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Manual
properties.nodeProvisioningProfile.modealanını ARM şablonunuzdaManualolarak güncelleyin ve yeniden dağıtın.{ "$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" } } } ] }
Kendi kendine barındırılan açık kaynaklı Karpenter'dan yönetilen düğüm otomatik sağlama (NAP) çözümüne geçiş
Karpenter açık kaynak Helm grafiğinden yüklendiyse, kümenizde NAP'yi etkinleştirmeye devam edebilirsiniz. Bu adımlarda Karpenter Helm grafiğinin yüklü olduğu varsayılır.
Önemli
Geçişi başlatmadan önce Karpenter'in son sürümünü çalıştırdığınızdan emin olun. NAP her zaman en son sürümü çalıştırır.
Önemli
Bu geçiş işlemini gerçekleştirirken Karpenter CRD'lerini kaldırmamaya dikkat edin. CRD'ler silinirse temel alınan NodeClaims silinir ve bu da iş yüklerinizi kesintiye uğratabilir.
2. adımda Karpenter CRD'lerinin kaldırılmamasını sağlamak için
managed-by=Helmetiketlerini ve açıklamalarını kaldırın.kubectl get crds -l app.kubernetes.io/managed-by=Helm -o name | grep karpenter.azure.com | xargs -I{} kubectl patch {} --type=json -p ' [ {"op":"remove","path":"/metadata/annotations/meta.helm.sh~1release-name"}, {"op":"remove","path":"/metadata/annotations/meta.helm.sh~1release-namespace"}, {"op":"remove","path":"/metadata/labels/app.kubernetes.io~1managed-by"} ]'Açık kaynaklı Karpenter tarafından kullanılan Dağıtım, Hizmet, Roller ve diğer kaynakları kaldırmak için Helm grafiğini kaldırın. Bu noktada Karpenter artık ölçeklendirme olaylarına tepki vermese de mevcut düğümler çalışmaya devam ediyor.
helm uninstall karpenter -n kube-system # If you installed Karpenter into a different namespace than kube-system, specify that here instead of kube-systemKümenizde NAP'yi etkinleştirin:
az aks update --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --node-provisioning-mode Auto --node-provisioning-default-pools NoneBu komut, mevcut NodePool'larınız olduğundan ve bunları kullanmaya devam etmek istediğinizden varsayılan NodePool'ları devre dışı bırakır. Düğüm otomatik sağlama varsayılan havuzlarını etkinleştirmek istiyorsanız,
az aks updatekomutundan--node-provisioning-default-pools Noneöğesini çıkarabilirsiniz.Geçişin tamamlandığını doğrulayın: 3. adımdaki
az aks updatebaşarıyla tamamlandığında, geçiş tamamlanmış olur. Ayrıca, Karpenter CRD'lerindeki ek açıklamaları denetleyerek geçişin tamamlandığını onaylayabilirsiniz. Şunu görmeniz gerekir:meta.helm.sh/release-name: aks-managed-karpenter-overlay-base meta.helm.sh/release-namespace: kube-systemBu noktada NAP etkindir ve otomatik ölçeklendirme devam etmelidir.
İzleme Düğümü otomatik tedarik
Karpenter günlüklerini ve durumunu alma
NAP ile ilgili olayları tanılamaya ve hatalarını ayıklamaya yardımcı olmak için Karpenter'dan günlükleri ve durum güncelleştirmelerini alabilirsiniz. AKS, sizin yerinize düğüm otomatik sağlama yönetimini üstlenir ve bunu yönetilen kontrol düzleminde çalıştırır. Karpenter loglarını ve düğüm otomatik sağlanması işlemlerini görmek için kontrol düzlemi loglarını etkinleştirebilirsiniz. Denetim düzlemi günlükleri hakkında daha fazla bilgi için AKS denetim düzlemi günlükleri belgelerine bakın
instructions here kullanarak düğüm otomatik sağlama günlüklerini Log Analytics göndermek için kaynak günlükleri için bir kural ayarlayın. Seçenekleri
node-auto-provisioningiçin seçerken kutusunu işaretlediğinizden emin olun.Kümenizdeki Kayıt bölümünü seçin.
aşağıdaki örnek sorguyu Log Analytics girin:
AKSControlPlane | where Category == "karpenter-events"CLI'da düğüm otomatik sağlama olaylarını görüntüleyin:
kubectl get events --field-selector source=karpenter-events
Düğüm otomatik sağlama ölçümleri
Azure İzleyici tarafından yönetilen Prometheus eklentisi ile
Sonraki Adımlar
AKS'de düğüm otomatik sağlama hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
- Özel bir sanal ağda otomatik düğüm sağlamayı kullanma
- AKS'de otomatik düğüm provizyonu için ağı yapılandırma
- AKS'de düğüm otomatik sağlama için düğüm havuzlarını yapılandırma
- AKS'de otomatik düğüm sağlama için kesinti ilkelerini yapılandırma
- AKS'de otomatik düğüm sağlama için düğüm görüntülerini yükseltme