Azure Kubernetes Service (AKS) kümesinde düğüm renk tonlarını kullanma
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ı düğümlere pod yerleştirmekle sorumludur ve kube-scheduler olan yukarı akış Kubernetes zamanlayıcısını temel alır. Düğüm benzenşimini kullanarak podları bir düğüm kümesine ekleyerek veya düğüme AKS zamanlayıcısıyla etkileşim kuran düğüm renk tonlarını kullanarak bir dizi podu itme talimatı vererek belirli düğümlerde çalıştırılacak podları kısıtlayabilirsiniz.
Düğüm renk tonları, zamanlayıcının işaretli düğümlere belirli podları yerleştirmekten kaçınması için bir düğümü işaretleyerek çalışır. Zamanlayıcının eşleşen bir renk tonu olan bir düğümde bu podu zamanlamasına izin vermek için bir poda toleranslar 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 . Örnek kullanım örnekleri, renk tointleri ve toleranslar.
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
, NoSchedule
ve PreferNoSchedule
.
NoExecute
: Düğümde zaten çalışan podlar, eşleşen bir toleransları yoksa hemen çıkarılır. Bir pod eşleşen bir toleransa sahipse, belirtilirsetolerationSeconds
çıkarılabilir.NoSchedule
: Yalnızca eşleşen toleransı olan podlar bu düğüme yerleştirilir. Mevcut podlar çıkarılamaz.PreferNoSchedule
: Zamanlayıcı, eşleşen toleransı olmayan podların yerleştirilmesini önler.
Düğüm renk tonu 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 benint'lerinin düğüm benzimi olan podları zamanlamak için düğümde kalıcı olarak kalması amaçlanıyor. Düğüm taint'leri yalnızca AKS API'sini kullanarak eklenebilir, güncelleştirilebilir 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 taint'ini kaldırabilirsiniz ve düğüm yaşam döngüsü boyunca garanti değildir. Bunlar yalnızca bir düğümün ölçeği artırıldıktan veya yükseltildikten/yeniden geliştirildikten sonra görünür. Yeni düğümler, ölçeklendirmeden sonra düğüm başlatma taint'ine sahip olmaya devam ediyor. Düğüm başlatma renk tonları, yükseltmeden sonra tüm düğümlerde 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 renk tonlarını kaldırdığınızda, yeni oluşturulan düğümler bu başlatma renk tonlarıyla gelmez. 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 renk tonları ve etiketler Kubernetes API'sinden değiştirilemez ve tam tersi de geçerlidir. Sistem renk tonlarında değişiklik yapılmasına izin verilmez.
Bu, düğüm başlatma renk tonları için geçerli değildir.
Düğüm renk tonlarını kullanma
Ö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 ile düğüm havuzu oluşturma
komutunu kullanarak
az aks nodepool add
bir taint ile bir düğüm havuzu oluşturun ve taint için belirtmeksku=gpu:NoSchedule
üzere parametresini kullanın--node-taints
.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-wait
Düğüm havuzunun durumunu denetleyin.
Düğümde renk tonunun ayarlandığını denetleyin.
Düğüm taint'i eklemek için düğüm havuzunu güncelleştirme
komutunu kullanarak düğüm taint eklemek için düğüm havuzunu güncelleştirin
az aks nodepool update
ve taint için belirtmeksku=gpu:NoSchedule
üzere parametresini kullanın--node-taints
.az aks nodepool update \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --node-taints "sku=gpu:NoSchedule" \ --no-wait
Düğüm havuzunun durumunu denetleyin.
Düğümde renk tonunun ayarlandığını 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.0b3
yüklü ve yapılandırılmış olması gerekir. Sürümü bulmak içinaz --version
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme. - Başlatma renk tonlarını yalnızca AKS API'sini kullanırken küme oluşturma veya yükseltme yoluyla uygulayabilirsiniz. ARM şablonları kullanıyorsanız, düğüm havuzu oluşturma ve güncelleştirme sırasında düğüm başlatma taint'leri belirtebilirsiniz.
- Azure CLI kullanarak Windows düğüm havuzlarına başlatma renk tonları uygulayamazsınız.
Kümenizin kimlik bilgilerini alma
komutunu kullanarak
az aks get-credentials
AKS 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
veya komutunu kullanarak aks-preview uzantısını kaydedin veya
az extension update
güncelleştirinaz extension add
.# 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
komutunu kullanarak özellik bayrağınıaz feature register
kaydedin.az feature register --namespace "Microsoft.ContainerService" --name "NodeInitializationTaintsPreview"
Durumun Kayıtlı olarak gösterilmesi birkaç dakika sürer.
komutunu kullanarak
az feature show
kayıt durumunu doğrulayın.az feature show --namespace "Microsoft.ContainerService" --name "NodeInitializationTaintsPreview"
Durum Kayıtlı olarak yansıtıldığında, komutunu kullanarak Microsoft.ContainerService kaynak sağlayıcısının kaydını yenileyin
az provider register
.az provider register --namespace Microsoft.ContainerService
Düğüm başlatma taint ile küme oluşturma
komutunu ve
--node-initialization-taints
taint için belirteceğinizsku=gpu:NoSchedule
parametreyiaz aks create
kullanarak 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-keys
Düğüm havuzunun durumunu denetleyin.
Düğümde renk tonunun ayarlandığını denetleyin.
Düğüm başlatma taint'i eklemek için kümeyi güncelleştirme
Komutunu ve
--node-initialization-taints
taint için belirteceğinizsku=gpu:NoSchedule
parametreyiaz aks update
kullanarak düğüm başlatma taint'i eklemek için bir kümeyi güncelleştirin.Önemli
Düğüm başlatma taint'i ile bir kümeyi güncelleştirirken, tint'ler kümedeki tüm düğüm havuzlarına uygulanır. Yeniden görselleştirme işleminden sonra düğümde düğüm başlatma renk tonlarına yönelik güncelleştirmeleri görüntüleyebilirsiniz.
az aks update \ --resource-group $RESOURCE_GROUP_NAME \ --name $CLUSTER_NAME \ --node-init-taints "sku=gpu:NoSchedule"
Düğüm havuzunun durumunu denetleyin.
Düğümde renk tonunun ayarlandığını denetleyin.
Düğüm havuzunun durumunu denetleme
Düğüm taint'ini veya başlatma taint'ini uyguladıktan sonra komutunu kullanarak düğüm havuzunun
az aks nodepool list
durumunu denetleyin.az aks nodepool list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
Düğüm renk tonlarını uyguladıysanız, aşağıdaki örnek çıktı düğüm havuzunun
<node-pool-name>
belirtilennodeTaints
ile düğümler olduğunuCreating
gösterir:[ { ... "count": 1, ... "name": "<node-pool-name>", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeTaints": [ "sku=gpu:NoSchedule" ], ... }, ... ]
Düğüm başlatma taint'lerini uyguladıysanız, aşağıdaki örnek çıktı düğüm havuzunun
<node-pool-name>
belirtilennodeInitializationTaints
ile düğümler olduğunuCreating
gösterir:[ { ... "count": 1, ... "name": "<node-pool-name>", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeInitializationTaints": [ "sku=gpu:NoSchedule" ], ... }, ... ]
Düğümde renk tonunun ayarlandığını denetleyin
komutunu kullanarak düğüm yapılandırmasında düğüm taint'lerini ve düğüm başlatma taint'lerini
kubectl describe node
denetleyin.kubectl describe node $NODE_NAME
Düğüm renk tonları uyguladıysanız, aşağıdaki örnek çıktı düğüm havuzunda belirtilen
Taints
öğesinin bulunduğunu<node-pool-name>
gösterir:[ ... Name: <node-pool-name> ... Taints: sku=gpu:NoSchedule ... ], ... ... ]
Düğüm renk tonlarını kaldırma
Belirli bir düğüm taint'ini kaldırma
komutunu kullanarak düğüm renk tonlarını
az aks nodepool update
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 "sku=gpu:NoSchedule"
Tüm düğüm renk tonlarını kaldırma
komutunu kullanarak düğüm havuzundan tüm düğüm renk tonlarını
az aks nodepool update
kaldırın. Aşağıdaki örnek komut, düğüm havuzundan tüm düğüm renk tonlarını 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 renk tonlarını kaldırma
Düğüm başlatma renk tonlarını düğümden 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ştikten sonra renk tonları yeniden görünür. Yeni düğümler, ölçeklendirmeden sonra düğüm başlatma taint'ine sahip olmaya devam ediyor. Düğüm başlatma renk tonları, yükseltmeden sonra tüm düğümlerde görünür.
- Kubernetes API'sini kullanarak düğümün boyasını kaldırıp AKS API'sini kullanarak taint'i kaldırarak düğüm başlatma renk tonlarını kalıcı olarak kaldırın. Başlatma renk tonları AKS API kullanılarak küme belirtiminden kaldırıldıktan sonra, yeniden başlatma işlemlerinden sonra yeni oluşturulan düğümlerde başlatma renk tonları 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ırma
komutunu kullanarak
kubectl taint nodes
düğü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'lerini geçici olarak kaldırma'daki adımları izleyin.
komutunu kullanarak AKS API'sini kullanarak düğümden taint'i
az aks update
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
komutunu kullanarak düğüm yapılandırmasında düğüm taint'lerini ve düğüm başlatma taint'lerini
kubectl describe node
denetleyin.kubectl describe node $NODE_NAME
Bir düğüm taint'ini kaldırdıysanız, aşağıdaki örnek çıktıda düğüm havuzunun
<node-pool-name>
altındaTaints
kaldırılan renk tonu 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.
Azure Kubernetes Service