この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

テイントと許容の操作

Kubernetesノードに「汚染」を施すと、そのノード上で実行されるポッドが拒否されます。

ポッドがそのノードの汚染に対して`toleration`を持たない限り、クラスター内の他のノードで実行されます。

Taints and tolerationsは、nodeSelector フィールド`PodSpec`内で連携して機能し、汚染の_逆_の効果を可能にします。

`nodeSelector`を使用すると、ポッドは特定のノードに対して親和性を持ちます。

両者は、ポッドが実行されるノードを選択するための選択肢を提供します。

Rancherのログスタックにおけるデフォルトの実装

デフォルトでは、RancherはすべてのLinuxノードに`cattle.io/os=linux`を施し、Windowsノードには汚染を施しません。 ログスタックのポッドは、この汚染に対して`tolerations`を持ち、Linuxノードで実行できるようにします。 さらに、ほとんどのログスタックポッドはLinux上でのみ実行され、Linuxノードで実行されることを保証するために`nodeSelector`が追加されています。

この例のPod YAMLファイルは、nodeSelectorがトレランスと共に使用されていることを示しています:

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

上記の例では、ポッドがLinuxノードでのみ実行されることを保証し、すべてのLinuxノードに施した汚染に対して`toleration`を追加します。

Rancherの既存の汚染や、独自のカスタム汚染でも同様のことができます。

カスタムテイント用のNodeSelector設定とTolerationの追加

独自の`nodeSelector`設定を追加したい場合や、追加の汚染に対して`tolerations`を追加したい場合は、次の値をチャートの値に渡すことができます。

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

これらの値は、fluentdfluentbit、`logging-operator`の各コンテナに両方の設定を追加します。 本質的に、これらはログスタック内のすべてのポッドに対するグローバル設定です。

ただし、_のみ_の`fluentbit`コンテナに対してトレランスを追加したい場合は、次の値をチャートの値に追加できます。

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