Anpassa appar för blandade OS Kubernetes-kluster med hjälp av Node-väljare eller-bismakar och tolererarAdapt apps for mixed-OS Kubernetes clusters using node selectors or taints and tolerations

Gäller för: AKS på Azure Stack HCI, AKS runtime på Windows Server 2019 Data CenterApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter

Med Azure Kubernetes service på Azure Stack HCI kan du köra Kubernetes-kluster med både Linux-och Windows-noder, men du måste göra små ändringar i dina appar för användning i de här blandade OS-klustren.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. I den här instruktions guiden får du lära dig hur du ser till att programmet schemaläggs på rätt värd operativ system med hjälp av antingen Node-väljare eller-bismakar och tolererar.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.

Den här instruktions guiden förutsätter grundläggande kunskaper om Kubernetes-koncept.This how-to guide assumes a basic understanding of Kubernetes concepts. Mer information finns i Kubernetes Core Concepts for Azure Kubernetes service på Azure Stack HCI.For more information, see Kubernetes core concepts for Azure Kubernetes Service on Azure Stack HCI.

Node-selektorNode Selector

Node Selector är ett enkelt fält i pod-specifikationen yaml som begränsar poddar till att endast schemaläggas till felfria noder som matchar operativ systemet.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. I pod-specifikationen YAML anger du en  nodeSelector   -Windows eller Linux, som du ser i exemplen nedan.In your pod specification YAML, specify a nodeSelector - Windows or Linux, as shown in the examples below.

kubernetes.io/os = Windows

elleror,

kubernetes.io/os = Linux

Mer information om avmarkerare finns på Node selecters.For more information on nodeSelectors, visit node selectors.

Bismakar och tolererandeTaints and tolerations

Bismakar och- tolererar fungerar tillsammans för att säkerställa att poddar inte har schemalagts på noder oavsiktligt.Taints and tolerations work together to ensure that pods aren't scheduled on nodes unintentionally. En nod kan vara "förvarad" för att inte acceptera poddar som inte uttryckligen tolererar dess smak genom en "acceptans" i pod Specification 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.

Windows OS-noder i Azure Kubernetes service på Azure Stack HCI kan vara förorenade med följande nyckel/värde-par.Windows OS nodes in Azure Kubernetes Service on Azure Stack HCI can be tainted with the following key-value pair. Användare får inte använda en annan.Users shouldn't use a different one.

node.kubernetes.io/os=Windows:NoSchedule

Kör kubectl get och identifiera de Windows-arbetsnoder som du vill använda för att göra en smak.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

Utdata: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

Smak på Windows Server Worker-noder med 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

Du anger en tolererande för en POD i pod Specification YAML.You specify a toleration for a pod in the pod specification YAML. Följande tolererar "matchar" den som har skapats av kubectl-bismaks linjen ovan, och därför skulle en POD med tolerera att kunna schemalägga till My-AKS-HCI-Cluster-MD-MD-1-5h4bl eller My-AKS-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

Mer information om bismaker och tolererar finns i smak och tolererande.For more information on taints and tolerations, visit Taints and Tolerations.

Nästa stegNext steps

I den här instruktions guiden har du lärt dig hur du lägger till Node-väljare eller-bismaker och tolererar till dina Kubernetes-kluster med hjälp av kubectl.In this how-to guide, you learned how to add node selectors or taints and tolerations to your Kubernetes clusters using kubectl. Sedan kan du:Next, you can: