Karma işletim sistemi Kubernetes kümelerinde kullanmak için uygulamaları uyarlama
Şunlar için geçerlidir: Azure Stack HCI 22H2 üzerinde AKS, Windows Server'da AKS
Azure Arc tarafından etkinleştirilen AKS, Kubernetes kümelerini hem Linux hem de Windows düğümleriyle çalıştırmanıza olanak tanır, ancak bu karma işletim sistemi kümelerinde kullanmak için uygulamalarınızda küçük düzenlemeler yapmanız gerekir. Bu nasıl yapılır kılavuzunda, düğüm seçicileri veya renk tonları ve toleransları kullanarak uygulamanızın doğru konak işletim sisteminde zamanlanmasını nasıl sağlayacağınızı öğreneceksiniz.
Bu makalede Kubernetes kavramlarını temel olarak anlamayı varsaymaktadır. Daha fazla bilgi için bkz. AKS karma için Kubernetes temel kavramları.
Düğüm seçicileri
Düğüm Seçici, pod belirtimi YAML'deki basit bir alandır ve podları yalnızca işletim sistemiyle eşleşen iyi durumdaki düğümlerde zamanlanacak şekilde kısıtlar. Pod belirtiminizde YAML, aşağıdaki örneklerde gösterildiği gibi bir nodeSelector
: Windows veya Linux belirtin:
kubernetes.io/os = Windows
Veya
kubernetes.io/os = Linux
nodeSelectors hakkında daha fazla bilgi için bkz. düğüm seçicileri.
Renk tonları ve toleranslar
Taint'ler ve toleranslar , podların düğümlerde istemeden zamanlanmadığından emin olmak için birlikte çalışır. YaML pod belirtimindeki bir "tolerans" aracılığıyla taint'ini açıkça tolere etmeyen podları reddetmek için düğüm "bozuk" olabilir.
AKS Arc'taki Windows işletim sistemi düğümleri New-AksHciNodePool veya New-AksHciCluster komutları ile oluşturulduğunda renklenebilir. Bu komutları Linux işletim sistemi düğümlerini bozmak için de kullanabilirsiniz. Aşağıdaki örnek, Windows düğümlerini kısıtlar.
Yeni kümeye renk tonu uygulama
Yeni bir küme de oluşturuyorsanız, aşağıdaki komutu çalıştırarak taint içeren bir Windows düğüm havuzu oluşturun. Taint içeren bir düğüm havuzu eklemek istediğiniz mevcut bir kümeniz varsa, komutunu kullanan New-AksHciNodePool
sonraki örne bakın.
New-AksHciCluster -name mycluster -nodePoolName taintnp -nodeCount 1 -osType Windows -osSku Windows2022 -taints sku=Windows:NoSchedule
Mevcut kümeye bozuk düğüm havuzu ekleme
Var olan bir kümeye bozuk düğüm havuzu eklemek için aşağıdaki komutu çalıştırın:
New-AksHciNodePool -clusterName <cluster-name> -nodePoolNAme taintnp -count 1 -osType Windows -osSku Windows2022 -taints sku=Windows:NoSchedule
Düğüm havuzunun taint ile başarıyla dağıtıldığını denetlemek için aşağıdaki komutu çalıştırın:
Get-AksHciNodePool -clusterName <cluster-name> -name taintnp
Örnek çıktı:
Status : {Phase, Details}
ClusterName : mycluster
NodePoolName : taintnp
Version : v1.20.7-kvapkg.1
OsType : Windows
NodeCount : 0
VmSize : Standard_K8S3_v1
Phase : Deployed
Taints : {sku=Windows:NoSchedule}
Pod için tolerans belirtme
YAML pod belirtiminde bir pod için tolerans belirtebilirsiniz. Aşağıdaki tolerans, önceki örnekte gösterilen renk tonu çizgisi tarafından kubectl
oluşturulan renk tonuyla "eşleşir". Sonuç olarak toleransı olan bir pod, bozuk düğümlere zamanlanabilir.
tolerations:
- key: node.kubernetes.io/os
operator: Equal
value: Windows
effect: NoSchedule
Dağıttığınız pod belirtiminin denetimi size aitse bu bölümdeki adımlar iyi çalışır. Ancak bazı durumlarda, kullanıcıların Linux kapsayıcıları için önceden var olan çok sayıda dağıtımın yanı sıra topluluk Helm grafikleri gibi yaygın yapılandırma ekosistemi vardır. Grafiği indirip düzenlemek istemediğiniz sürece pod belirtimine erişemezsiniz.
Bu Helm grafiklerini hem Linux hem de Windows çalışan düğümleriyle karma bir küme ortamına dağıtırsanız, uygulama podlarınız "ImagePullBackOff" hatasıyla başarısız olur. Örnek:
kubectl get pods
NAMESPACE NAME READY STATUS RESTARTS AGE
default nginx-deployment-558fc78868-795dp 0/1 ImagePullBackOff 0 6m24s
default nginx-deployment-6b474476c4-gpb77 0/1 ImagePullBackOff 0 11m
Bu örnekte, bu konuda yardımcı olması için renk tonlarını kullanabilirsiniz. Windows Server düğümleri anahtar-değer çifti node.kubernetes.io/os=windows:NoSchedule
ile boyanabilir.
Taint'ler ve toleranslar hakkında daha fazla bilgi için bkz. Taints ve Tolerations.
Sonraki adımlar
Bu nasıl yapılır kılavuzunda kubectl kullanarak Kubernetes kümelerinize düğüm seçicileri veya tonlamaları ve toleransları eklemeyi öğrendiniz. Ardından şunları yapabilirsiniz:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin