Çok havuzlu Kubernetes kümelerindeki podları yönetme

Tamamlandı

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 = Linuxbiç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.

Bilgi kontrolü

1.

Contoso, Azure Stack HCI üzerinde AKS'ye Windows ve Linux kapsayıcılı iş yükleri dağıtmayı planlıyor. Windows tabanlı podların Windows çalıştıran Kubernetes küme düğümlerine dağıtılmasını sağlayacak yordamı belgelemelisiniz. Bu amaçla renk tonları ve toleranslar kullanmaya karar verdiniz. Renk tonunu hangi küme bileşenine uygulamalısınız?