Alkalmazások adaptálása vegyes operációs rendszerű Kubernetes-fürtökhöz csomópont-választókkal vagy a megfertőzés és a tolerancia használatávalAdapt apps for mixed-OS Kubernetes clusters using node selectors or taints and tolerations

A következőkre vonatkozik: Azure Stack HCI, AK Runtime a Windows Server 2019 Datacenter rendszerenApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter

Az Azure Kubernetes Service on Azure Stack HCI lehetővé teszi, hogy Linux-és Windows-csomópontokkal is futtasson Kubernetes-fürtöket, de az alkalmazásokban kis méretű módosításokat kell végeznie a vegyes operációs rendszerű fürtökben való használatra.Azure Kubernetes Service on Azure Stack HCI enables you to run Kubernetes clusters with both Linux and Windows nodes, but requires you to make small edits to your apps for use in these mixed-OS clusters. Ebben a útmutatóban megtudhatja, hogyan gondoskodhat arról, hogy az alkalmazás a megfelelő gazdagép operációs rendszerének megfelelően legyen ütemezve a csomópont-választókkal vagy a megromlások és a tolerancia használatával.In this how-to guide, you learn how to ensure your application gets scheduled on the right host OS using either node selectors or taints and tolerations.

Ez a útmutató a Kubernetes alapelveinek ismeretét feltételezi.This how-to guide assumes a basic understanding of Kubernetes concepts. További információ: az Azure Kubernetes Service Kubernetes alapfogalmai Azure stack HCI-ben.For more information, see Kubernetes core concepts for Azure Kubernetes Service on Azure Stack HCI.

Csomópont-választóNode Selector

A csomópont-választó egy egyszerű mező a pod specifikáció YAML, amely korlátozza a hüvelyeket, hogy csak az operációs rendszernek megfelelő, kifogástalan állapotú csomópontokra legyenek ütemezve.Node Selector is a simple field in the pod specification YAML that constrains pods to only be scheduled onto healthy nodes matching the operating system. A pod specifikáció YAML adja meg a  nodeSelector   -Windows vagy Linux rendszert, ahogy az alábbi példákban is látható.In your pod specification YAML, specify a nodeSelector - Windows or Linux, as shown in the examples below.

kubernetes.io/os = Windows

vagyor,

kubernetes.io/os = Linux

További információt a nodeSelectors a csomópont- választókkalfoglalkozó témakörben találhat.For more information on nodeSelectors, visit node selectors.

A szennyező és a tolerálásTaints and tolerations

A megfertőzés és a tolerancia együttesen biztosítják, hogy a hüvelyek ne legyenek szándékosan ütemezve a csomópontokon.Taints and tolerations work together to ensure that pods aren't scheduled on nodes unintentionally. Egy csomópont "megfertőzhető", hogy ne fogadja el azokat a hüvelyeket, amelyek nem tudják explicit módon elviselni a romlottságot a pod specifikáció YAML.A node can be "tainted" to not accept pods that don't explicitly tolerate its taint through a "toleration" in the pod specification YAML.

Az Azure Kubernetes Service-ben a Azure Stack HCI-ben futó Windows OS-csomópontok a következő kulcs-érték párokkal oldhatók meg.Windows OS nodes in Azure Kubernetes Service on Azure Stack HCI can be tainted with the following key-value pair. A felhasználók nem használhatnak másikat.Users shouldn't use a different one.

node.kubernetes.io/os=Windows:NoSchedule

Futtassa kubectl get és azonosítsa a megfertőzni kívánt Windows-munkavégző csomópontokat.Run kubectl get and identify the Windows worker nodes you want to taint.

kubectl get nodes --all-namespaces -o=custom-columns=NAME:.metadata.name,OS:.status.nodeInfo.operatingSystem

Kimenet:Output:

NAME                                     OS
my-aks-hci-cluster-control-plane-krx7j   linux
my-aks-hci-cluster-md-md-1-5h4bl         windows
my-aks-hci-cluster-md-md-1-5xlwz         windows

A Windows Server Worker csomópontjainak használata a használatával kubectl taint node .Taint Windows server worker nodes using kubectl taint node.

kubectl taint node my-aks-hci-cluster-md-md-1-5h4bl node.kubernetes.io/os=Windows:NoSchedule
kubectl taint node my-aks-hci-cluster-md-md-1-5xlwz node.kubernetes.io/os=Windows:NoSchedule

A pod specifikáció YAML megadhat egy Pod-t.You specify a toleration for a pod in the pod specification YAML. A következő tolerancia "egyezik" a fenti kubectl szennyező vonal által létrehozott szennyező adataival, így a tolerálható Pod a saját-AK-HCI-cluster-MD-MD-1-5h4bl vagy a My-AK-HCI-cluster-MD-MD-1-5xlwz:The following toleration "matches" the taint created by the kubectl taint line above, and thus a pod with the toleration would be able to schedule onto my-aks-hci-cluster-md-md-1-5h4bl or my-aks-hci-cluster-md-md-1-5xlwz:

tolerations:
- key: node.kubernetes.io/os
  operator: Equal
  value: Windows
  effect: NoSchedule

További információ a szennyező adatokról és a megterhelésekről: a megfertőzés és a tolerancia.For more information on taints and tolerations, visit Taints and Tolerations.

További lépésekNext steps

Ebben a útmutatóban megtanulta, hogyan adhat hozzá csomópont-választókat, illetve hogyan lehet a Kubernetes-fürtöket a kubectl használatával felvenni.In this how-to guide, you learned how to add node selectors or taints and tolerations to your Kubernetes clusters using kubectl. Következő lépésként a következőket teheti:Next, you can: