Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Arbeiten mit Taints und Toleranzen

Das "Tainting" eines Kubernetes-Knotens bewirkt, dass Pods, die auf diesem Knoten laufen, abgestoßen werden.

Es sei denn, die Pods haben eine toleration für das Taint dieses Knotens, werden sie auf anderen Knoten im Cluster laufen.

Taints und Toleranzen können in Verbindung mit dem nodeSelector Feld innerhalb des PodSpec arbeiten, was den entgegengesetzten Effekt eines Taints ermöglicht.

Die Verwendung von nodeSelector verleiht Pods eine Affinität zu bestimmten Knoten.

Beide bieten die Wahl, auf welchen Knoten der Pod läuft.

Standardimplementierung im Logging-Stack von Rancher

Standardmäßig versieht Rancher alle Linux-Knoten mit cattle.io/os=linux und versieht keine Windows-Knoten mit Taint. Die Pods des Logging-Stacks haben tolerations für dieses Taint, was es ihnen ermöglicht, auf Linux-Knoten zu laufen. Darüber hinaus laufen die meisten Pods des Logging-Stacks nur auf Linux, und ein nodeSelector wurde hinzugefügt, um sicherzustellen, dass sie auf Linux-Knoten laufen.

Diese Beispiel-Pod-YAML-Datei zeigt, wie ein nodeSelector mit einer Toleranz verwendet wird:

apiVersion: v1
kind: Pod
# metadata...
spec:
  # containers...
  tolerations:
    - key: cattle.io/os
      operator: "Equal"
      value: "linux"
      effect: NoSchedule
  nodeSelector:
    kubernetes.io/os: linux

Im obigen Beispiel stellen wir sicher, dass unser Pod nur auf Linux-Knoten läuft, und fügen eine toleration für das Taint hinzu, das wir auf allen unseren Linux-Knoten haben.

Sie können dasselbe mit den vorhandenen Taints von Rancher oder mit Ihren eigenen benutzerdefinierten Taints tun.

Hinzufügen von NodeSelector-Einstellungen und Toleranzen für benutzerdefinierte Taints

Wenn Sie Ihre eigenen nodeSelector Einstellungen hinzufügen möchten oder wenn Sie tolerations für zusätzliche Taints hinzufügen möchten, können Sie Folgendes an die Werte des Charts übergeben.

tolerations:
  # insert tolerations...
nodeSelector:
  # insert nodeSelector...

Diese Werte fügen beide Einstellungen zu den Containern fluentd, fluentbit und logging-operator hinzu. Im Wesentlichen sind dies globale Einstellungen für alle Pods im Logging-Stack.

Wenn Sie jedoch Toleranzen für nur den fluentbit Container hinzufügen möchten, können Sie Folgendes zu den Chart-Werten hinzufügen.

fluentbit_tolerations:
  # insert tolerations list for fluentbit containers only...