9.4. 使用容忍度来控制 OpenShift Logging pod 放置
您可以使用污点和容限来确保 logging 子系统 pod 在特定节点上运行,并确保其他工作负载不在这些节点上运行。
污点和容忍度是简单的 key:value
对。节点上的污点指示节点排斥所有不容许该污点的 pod。
key
是最长为 253 个字符的任意字符串,value
则是最长为 63 个字符的任意字符串。字符串必须以字母或数字开头,并且可以包含字母、数字、连字符、句点和下划线。
带有容限的日志记录子系统 CR 示例
9.4.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"
tolerations:
- effect: "NoExecute"
key: "node.kubernetes.io/disk-pressure"
operator: "Exists"
先决条件
- 必须安装 Red Hat OpenShift Logging 和 Elasticsearch Operator。
流程
使用以下命令,将污点添加到要在其上调度 OpenShift Logging 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 elasticsearch=node:NoExecute
$ oc adm taint nodes node1 elasticsearch=node:NoExecute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 本例在
node1
上放置一个键为elasticsearch
且值为node
的污点,污点效果是NoExecute
。具有NoExecute
效果的节点仅调度与污点匹配的 Pod,并删除不匹配的现有 pod。编辑
ClusterLogging
CR 的logstore
部分,以配置 Elasticsearch Pod 的容忍度:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
此容忍度与 oc adm taint
命令创建的污点匹配。具有此容忍度的 pod 可以调度到 node1
上。
9.4.2. 使用容忍度来控制日志可视化 pod 放置 复制链接链接已复制到粘贴板!
您可以通过在 pod 上使用容忍度来控制 Curator pod 在哪些节点上运行,并防止其他工作负载使用这些节点。
您可以通过 ClusterLogging
自定义资源(CR)将容忍度应用到日志视觉化 pod,并通过节点规格将污点应用到节点。节点上的污点是一个 key:value
对,它指示节点排斥所有不容许该污点的 pod。通过使用没有在其他 Pod 上使用的特定 key:value
对,可以确保仅 Kibana Pod 能够在该节点上运行。
先决条件
- 必须安装 Red Hat OpenShift Logging 和 Elasticsearch 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 本例在
node1
上放置一个键为kibana
且值为node
的污点,污点效果是NoExecute
。您必须使用NoExecute
污点设置。NoExecute
仅调度与污点匹配的 pod,并删除不匹配的现有 pod。编辑
ClusterLogging
CR 的visualization
部分,以配置 Kibana pod 的容忍度:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
此容忍度与 oc adm taint
命令创建的污点匹配。具有此容限的 pod 可以调度到 node1
上。
9.4.3. 使用容忍度来控制日志收集器 pod 放置 复制链接链接已复制到粘贴板!
您可以通过在 pod 上使用容忍度来确保日志记录收集器 pod 在哪些节点上运行,并防止其他工作负载使用这些节点。
您可以通过 ClusterLogging
自定义资源(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"
先决条件
- 必须安装 Red Hat OpenShift Logging 和 Elasticsearch 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 collector=node:NoExecute
$ oc adm taint nodes node1 collector=node:NoExecute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 本例在
node1
上放置一个键为collector
且值为node
的污点,污点效果是NoExecute
。您必须使用NoExecute
污点设置。NoExecute
仅调度与污点匹配的 pod,并删除不匹配的现有 pod。编辑
ClusterLogging
自定义资源(CR)的collection
小节,以配置日志记录收集器 Pod 的容忍度:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
此容忍度与 oc adm taint
命令创建的污点匹配。具有此容限的 pod 可以调度到 node1
上。