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 Kubernetes Service (AKS) kümesinde düğüm renk tonlarının nasıl kullanılacağı açıklanmaktadır.
Genel bakış
AKS zamanlama mekanizması, podları düğümler üzerine yerleştirmekten sorumludur ve yukarı akış Kubernetes zamanlayıcısı kube-scheduler'a dayanır. tr-TR: Podların belirli düğümlerde çalışmasını, podları düğüm bağımlılığı kullanarak bir dizi düğüme ekleyerek veya düğüme, AKS zamanlayıcısıyla etkileşim kuran düğüm lekeleme kullanarak bir dizi podu uzak tutma talimatı vererek kısıtlayabilirsiniz.
Düğüm taint'leri, zamanlayıcının belirli podları işaretli düğümlere yerleştirmekten kaçınmasını sağlamak için bir düğümü işaretleyerek çalışır. Pod'un bir düğümde eşleşen bir taint ile zamanlanmasına izin vermek için pod üzerine tolerations yerleştirebilirsiniz. Taint'ler ve toleranslar, zamanlayıcının düğümlere podları nasıl yerleştireceklerini denetlemenize yardımcı olmak için birlikte çalışır. Daha fazla bilgi için bkz. taint ve toleransların örnek kullanım durumları.
Renk tonları, bir etkisi olan anahtar-değer çiftleridir. Düğüm renk tonları kullanılırken efekt alanı için üç değer vardır: NoExecute, NoScheduleve PreferNoSchedule.
-
NoExecute: Düğümde zaten çalışan podlar, eğer eşleşen bir tolerans yoksa hemen çıkarılır. Bir pod eşleşen bir toleransa sahipse vetolerationSecondsbelirtilmişse, çıkarılabilir. -
NoSchedule: Sadece toleransı eşleşen podlar bu düğüme yerleştirilir. Mevcut podlar tahliye edilmiyor. -
PreferNoSchedule: Zamanlayıcı, uygun tolerasyona sahip olmayan podların yerleştirilmesini önler.
Düğüm leke seçenekleri
AKS düğümlerinize uygulanabilecek iki tür düğüm renk tonu vardır: düğüm renk tonları ve düğüm başlatma renk tonları.
- Düğüm kirletmelerinin düğüm bağlılığı olan podları zamanlamak için düğümde kalıcı olarak kalması amaçlanıyor. Düğüm taint'leri yalnızca AKS API kullanılarak eklenebilir, güncellenebilir veya tamamen kaldırılabilir.
- Düğüm başlatma renk tonları önyükleme zamanında düğüme yerleştirilir ve düğümlerinizi ayarlamak için fazladan zamana ihtiyaç duyabileceğiniz senaryolarda olduğu gibi geçici olarak kullanılması amaçlanır. Kubernetes API'sini kullanarak düğüm başlatma kirlenmesini kaldırabilirsiniz ve düğüm yaşam döngüsü boyunca bu garanti edilmez. Bunlar, ölçeği artırıldığında düğümün yeni çoğaltmalarında veya bir düğüm yükseltildiğinde tüm çoğaltmalarda görünür. Başlatma renk tonlarını tamamen kaldırmak istiyorsanız, Kubernetes API'sini kullanarak düğümleri temizledikten sonra AKS API'sini kullanarak bunları kaldırabilirsiniz. AKS API'sini kullanarak küme belirtiminden başlatma lekelerini kaldırdığınızda, yeni oluşturulan düğümler bu başlatma lekelerine sahip olmaz. Başlatma taint'i mevcut düğümlerde hala varsa, bir düğüm görüntüsü yükseltme işlemi gerçekleştirerek kalıcı olarak kaldırabilirsiniz.
Not
AKS düğüm havuzu API'sini kullanarak uygulanan düğüm bozucu işaretler ve etiketler Kubernetes API'sinden değiştirilemez ve tam tersi de geçerlidir. Sistem taint'lerinde değişiklik yapılmasına izin verilmez.
Bu, düğüm başlatma renk tonları için geçerli değildir.
Düğüm taintlerini kullan
Önkoşullar
Bu makalede, mevcut bir AKS kümeniz olduğu varsayılır. AKS kümesine ihtiyacınız varsa Azure CLI, Azure PowerShell veya Azure portalını kullanarak bir küme oluşturabilirsiniz.
Düğüm taint'i kullanarak düğüm havuzu oluşturma
az aks nodepool addkomutunu kullanarak bir taint ile bir düğüm havuzu oluşturun ve tainti belirtmek için--node-taintsparametresini kullanınsku=gpu:NoSchedule.az aks nodepool add \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --node-count 1 \ --node-taints "sku=gpu:NoSchedule" \ --no-waitDüğüm havuzunun durumunu denetleyin.
Düğüm taint'i eklemek için düğüm havuzunu güncelleştirme
az aks nodepool updatekomutunu kullanarak bir düğüm taint eklemek amacıyla düğüm havuzunu güncelleştirin ve taint'i belirtmek için--node-taintsparametresini kullanınsku=gpu:NoSchedule.az aks nodepool update \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --node-taints "sku=gpu:NoSchedule" \ --no-waitDüğüm havuzunun durumunu denetleyin.
Düğüm başlatma renk tonlarını kullanma (önizleme)
Önemli
AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinin ve sınırlı garantinin dışında tutulur. AKS önizlemeleri, müşteri desteği tarafından kısmen en iyi çaba temelinde ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:
Ön koşullar ve sınırlamalar
- Azure CLI sürümünün veya sonraki bir sürümün
3.0.0b3yüklü ve yapılandırılmış olması gerekir. Sürümü bulmak içinaz --versionkomutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme. - Başlatma taint'lerini yalnızca AKS API'sini kullanarak küme oluşturma veya yükseltme işlemi sırasında uygulayabilirsiniz. ARM şablonu kullanarak Yönetilen Küme düzeyinde bir işlem gerçekleştiriyorsanız, düğüm havuzu oluştururken veya güncelleştirirken düğümlerin başlangıçta hangi taint'lerle işaretlenmesi gerektiğini belirtebilirsiniz. İstek gövdesinde
NodeInitializationTaintsmevcut olduğunda aracı havuzu seviyesindeki işlemler engellenir. - Azure CLI kullanarak Windows düğüm havuzlarına başlatma taint'leri uygulayamazsınız.
Kümenizin kimlik bilgilerini alma
komutunu kullanarak
az aks get-credentialsAKS kümenizin kimlik bilgilerini alın.az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
Azure CLI uzantısını aks-preview yükleme
Kaydedin veya aks-preview uzantısını
az extension addkomutunu kullanarak güncelleştirin.# Register the aks-preview extension az extension add --name aks-preview # Update the aks-preview extension az extension update --name aks-preview
Özellik bayrağını NodeInitializationTaintsPreview kaydetme
NodeInitializationTaintsPreviewözelliği bayrağınıaz feature registerkomutunu kullanarak kaydedin.az feature register --namespace "Microsoft.ContainerService" --name "NodeInitializationTaintsPreview"Durumun Kayıtlı olarak gösterilmesi birkaç dakika sürer.
komutunu kullanarak
az feature showkayıt durumunu doğrulayın.az feature show --namespace "Microsoft.ContainerService" --name "NodeInitializationTaintsPreview"Durum Kayıtlı olarak yansıtıldığında, komutunu kullanarak
az provider registerkaynak sağlayıcısının kaydını yenileyin.az provider register --namespace Microsoft.ContainerService
Düğüm başlatma taint ile küme oluşturma
az aks createkomutunu ve taint için--node-initialization-taintsbelirteceğinizsku=gpu:NoScheduleparametresini kullanarak bir düğüm başlatma taint'i ile bir küme oluşturun.Önemli
Belirttiğiniz düğüm başlatma taint'leri kümedeki tüm düğüm havuzlarına uygulanır. Başlatma taint'ini belirli bir düğüme uygulamak için CLI yerine ARM şablonu kullanabilirsiniz.
az aks create \ --resource-group $RESOURCE_GROUP_NAME \ --name $CLUSTER_NAME \ --node-count 1 \ --node-init-taints "sku=gpu:NoSchedule" \ --generate-ssh-keysDüğüm havuzunun durumunu denetleyin.
Düğüme başlatma taint'i eklemek için kümeyi güncelleme
az aks updatekomutunu ve taint için--node-initialization-taintsbelirlemek adınasku=gpu:NoScheduleparametresini kullanarak düğüm başlatma taint'i eklemek için bir kümeyi güncelleştirin.Önemli
Düğüm başlatma taint'i olan bir kümeyi güncelleştirirken, taint'ler kümedeki tüm düğüm havuzlarına uygulanır. Düğümleriniz VMSS kullanıyorsa, düğümün VMSS modeli güncelleştirildikten sonra (örneğin, düğüm görüntüsü sürümü yükseltme işleminden sonra) düğümdeki düğüm başlatma taint'lerine yönelik güncelleştirmeleri görüntüleyebilirsiniz. VMSS model güncellemesini tetikleyen bir işlem gerçekleşene kadar başlatma taint'leri düğümlerinizde görünmez.
az aks update \ --resource-group $RESOURCE_GROUP_NAME \ --name $CLUSTER_NAME \ --node-init-taints "sku=gpu:NoSchedule"Düğüm havuzunun durumunu denetleyin.
Düğüm havuzunun durumunu kontrol et
Düğüm taint'ini veya başlatma taint'ini uyguladıktan sonra
az aks nodepool listkomutunu kullanarak düğüm havuzunun durumunu kontrol edin.az aks nodepool list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAMEDüğüm kısıtlamalarını uyguladıysanız, aşağıdaki örnek çıktı,
<node-pool-name>ile belirtilenCreatingözelliklinodeTaintsdüğümlerden oluşan düğüm havuzunu gösterir.[ { ... "count": 1, ... "name": "<node-pool-name>", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeTaints": [ "sku=gpu:NoSchedule" ], ... }, ... ]Düğüm başlatma lekelendirmelerini uyguladıysanız, aşağıdaki örnek çıktı
<node-pool-name>düğüm havuzunun belirtilenCreatingilenodeInitializationTaintsdüğümlerden oluştuğunu gösterir.[ { ... "count": 1, ... "name": "<node-pool-name>", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeInitializationTaints": [ "sku=gpu:NoSchedule" ], ... }, ... ]
Düğümde taint'in doğru ayarlandığını kontrol edin
Düğüm yapılandırmasındaki düğüm bozulmalarını ve düğüm başlatma bozulmalarını
kubectl describe nodekomutunu kullanarak denetleyin.kubectl describe node $NODE_NAMEDüğüm lekeleri uyguladıysanız, aşağıdaki örnek çıktı,
<node-pool-name>düğüm havuzunda belirtilenTaintsöğesinin gösterdiğini gösterir.[ ... Name: <node-pool-name> ... Taints: sku=gpu:NoSchedule ... ], ... ... ]
Önemli
Düğümleriniz VMSS kullanıyorsa, düğüm başlatma ikaz işaretleri, VMSS model güncellemesini tetikleyen bir işlem gerçekleşene kadar (örneğin, Kubernetes sürüm güncellemesi veya düğüm imajı sürüm yükseltmesi gibi) kümenizdeki gerçek düğümlerde görünmez.
Düğüm kirlerini kaldır
Belirli bir düğüm taint'ini kaldırma
komutunu kullanarak
az aks nodepool updatedüğüm lekelerini kaldırın. Aşağıdaki örnek komut düğüm havuzundan"sku=gpu:NoSchedule"düğüm taint'ini kaldırır.az aks nodepool update \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --node-taints ""
Tüm düğüm kirliliklerini kaldır
Düğüm havuzundan tüm düğüm kirlerini kaldırmak için
az aks nodepool updatekomutunu kullanın. Aşağıdaki örnek komut, düğüm havuzundan tüm düğüm lekelerini kaldırır.az aks nodepool update \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --name $NODE_POOL_NAME \ --node-taints ""
Düğüm başlatma lekelerini kaldırma
Düğümdeki başlatma lekelerini kaldırmak için aşağıdaki seçeneklere sahipsiniz:
- Kubernetes API'sini kullanarak düğüm başlatma taint'lerini geçici olarak kaldırın. Bunları bu şekilde kaldırırsanız, düğüm ölçeklendirme veya yükseltme gerçekleştirildiğinde lekeler tekrar ortaya çıkar. Yeni düğümler, ölçeklendirmeden sonra düğüm başlatma taint'ine sahip olmaya devam ediyor. Düğüm başlatma lekeleri, yükseltmeden sonra tüm düğümlerde görünür.
- Kubernetes API'sini kullanarak düğümün yasağını kaldırın ve ardından AKS API'sini kullanarak yasağı kaldırarak düğüm başlatma yasaklarını kalıcı olarak kaldırın. Başlatma lekeleri AKS API kullanılarak küme belirtiminden kaldırıldıktan sonra, yeniden görüntüleme işlemlerinden sonra yeni oluşturulan düğümlerde başlatma lekeleri olmaz.
Düğüm havuzu çoğaltmalarından tüm başlatma taint oluşumlarını kaldırdığınızda, mevcut başlatma taint'i herhangi bir yeni başlatma taint'i içeren bir yükseltmeden sonra yeniden görünebilir.
Düğüm başlatma taint'lerini geçici olarak kaldırın
komutunu kullanarak
kubectl taint nodesdüğüm başlatma taint'lerini geçici olarak kaldırın.Bu komut taint'i yalnızca belirtilen düğümden kaldırır. Taint'i düğüm havuzundaki her düğümden kaldırmak istiyorsanız, taint'in kaldırılmasını istediğiniz her düğüm için komutunu çalıştırmanız gerekir.
kubectl taint nodes $NODE_POOL_NAME sku=gpu:NoSchedule-Kaldırıldıktan sonra düğüm başlatma taint'leri, düğüm ölçeklendirme veya yükseltme işlemi gerçekleştikten sonra yeniden görünür.
Düğüm başlatma taint'lerini kalıcı olarak kaldırma
Kubernetes API'sini kullanarak düğüm başlatma taint'ini kaldırmak için Düğüm başlatma taint'ini geçici olarak kaldırma adımlarını izleyin.
AKS API'sini
az aks updatekomutunu kullanarak düğümden taint'i kaldırın. Bu komut, kümedeki her düğümden düğüm başlatma taint'ini kaldırır.az aks update \ --resource-group $RESOURCE_GROUP_NAME \ --name $CLUSTER_NAME \ --node-init-taints ""
Taint'in düğümden kaldırılıp kaldırılmadığını denetleyin
Düğüm yapılandırmasındaki düğüm bozulmalarını ve düğüm başlatma bozulmalarını
kubectl describe nodekomutunu kullanarak denetleyin.kubectl describe node $NODE_NAMEBir node taint'ini kaldırdıysanız, aşağıdaki örnek çıktı,
<node-pool-name>düğüm havuzununTaintsaltında kaldırılan taint'e sahip olmadığını gösterir:[ ... Name: <node-pool-name> ... Taints: ... ], ... ... ]
Sonraki adımlar
- Renk tonları ve toleranslar için örnek kullanım örnekleri hakkında daha fazla bilgi edinin.
- Gelişmiş AKS zamanlayıcı özellikleri için en iyi yöntemler hakkında daha fazla bilgi edinin.
- Kubernetes etiketleri belgelerinde Kubernetes etiketleri hakkında daha fazla bilgi edinin.