This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.12.2. テイントおよび容認(Toleration)を使用したロギング Pod の配置の制御
テイントおよび容認 (Toleration) により、ノードはノード上でスケジュールする必要のある (またはスケジュールすべきでない) Pod を制御できます。
12.2.1. テイントおよび容認 (Toleration) について リンクのコピーリンクがクリップボードにコピーされました!
テイント により、ノードは Pod に一致する 容認 がない場合に Pod のスケジュールを拒否することができます。
テイントは Node
仕様 (NodeSpec
) でノードに適用され、容認は Pod
仕様 (PodSpec
) で Pod に適用されます。テイントをノードに適用する場合、スケジューラーは Pod がテイントを容認しない限り、Pod をそのノードに配置することができません。
ノード仕様のテイントの例
Pod
仕様での容認の例
テイントおよび容認は、key、value、および effect で構成されます。
パラメーター | 説明 | ||||||
---|---|---|---|---|---|---|---|
|
| ||||||
|
| ||||||
| effect は以下のいずれかにすることができます。
| ||||||
|
|
NoSchedule
テイントをコントロールプレーンノードに追加する場合、ノードには、デフォルトで追加されるnode-role.kubernetes.io/master=:NoSchedule
テイントが必要です。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
容認はテイントと一致します。
operator
パラメーターがEqual
に設定されている場合:-
key
パラメーターは同じになります。 -
value
パラメーターは同じになります。 -
effect
パラメーターは同じになります。
-
operator
パラメーターがExists
に設定されている場合:-
key
パラメーターは同じになります。 -
effect
パラメーターは同じになります。
-
以下のテイントは OpenShift Container Platform に組み込まれています。
-
node.kubernetes.io/not-ready
: ノードは準備状態にありません。これはノード条件Ready=False
に対応します。 -
node.kubernetes.io/unreachable
: ノードはノードコントローラーから到達不能です。これはノード条件Ready=Unknown
に対応します。 -
node.kubernetes.io/memory-pressure
: ノードにはメモリー不足の問題が発生しています。これはノード条件MemoryPressure=True
に対応します。 -
node.kubernetes.io/disk-pressure
: ノードにはディスク不足の問題が発生しています。これはノード条件DiskPressure=True
に対応します。 -
node.kubernetes.io/network-unavailable
: ノードのネットワークは使用できません。 -
node.kubernetes.io/unschedulable
: ノードはスケジュールが行えません。 -
node.cloudprovider.kubernetes.io/uninitialized
: ノードコントローラーが外部のクラウドプロバイダーを使用して起動すると、このテイントはノード上に設定され、使用不可能とマークされます。cloud-controller-manager のコントローラーがこのノードを初期化した後に、kubelet がこのテイントを削除します。 node.kubernetes.io/pid-pressure
: ノードが pid 不足の状態です。これはノード条件PIDPressure=True
に対応します。重要OpenShift Container Platform では、デフォルトの pid.available
evictionHard
は設定されません。
12.2.2. 容認を使用したログストア Pod の配置の制御 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトで、ログストア Pod には以下の容認設定があります。
Elasticsearch ログストア Pod のデフォルト容認
LokiStack ログストア Pod のデフォルトの容認
テイントを追加し、ClusterLogging
カスタムリソース(CR)の tolerations
構文を変更してログストア Pod の容認を設定できます。
前提条件
- Red Hat OpenShift Logging Operator がインストールされている。
-
OpenShift CLI (
oc
) がインストールされている。 - Elasticsearch または LokiStack のいずれかの内部ログストアをデプロイしている。
手順
次のコマンドを実行して、ロギング Pod をスケジュールするノードにテイントを追加します。
oc adm taint nodes <node_name> <key>=<value>:<effect>
$ oc adm taint nodes <node_name> <key>=<value>:<effect>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc adm taint nodes node1 lokistack=node:NoExecute
$ oc adm taint nodes node1 lokistack=node:NoExecute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、テイントをキー
collector
、値node
、およびテイント effectNoExecute
のあるnode1
に配置します。NoExecute
effect のノードは、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。ClusterLogging
CR のlogstore
セクションを編集し、ログストア Pod の容認を設定します。ClusterLogging
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この容認は、oc adm taint
コマンドで作成されたテイントと一致します。この容認のある Pod は node1
にスケジュールできます。
12.2.3. 容認を使用したログビジュアライザー Pod の配置の制御 リンクのコピーリンクがクリップボードにコピーされました!
他の Pod にはない特定のキー/値のペアを使用して、Kibana Pod のみが指定されたノードで実行できるようにすることができます。
前提条件
- Red Hat OpenShift Logging Operator、OpenShift Elasticsearch Operator、および Loki Operator がインストールされている。
手順
以下のコマンドを実行して、ログビジュアライザー Pod をスケジュールするノードにテイントを追加します。
oc adm taint nodes <node_name> <key>=<value>:<effect>
$ oc adm taint nodes <node_name> <key>=<value>:<effect>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc adm taint nodes node1 kibana=node:NoExecute
$ oc adm taint nodes node1 kibana=node:NoExecute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、テイントをキー
kibana
、値node
、およびテイントの効果NoExecute
のあるnode1
に配置します。NoExecute
テイント effect を使用する必要があります。NoExecute
は、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。ClusterLogging
CR のvisualization
セクションを編集し、Kibana Pod の容認を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この容認は、oc adm taint
コマンドで作成されたテイントと一致します。この容認のある Pod は、node1
にスケジュールできます。
12.2.4. 容認を使用したログコレクター Pod 配置の制御 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトで、ログコレクター Pod には以下の 容認
設定があります。
前提条件
-
Red Hat OpenShift Logging Operator および OpenShift CLI (
oc
)がインストールされている。
手順
以下のコマンドを使用して、ロギングコレクター Pod がロギングコレクター Pod をスケジュールする必要のあるノードにテイントを追加します。
oc adm taint nodes <node_name> <key>=<value>:<effect>
$ oc adm taint nodes <node_name> <key>=<value>:<effect>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc adm taint nodes node1 collector=node:NoExecute
$ oc adm taint nodes node1 collector=node:NoExecute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、テイントをキー
collector
、値node
、およびテイント effectNoExecute
のあるnode1
に配置します。NoExecute
テイント effect を使用する必要があります。NoExecute
は、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。ClusterLogging
カスタムリソース (CR) のcollection
スタンザを編集して、ロギングコレクター Pod の容認を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この容認は、oc adm taint
コマンドで作成されたテイントと一致します。この容認のある Pod は node1
にスケジュールできます。