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.7.9. 容認を使用した クラスターロギング Pod 配置の制御
テイントおよび容認を使用することで、クラスターロギング Pod が特定のノードで実行され、その他のワークロードがそれらのノードで実行されないようにします。
テイントおよび容認は、単純な key:value
のペアです。ノードのテイントはノードに対し、テイントを容認しないすべての Pod を拒否するよう指示します。
key
は最大 253 文字までの文字列で、value
は最大 63 文字までの文字列になります。文字列は文字または数字で開始する必要があり、文字、数字、ハイフン、ドットおよびアンダースコアを含めることができます。
容認を使用したクラスターロギング CR のサンプル
apiVersion: "logging.openshift.io/v1" kind: "ClusterLogging" metadata: name: "instance" namespace: openshift-logging spec: managementState: "Managed" logStore: type: "elasticsearch" elasticsearch: nodeCount: 1 tolerations: - key: "logging" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000 resources: limits: memory: 8Gi requests: cpu: 100m memory: 1Gi storage: {} redundancyPolicy: "ZeroRedundancy" visualization: type: "kibana" kibana: tolerations: - key: "logging" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000 resources: limits: memory: 2Gi requests: cpu: 100m memory: 1Gi replicas: 1 curation: type: "curator" curator: tolerations: - key: "logging" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000 resources: limits: memory: 200Mi requests: cpu: 100m memory: 100Mi schedule: "*/5 * * * *" collection: logs: type: "fluentd" fluentd: tolerations: - key: "logging" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000 resources: limits: memory: 2Gi requests: cpu: 100m memory: 1Gi
apiVersion: "logging.openshift.io/v1"
kind: "ClusterLogging"
metadata:
name: "instance"
namespace: openshift-logging
spec:
managementState: "Managed"
logStore:
type: "elasticsearch"
elasticsearch:
nodeCount: 1
tolerations:
- key: "logging"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 6000
resources:
limits:
memory: 8Gi
requests:
cpu: 100m
memory: 1Gi
storage: {}
redundancyPolicy: "ZeroRedundancy"
visualization:
type: "kibana"
kibana:
tolerations:
- key: "logging"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 6000
resources:
limits:
memory: 2Gi
requests:
cpu: 100m
memory: 1Gi
replicas: 1
curation:
type: "curator"
curator:
tolerations:
- key: "logging"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 6000
resources:
limits:
memory: 200Mi
requests:
cpu: 100m
memory: 100Mi
schedule: "*/5 * * * *"
collection:
logs:
type: "fluentd"
fluentd:
tolerations:
- key: "logging"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 6000
resources:
limits:
memory: 2Gi
requests:
cpu: 100m
memory: 1Gi
7.9.1. 容認を使用した Elasticsearch Pod 配置の制御
Elasticsearch Pod が実行するノードを制御し、Pod の容認を使用して他のワークロードがそれらのノードを使用しないようにすることができます。
容認をクラスターロギングのカスタムリソース (CR) で Elasticsearch Pod に適用し、テイントをノード仕様でノードに適用します。ノードのテイントは、テイントを容認しないすべての Pod を拒否するようノードに指示する key:value ペア
です。他の Pod にはない特定の key:value
ペアを使用することで、Elasticseach Pod のみがそのノード上で実行されるようにできます。
デフォルトで、Elasticsearch Pod には以下の容認があります。
tolerations: - effect: "NoExecute" key: "node.kubernetes.io/disk-pressure" operator: "Exists"
tolerations:
- effect: "NoExecute"
key: "node.kubernetes.io/disk-pressure"
operator: "Exists"
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている必要があります。
手順
以下のコマンドを使用して、クラスターロギング Pod をスケジュールするノードにテイントを追加します。
oc adm taint nodes <node-name> <key>=<value>:<effect>
$ oc adm taint nodes <node-name> <key>=<value>:<effect>
Copy to Clipboard Copied! 以下は例になります。
oc adm taint nodes node1 elasticsearch=node:NoExecute
$ oc adm taint nodes node1 elasticsearch=node:NoExecute
Copy to Clipboard Copied! この例では、テイントをキー
elasticsearch
、値node
、およびテイントの効果NoExecute
のあるnode1
に配置します。NoExecute
効果のノードは、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。クラスターロギングのカスタムリソース (CR) の
logStore
セクションを編集し、Elasticsearch Pod の容認を設定します。logStore: type: "elasticsearch" elasticsearch: nodeCount: 1 tolerations: - key: "elasticsearch" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000
logStore: type: "elasticsearch" elasticsearch: nodeCount: 1 tolerations: - key: "elasticsearch"
1 operator: "Exists"
2 effect: "NoExecute"
3 tolerationSeconds: 6000
4 Copy to Clipboard Copied!
この容認は、oc adm taint
コマンドで作成されたテイントと一致します。この容認のある Pod は node1
にスケジュールできます。
7.9.2. 容認 (Toleration) による Kibana Pod の配置の制御
Kibana Pod が実行するノードを制御し、Pod の容認を使用して他のワークロードがそれらのノードを使用しないようにすることができます。
容認をクラスターロギングのカスタムリソース (CR) を利用して Kibana Pod に適用し、テイントをノード仕様でノードに適用します。ノードのテイントは、テイントを容認しないすべての Pod を拒否するようノードに指示する key:value ペア
です。他の Pod にはない特定の key:value
ペアを使用することで、Kibana Pod のみがそのノード上で実行されます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている必要があります。
手順
以下のコマンドを使用して、Kibana Pod をスケジュールするノードにテイントを追加します。
oc adm taint nodes <node-name> <key>=<value>:<effect>
$ oc adm taint nodes <node-name> <key>=<value>:<effect>
Copy to Clipboard Copied! 以下は例になります。
oc adm taint nodes node1 kibana=node:NoExecute
$ oc adm taint nodes node1 kibana=node:NoExecute
Copy to Clipboard Copied! この例では、テイントをキー
kibana
、値node
、およびテイントの効果NoExecute
のあるnode1
に配置します。NoExecute
テイント effect を使用する必要があります。NoExecute
は、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。クラスターロギングのカスタムリソース (CR) の
visualization
セクションを編集し、Kibana Pod の容認を設定します。visualization: type: "kibana" kibana: tolerations: - key: "kibana" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000
visualization: type: "kibana" kibana: tolerations: - key: "kibana"
1 operator: "Exists"
2 effect: "NoExecute"
3 tolerationSeconds: 6000
4 Copy to Clipboard Copied!
この容認は、oc adm taint
コマンドで作成されたテイントと一致します。この容認のある Pod は、node1
にスケジュールできます。
7.9.3. 容認を使用した Curator Pod 配置の制御
Curator Pod が実行するノードを制御し、Pod の容認を使用して他のワークロードがそれらのノードを使用しないようにすることができます。
容認をクラスターロギングのカスタムリソース (CR) で Curator Pod に適用し、テイントをノード仕様でノードに適用します。ノードのテイントは、テイントを容認しないすべての Pod を拒否するようノードに指示する key:value ペア
です。他の Pod にはない特定の key:value
ペアを使用することで、Curator Pod のみがそのノード上で実行されるようにできます。
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている必要があります。
手順
以下のコマンドを使用して、Curator Pod をスケジュールする必要のあるノードにテイントを追加します。
oc adm taint nodes <node-name> <key>=<value>:<effect>
$ oc adm taint nodes <node-name> <key>=<value>:<effect>
Copy to Clipboard Copied! 以下は例になります。
oc adm taint nodes node1 curator=node:NoExecute
$ oc adm taint nodes node1 curator=node:NoExecute
Copy to Clipboard Copied! この例では、テイントをキー
curator
、値node
、およびテイント effectNoExecute
のあるnode1
に配置します。NoExecute
テイント effect を使用する必要があります。NoExecute
は、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。クラスターロギングのカスタムリソース (CR) の
curation
セクションを編集し、Curator Pod の容認を設定します。curation: type: "curator" curator: tolerations: - key: "curator" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000
curation: type: "curator" curator: tolerations: - key: "curator"
1 operator: "Exists"
2 effect: "NoExecute"
3 tolerationSeconds: 6000
4 Copy to Clipboard Copied!
この容認は、oc adm taint
コマンドで作成されるテイントと一致します。この容認のある Pod は、node1
にスケジュールできます。
7.9.4. 容認を使用したログコレクター Pod 配置の制御
ロギングコレクター Pod が実行するノードを確認し、Pod の容認を使用して他のワークロードがそれらのノードを使用しないようにすることができます。
容認をクラスターロギングのカスタムリソース (CR) でロギングコレクター Pod に適用し、テイントをノード仕様でノードに適用します。テイントおよび容認を使用すると、Pod がメモリーや CPU などの問題によってエビクトされないようにすることができます。
デフォルトで、ロギングコレクター Pod には以下の容認があります。
tolerations: - key: "node-role.kubernetes.io/master" operator: "Exists" effect: "NoExecute"
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoExecute"
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている必要があります。
手順
以下のコマンドを使用して、ロギングコレクター Pod がロギングコレクター Pod をスケジュールする必要のあるノードにテイントを追加します。
oc adm taint nodes <node-name> <key>=<value>:<effect>
$ oc adm taint nodes <node-name> <key>=<value>:<effect>
Copy to Clipboard Copied! 以下は例になります。
oc adm taint nodes node1 collector=node:NoExecute
$ oc adm taint nodes node1 collector=node:NoExecute
Copy to Clipboard Copied! この例では、テイントをキー
collector
、値node
、およびテイント effectNoExecute
のあるnode1
に配置します。NoExecute
テイント effect を使用する必要があります。NoExecute
は、テイントに一致する Pod のみをスケジュールし、一致しない既存の Pod を削除します。クラスターロギングのカスタムリソース (CR) の
collection
セクションを編集して、ロギングコレクター Pod の容認を設定します。collection: logs: type: "fluentd" rsyslog: tolerations: - key: "collector" operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000
collection: logs: type: "fluentd" rsyslog: tolerations: - key: "collector"
1 operator: "Exists"
2 effect: "NoExecute"
3 tolerationSeconds: 6000
4 Copy to Clipboard Copied!
この容認は、oc adm taint
コマンドで作成されたテイントと一致します。この容認のある Pod は、node1
にスケジュールできます。
7.9.5. 追加リソース
テイントおよび容認についての詳細は、「ノードテイントを使用した Pod 配置の制御」を参照してください。