Apps aanpassen voor gemengde Kubernetes-clusters met behulp van knooppunt selectieers of taints en verdragenAdapt apps for mixed-OS Kubernetes clusters using node selectors or taints and tolerations

Van toepassing op: AKS op Azure Stack HCI, AKS runtime op Windows Server 2019 Data CenterApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter

Met de Azure Kubernetes-service op Azure Stack HCI kunt u Kubernetes-clusters uitvoeren met zowel Linux-als Windows-knoop punten, maar u moet ervoor zorgen dat uw apps klein worden bewerkt voor gebruik in deze gemengde OS-clusters.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. In deze hand leiding vindt u informatie over hoe u ervoor kunt zorgen dat uw toepassing wordt gepland op het juiste hostbesturingssysteem met behulp van knooppunt selectieers of taints en verdragen.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.

In deze hand leiding wordt ervan uitgegaan dat u een basis memorandum hebt van Kubernetes-concepten.This how-to guide assumes a basic understanding of Kubernetes concepts. Zie Kubernetes core-concepten voor Azure Kubernetes-service op Azure stack HCIvoor meer informatie.For more information, see Kubernetes core concepts for Azure Kubernetes Service on Azure Stack HCI.

Knooppunt kiezerNode Selector

Knooppunt selectie is een eenvoudig veld in de pod-specificatie yaml die het verschil beperkt om te worden gepland op gezonde knoop punten die overeenkomen met het besturings systeem.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. Geef in uw Pod-specificatie YAML een  nodeSelector   -Windows of Linux op, zoals wordt weer gegeven in de onderstaande voor beelden.In your pod specification YAML, specify a nodeSelector - Windows or Linux, as shown in the examples below.

kubernetes.io/os = Windows

ofor,

kubernetes.io/os = Linux

Ga voor meer informatie over nodeSelectors naar knooppunt selectie.For more information on nodeSelectors, visit node selectors.

Taints en verdragenTaints and tolerations

Taints en verdragen werken samen om ervoor te zorgen dat de peulen niet per ongeluk zijn gepland op knoop punten.Taints and tolerations work together to ensure that pods aren't scheduled on nodes unintentionally. Een knoop punt kan ' Tainted ' zijn om geen peulen te accepteren die zijn Taint niet expliciet door middel van een ' verdragen ' in de pod-specificatie 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.

Knoop punten van het Windows-besturings systeem in de Azure Kubernetes-service op Azure Stack HCI kunnen worden Tainted met het volgende sleutel/waarde-paar.Windows OS nodes in Azure Kubernetes Service on Azure Stack HCI can be tainted with the following key-value pair. Gebruikers mogen niet een andere naam gebruiken.Users shouldn't use a different one.

node.kubernetes.io/os=Windows:NoSchedule

Voer uit kubectl get en Identificeer de Windows worker-knoop punten die u wilt Taint.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

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

Taint Windows Server worker-knoop punten gebruiken 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

U geeft een tolerantie op voor een pod in de pod-specificatie YAML.You specify a toleration for a pod in the pod specification YAML. De volgende overeenkomst ' komt overeen met ' de Taint die is gemaakt door de kubectl Taint-regel, en dus een pod met de Verdragen zou kunnen plannen op mijn-AKS-HCI-cluster-MD-MD-1-5h4bl of mijn-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

Ga voor meer informatie over taints en verdragen naar taints en verdragen.For more information on taints and tolerations, visit Taints and Tolerations.

Volgende stappenNext steps

In deze hand leiding vindt u informatie over het toevoegen van knooppunt selecties of taints en-toleranties aan uw Kubernetes-clusters met behulp van kubectl.In this how-to guide, you learned how to add node selectors or taints and tolerations to your Kubernetes clusters using kubectl. U kunt nu het volgende doen:Next, you can: