4.7. 使用容忍度来控制 OpenShift Logging pod 放置
您可以使用污点和容限来确保 OpenShift Logging pod 在特定节点上运行,并确保其他工作负载不在这些节点上运行。
污点和容忍度是简单的 key:value 对。节点上的污点指示节点排斥所有不容许该污点的 pod。
key 是最长为 253 个字符的任意字符串,value 则是最长为 63 个字符的任意字符串。字符串必须以字母或数字开头,并且可以包含字母、数字、连字符、句点和下划线。
具有容限的 OpenShift Logging CR 示例
apiVersion: "logging.openshift.io/v1"
kind: "ClusterLogging"
metadata:
name: "instance"
namespace: openshift-logging
...
spec:
managementState: "Managed"
logStore:
type: "elasticsearch"
elasticsearch:
nodeCount: 3
tolerations:
- key: "logging"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 6000
resources:
limits:
memory: 16Gi
requests:
cpu: 200m
memory: 16Gi
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
collection:
logs:
type: "fluentd"
fluentd:
tolerations:
- key: "logging"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 6000
resources:
limits:
memory: 2Gi
requests:
cpu: 100m
memory: 1Gi
4.7.1. 使用容忍度来控制日志存储 pod 放置 复制链接链接已复制到粘贴板!
您可以通过在 pod 上使用容忍度来控制日志存储 pod 在哪些节点上运行,并防止其他工作负载使用这些节点。
您可以通过 ClusterLogging 自定义资源(CR)将容限应用到日志存储 pod,并通过节点规格将污点应用到节点。节点上的污点是一个 key:value 对,它指示节点排斥所有不容许该污点的 pod。通过使用不在其他 pod 上的特定 key:value 对,可以确保仅日志存储 pod 能够在该节点上运行。
默认情况下,日志存储 pod 具有以下容忍度:
tolerations:
- effect: "NoExecute"
key: "node.kubernetes.io/disk-pressure"
operator: "Exists"
先决条件
- 必须安装 OpenShift Logging 和 Elasticsearch。
流程
使用以下命令,将污点添加到要在其上调度 OpenShift Logging pod 的节点:
$ oc adm taint nodes <node-name> <key>=<value>:<effect>例如:
$ oc adm taint nodes node1 elasticsearch=node:NoExecute本例在
node1上放置一个键为elasticsearch且值为node的污点,污点效果是NoExecute。具有NoExecute效果的节点仅调度与污点匹配的 Pod,并删除不匹配的现有 pod。编辑
ClusterLoggingCR 的logstore部分,以配置 Elasticsearch Pod 的容忍度:logStore: type: "elasticsearch" elasticsearch: nodeCount: 1 tolerations: - key: "elasticsearch"1 operator: "Exists"2 effect: "NoExecute"3 tolerationSeconds: 60004
此容忍度与 oc adm taint 命令创建的污点匹配。具有此容忍度的 pod 可以调度到 node1 上。