本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

污点与容忍

如果用户希望仅为 Longhorn 创建具有大存储空间和/或 处理器 资源的节点(用于存储副本数据)并拒绝其他一般工作负载,可以对这些节点打污点,并为 Longhorn 组件设置容忍。然后可以在这些节点上部署 Longhorn。

请注意,一个工作负载的污点容忍设置不会阻止其被调度到不包含相应污点的节点上。

有关污点与容忍如何工作的更多信息,请参阅 官方 Kubernetes 文档。

设置污点与容忍

Longhorn 由用户部署的组件(例如,Longhorn Manager、Longhorn Driver 和 Longhorn UI)以及系统管理的组件(例如,Instance Manager、Backing Image Manager、Share Manager、CSI Driver 和 Engine Image)组成。 您需要为这两种类型的组件设置容忍。请参见下面的更多详细信息。

在安装 Longhorn 时设置污点与容忍

  1. 为用户部署的组件(例如,Longhorn Manager、Longhorn Driver 和 Longhorn UI)设置污点容忍。

    • 如果您通过 Rancher 安装 Longhorn,您必须将以下参数复制并粘贴到 Rancher UI 上的 YAML 中(在安装过程中点击 以 YAML 形式编辑)以将值应用于所有用户部署的组件。

        global:
          tolerations:
          - key: "key"
            operator: "Equal"
            value: "value"
            effect: "NoSchedule"
    • 您还可以为每个用户部署的组件指定容忍,这将覆盖全局设置。

        longhornManager:
          tolerations:
          - key: "key"
            operator: "Equal"
            value: "value"
            effect: "NoSchedule"
        longhornDriver:
          tolerations:
          - key: "key"
            operator: "Equal"
            value: "value"
            effect: "NoSchedule"
        longhornUI:
          tolerations:
          - key: "key"
            operator: "Equal"
            value: "value"
            effect: "NoSchedule"
    • 如果您使用 kubectl 来应用 部署 YAML 安装 Longhorn,您需要修改 Longhorn Manager、Longhorn UI 和 Longhorn Driver Deployer 的污点容忍部分。 然后应用 YAML 文件。

    • 如果您使用 Helm 安装 Longhorn,您可以在安装图表之前更改 values.yaml 文件中的 global.tolerationslonghornManager.tolerationslonghornUI.tolerationslonghornDriver.tolerations 的 Helm 值。

  2. 为系统管理的组件(例如,实例管理器、CSI 驱动程序和引擎镜像)设置污点容忍。

    按照 自定义默认设置,通过更改 taint-toleratio 默认设置的值来设置污点容忍。

    由于 Rancher 2.5.x 的限制,如果您使用 Rancher UI 安装 Longhorn,您需要点击 Edit As Yaml 并将设置 taintToleration 添加到 defaultSettings

    例如:

    defaultSettings:
      taintToleration: "key=value:NoSchedule"

在 Longhorn 安装后设置污点与容忍。

警告:

为了确保您的首选容忍设置立即生效,请停止所有工作负载,并在配置设置之前卸载所有 Longhorn 卷。

由于所有 Longhorn 组件将被重启,Longhorn 系统暂时不可用。

当所有 Longhorn 卷被卸载时,自定义设置会立即应用于系统管理的组件。 当一个或多个 Longhorn 卷仍然挂载时,只有在没有引擎和副本实例运行的情况下,自定义设置才会应用于 Instance Manager。在卸载剩余卷后,您需要重新配置该设置。或者,您可以等待下一个设置同步,该同步将在一小时内发生。

在容忍设置更新和 Longhorn 组件重启时,请勿操作 Longhorn 系统。

  1. 准备

    为了确保您的首选设置立即生效,请停止所有工作负载并在配置设置之前卸载所有 Longhorn 卷。

  2. 为用户部署的组件(例如,Longhorn Manager、Longhorn Driver 和 Longhorn UI)设置污点容忍。

    • 如果您通过 Rancher 安装 Longhorn,您必须将以下参数复制并粘贴到 Rancher UI 上的 YAML 中(在升级期间点击 以 YAML 形式编辑)以将值应用于所有用户部署的组件。

        global:
          tolerations:
          - key: "key"
            operator: "Equal"
            value: "value"
            effect: "NoSchedule"
    • 您还可以为每个用户部署的组件指定容忍,从而覆盖全局设置。

        longhornManager:
          tolerations:
          - key: "key"
            operator: "Equal"
            value: "value"
            effect: "NoSchedule"
        longhornDriver:
          tolerations:
          - key: "key"
            operator: "Equal"
            value: "value"
            effect: "NoSchedule"
        longhornUI:
          tolerations:
          - key: "key"
            operator: "Equal"
            value: "value"
            effect: "NoSchedule"
    • 如果您使用 kubectl 来应用 部署 YAML 安装 Longhorn,您需要修改 Longhorn Manager、Longhorn UI 和 Longhorn Driver Deployer 的污点容忍部分。 然后重新应用 YAML 文件。

    • 如果您使用 Helm 安装 Longhorn,您可以在 values.yaml 文件中更改 global.tolerationslonghornManager.tolerationslonghornUI.tolerationslonghornDriver.tolerations 的 Helm 值,然后运行 helm upgrade 以升级到新版本的图表。

  3. 为系统管理的组件设置污点容忍(例如,Instance Manager、Backing Image Manager、Share Manager、CSI Driver 和 Engine Image)。

    污点容忍设置可以在 Longhorn UI 的 设置  Kubernetes 污点容忍 下找到。