Çok havuzlu Kubernetes kümelerindeki podları yönetme
Contoso geliştiricileri, şirket içinde geliştirilen Windows ve Linux uygulamalarını Helm grafikleri kullanılarak dağıtılabilir Docker tabanlı görüntülere dönüştürmek için çalışmaktadır. Azure Stack HCI'de Kubernetes kümelerini uygulama planlamanızda, her iki işletim sistemi platformu için de destek sağlamanız gerekir.
Azure Stack HCI üzerindeki Kubernetes kümelerindeki düğüm havuzları nedir?
Azure Stack HCI üzerinde AKS, aynı Kubernetes kümesinde birden çok düğüm havuzunu destekler. Her havuz, bu havuzu sağlarken belirttiğiniz ayarlara göre aynı şekilde yapılandırılmış VM'lerden oluşur.
Düğümleri ayrı havuzlar halinde gruplandırarak pod dağıtımlarını uygun VM kümesine hedefleyebilirsiniz. Örneğin, yalnızca Windows işletim sistemi tarafından desteklenen veya grafik işlemci birimleri gibi özel donanım gerektiren kapsayıcılı iş yükleriniz olabilir.
Azure Stack HCI'de Kubernetes kümelerinde düğüm havuzlarına pod dağıtımını denetleme
Varsayılan olarak Kubernetes, kullanılabilir çalışan düğümlerinde kapsayıcılı iş yüklerinin kaynak kullanımını iyileştirecek şekilde sağlanmasını zamanlar. Bu davranışı değiştirmek için, belirttiğiniz özel ölçütlere göre düğüm seçimine kısıtlamalar uygulayabilirsiniz. Bu kısıtlamalar düğüm seçicileri, renk tonlarını ve toleransları içerir.
Düğüm seçicileri
Düğüm Seçici, bir pod veya dağıtımın YAML tabanlı tanımı içinde yer alan ve ilgili podun zamanlanabileceği hedef düğümleri tanımlayan bir ayardır. Amacınız hedef düğümleri işletim sistemlerine göre atamaksa Kubernetes tarafından düğümlere otomatik olarak atanan yerleşik etiketlere güvenebilirsiniz. Hedeflenen işletim sistemine bağlı olarak, düğüm seçici veya kubernetes.io/os = Linux
biçimini kubernetes.io/os = Windows
alır. Örneğin, aşağıdaki YAML tabanlı pod bildirimi Linux düğümlerini dağıtım hedefleri olarak adlandırır:
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
nodeSelector:
kubernetes.io/os = Linux
Renk tonları ve toleranslar
Tonlamalar ve toleranslar, pod yerleşimini denetlemeye alternatif bir yaklaşım sağlar. Bu yaklaşımla, renk tonları düğüm yapılandırmasının bir parçasıdır ve toleranslar pod belirtimlerinin bir parçasıdır. Bir düğümü taint yaparak, karşılık gelen taint'e özgü tolerans olmadan herhangi bir pod barındırmasını etkili bir şekilde engellersiniz.
Örneğin, Azure Stack HCI'deki AKS'de bir pod'un Windows düğümünde zamanlamasına izin vermek istiyorsanız tanımına aşağıdaki toleransı eklemelisiniz:
tolerations:
- key: node.kubernetes.io/os
operator: Equal
value: Windows
effect: NoSchedule
Buna ek olarak, yalnızca ilgili toleransla pod dağıtımı için kullanılabilir hale getirmek istediğiniz windows düğümlerinin her birine taint node.kubernetes.io/os=Windows:NoSchedule
eklemeniz gerekir. Bunu yapmak için kubectl komut satırı yardımcı programını kullanabilir ve ardından hedef kümeye bağlandıktan sonra kapsamdaki düğümlerin her biri için aşağıdaki komutu çalıştırabilirsiniz (yer tutucunun hedef düğümün adını belirlemesi):<node_name>
kubectl taint node <node_name> node.kubernetes.io/os=Windows:NoSchedule
Dekont
Düğüm seçicileri, belirli bir düğüm kümesinde pod yerleşimlerini zorunlu kılma. Toleranslar, podların belirlenen bir bozuk düğüm kümesinde çalışmasına izin verir, ancak düğümlerde renk tonları olmadan yerleştirilmesini engellemez.