Menu Close

4.10.7. 使用 Local Storage Operator pod 的容限

污点可用于节点,以防止它们运行常规工作负载。要允许 Local Storage Operator 使用污点节点,您必须在 PodDaemonSet 定义中添加容限。这允许在这些污点节点上运行所创建的资源。

您可以通过 LocalVolume 资源把容限应用到 Local Storage Operator pod,通过节点规格把污点应用到一个节点。节点上的污点指示节点排斥所有不容许该污点的 pod。使用一个没有存在于其他 pod 上的特定污点可确保 Local Storage Operator pod 也可以在该节点上运行。

重要

污点与容限由 key、value 和 effect 组成。作为参数,它表示为 key=value:effect。运算符允许您将其中一个参数留空。

先决条件

  • 安装了 Local Storage Operator。
  • 本地磁盘已附加到带有一个污点的 OpenShift Container Platform 节点上。
  • 污点节点可以置备本地存储。

流程

配置本地卷以便在污点节点上调度:

  1. 修改定义 Pod 的 YAML 文件并添加 LocalVolume 规格,如下例所示:

      apiVersion: "local.storage.openshift.io/v1"
      kind: "LocalVolume"
      metadata:
        name: "local-disks"
        namespace: "openshift-local-storage"
      spec:
        tolerations:
          - key: localstorage 1
            operator: Equal 2
            value: "localstorage" 3
        storageClassDevices:
            - storageClassName: "localblock-sc"
              volumeMode: Block 4
              devicePaths: 5
                - /dev/xvdg
    1
    指定添加到节点的键。
    2
    指定 Equal 运算符,以要求 key/value 参数匹配。如果运算符是 Exists,系统会检查键是否存在并忽略它的值。如果运算符是 Equal,则键和值必须匹配。
    3
    指定污点节点的 local 值。
    4
    定义本地卷类型的卷模式,可以是 FilesystemBlock
    5
    包含要从中选择的本地存储设备列表的路径。
  2. 可选: 要只在污点节点上创建本地持久性卷,修改 YAML 文件并添加 LocalVolume spec,如下例所示:

    spec:
      tolerations:
        - key: node-role.kubernetes.io/master
          operator: Exists

定义的容限度将传递给生成的守护进程集,允许为包含指定污点的节点创建 diskmaker 和 provisioner pod。