2.3. 可选配置


您可在安装 OpenShift 沙盒容器 Operator 后配置以下选项。

2.3.1. 置备本地块卷

您可以在 OpenShift 沙盒容器中使用本地块卷。您必须首先使用 Local Storage Operator (LSO)置备本地块卷。然后,您必须使用本地块卷启用节点来运行 OpenShift 沙盒容器工作负载。

您可以使用 Local Storage Operator (LSO)为 OpenShift 沙盒容器置备本地块卷。本地卷置备程序会在定义的资源中指定的路径上查找任何块设备。

先决条件

  • 已安装 Local Storage Operator。
  • 您有一个满足以下条件的本地磁盘:

    • 它附加到一个节点。
    • 它尚未挂载。
    • 它不包含分区。

流程

  1. 创建本地卷资源。此资源必须定义本地卷的节点和路径。

    注意

    不要在同一设备中使用不同的存储类名称。这样做可创建多个持久性卷(PV)。

    例如:Block

    apiVersion: "local.storage.openshift.io/v1"
    kind: "LocalVolume"
    metadata:
      name: "local-disks"
      namespace: "openshift-local-storage" 
    1
    
    spec:
      nodeSelector: 
    2
    
        nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
              - ip-10-0-136-143
              - ip-10-0-140-255
              - ip-10-0-144-180
      storageClassDevices:
        - storageClassName: "local-sc" 
    3
    
          forceWipeDevicesAndDestroyAllData: false 
    4
    
          volumeMode: Block
          devicePaths: 
    5
    
            - /path/to/device 
    6
    Copy to Clipboard Toggle word wrap

    1
    安装了 Local Storage Operator 的命名空间。
    2
    可选:包含附加了本地存储卷的节点列表的节点选择器。本例使用从 oc get node 获取的节点主机名。如果没有定义值,则 Local Storage Operator 会尝试在所有可用节点上查找匹配的磁盘。
    3
    创建持久性卷对象时使用的存储类的名称。
    4
    此设置定义是否调用 wipefs,它会删除分区表签名(魔法字符串),使磁盘准备好用于 Local Storage Operator 置备。除了签名外,没有其它数据会被清除。默认为 "false" (不调用 wipefs )。当在需要重新使用的磁盘中,将 forceWipeDevicesAndDestroyAllData 设置为 "true" 很有用。在这些情况下,将此字段设置为 true 可消除管理员手动擦除磁盘的需要。
    5
    包含要从中选择的本地存储设备列表的路径。在启用带有本地块设备的节点来运行 OpenShift 沙盒容器工作负载时,您必须使用此路径。
    6
    使用到 LocalVolume 资源 by-id 的文件路径替换这个值,如 /dev/disk/by-id/wwn。当置备程序已被成功部署时,会为这些本地磁盘创建 PV。
  2. 在 OpenShift Container Platform 集群中创建本地卷资源。指定您刚才创建的文件:

    $ oc apply -f <local-volume>.yaml
    Copy to Clipboard Toggle word wrap
  3. 验证置备程序是否已创建并创建了相应的守护进程集:

    $ oc get all -n openshift-local-storage
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                          READY   STATUS    RESTARTS   AGE
    pod/diskmaker-manager-9wzms                   1/1     Running   0          5m43s
    pod/diskmaker-manager-jgvjp                   1/1     Running   0          5m43s
    pod/diskmaker-manager-tbdsj                   1/1     Running   0          5m43s
    pod/local-storage-operator-7db4bd9f79-t6k87   1/1     Running   0          14m
    
    NAME                                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
    service/local-storage-operator-metrics   ClusterIP   172.30.135.36   <none>        8383/TCP,8686/TCP   14m
    
    NAME                               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/diskmaker-manager   3         3         3       3            3           <none>          5m43s
    
    NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/local-storage-operator   1/1     1            1           14m
    
    NAME                                                DESIRED   CURRENT   READY   AGE
    replicaset.apps/local-storage-operator-7db4bd9f79   1         1         1       14m
    Copy to Clipboard Toggle word wrap

    请注意 所需的 和当前的 守护进程设定进程数。所需的 数量为 0 表示标签选择器无效。

  4. 验证持久性卷是否已创建:

    $ oc get pv
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
    local-pv-1cec77cf   100Gi      RWO            Delete           Available           local-sc                88m
    local-pv-2ef7cd2a   100Gi      RWO            Delete           Available           local-sc                82m
    local-pv-3fa1c73    100Gi      RWO            Delete           Available           local-sc                48m
    Copy to Clipboard Toggle word wrap

重要

编辑 LocalVolume 对象不会更改现有的持久性卷,因为这样做可能会导致破坏性操作。

2.3.2. 启用节点使用本地块设备

您可以使用本地块设备配置节点,以便在定义的卷资源中指定的路径上运行 OpenShift 沙盒容器工作负载。

先决条件

  • 已使用 Local Storage Operator (LSO)置备块设备。

流程

  • 运行以下命令,使用本地块设备启用每个节点来运行 OpenShift 沙盒容器工作负载:

    $ oc debug node/worker-0 -- chcon -vt container_file_t /host/path/to/device
    Copy to Clipboard Toggle word wrap

    在创建本地存储资源时,/path/to/device 必须与您定义的路径相同。

    输出示例

    system_u:object_r:container_file_t:s0 /host/path/to/device
    Copy to Clipboard Toggle word wrap

2.3.3. 创建 NodeFeatureDiscovery 自定义资源

您可以创建一个 NodeFeatureDiscovery 自定义资源(CR)来定义 Node Feature Discovery (NFD) Operator 检查的配置参数,以确定 worker 节点可以支持 OpenShift 沙盒容器。

注意

要仅在您了解的所选 worker 节点上安装 kata 运行时,请将 feature.node.kubernetes.io/runtime.kata=true 标签应用到所选节点,并在 KataConfig CR 中设置 checkNodeEligibility: true

要在所有 worker 节点上安装 kata 运行时,请在 KataConfig CR 中设置 checkNodeEligibility: false

在这两种情况下,您不需要创建 NodeFeatureDiscovery CR。如果您确定节点有资格运行 OpenShift 沙盒容器,则应仅应用 feature.node.kubernetes.io/runtime.kata=true 标签。

以下流程将 feature.node.kubernetes.io/runtime.kata=true 标签应用到所有有资格的节点,并将 KataConfig 资源配置为检查节点资格。

先决条件

  • 已安装 NFD Operator。

流程

  1. 根据以下示例创建 nfd.yaml 清单文件:

    apiVersion: nfd.openshift.io/v1
    kind: NodeFeatureDiscovery
    metadata:
      name: nfd-kata
      namespace: openshift-nfd
    spec:
      workerConfig:
        configData: |
          sources:
            custom:
              - name: "feature.node.kubernetes.io/runtime.kata"
                matchOn:
                  - cpuId: ["SSE4", "VMX"]
                    loadedKMod: ["kvm", "kvm_intel"]
                  - cpuId: ["SSE4", "SVM"]
                    loadedKMod: ["kvm", "kvm_amd"]
    # ...
    Copy to Clipboard Toggle word wrap
  2. 创建 NodeFeatureDiscovery CR:

    $ oc create -f nfd.yaml
    Copy to Clipboard Toggle word wrap

    NodeFeatureDiscovery CR 将 feature.node.kubernetes.io/runtime.kata=true 标签应用到所有合格的 worker 节点。

  1. 根据以下示例创建 kata-config.yaml 清单文件:

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: example-kataconfig
    spec:
      checkNodeEligibility: true
    Copy to Clipboard Toggle word wrap
  2. 创建 KataConfig CR:

    $ oc create -f kata-config.yaml
    Copy to Clipboard Toggle word wrap

验证

  • 验证集群中是否应用了正确的标签:

    $ oc get nodes --selector='feature.node.kubernetes.io/runtime.kata=true'
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                           STATUS                     ROLES    AGE     VERSION
    compute-3.example.com          Ready                      worker   4h38m   v1.25.0
    compute-2.example.com          Ready                      worker   4h35m   v1.25.0
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat