5.12. VMware vSphere CSI Driver Operator

5.12.1. 概述

OpenShift Container Platform 可以使用 Container Storage Interface(CSI)VMDK(VMDK)卷的 VMware vSphere 驱动程序来置备持久性卷(PV)。

重要

vSphere CSI Driver Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/

在使用 CSI Operator 和驱动程序时,建议先熟悉 持久性存储配置 CSI 卷

要创建挂载到 vSphere 存储资产中的 CSI 置备持久性卷(PV),OpenShift Container Platform 在启用此功能后,默认在 openshift-cluster-csi-drivers 命名空间中安装 vSphere CSI Driver Operator 和 vSphere CSI 驱动程序。

  • vSphere CSI Driver Operator:启用后,Operator 提供了一个称为 thin-csi 的存储类,可用于创建持久性卷声明(PVC)。vSphere CSI Driver Operator 支持动态卷置备,允许按需创建存储卷,使集群管理员无需预置备存储。
  • vSphere CSI driver:这个驱动程序可让您创建并挂载 vSphere PV。
重要

OpenShift Container Platform 默认使用 in-tree (非 CSI)插件来置备 vSphere 存储。

在以后的 OpenShift Container Platform 版本中,计划使用现有树内插件置备的卷迁移到对应的 CSI 驱动程序。CSI 自动迁移应该可以无缝进行。迁移不会改变您使用所有现有 API 对象的方式,如持久性卷、持久性卷声明和存储类。有关迁移的更多信息,请参阅 CSI 自动迁移

完全迁移后,未来的 OpenShift Container Platform 版本将最终删除树内插件。

5.12.2. 关于 CSI

在过去,存储厂商一般会把存储驱动作为 Kubernetes 的一个部分提供。随着容器存储接口 (CSI) 的实现,第三方供应商可以使用标准接口来提供存储插件,而无需更改核心 Kubernetes 代码。

CSI Operators 为 OpenShift Container Platform 用户提供了存储选项,如卷快照,它无法通过 in-tree 卷插件实现。

其他资源

5.12.3. 启用 vSphere CSI Driver Operator

要启用 vSphere Container Storage Interface(CSI)Driver Operator,您必须使用 TechPreviewNoUpgrade 功能集启用功能门。

流程

  1. 通过 TechPreviewNoUpgrade 功能集启用功能门(请参阅 NodesEnabling features using feature gates)。

    重要

    在使用功能门(feature gate)启用技术预览功能后,无法关闭这些技术预览功能,并会防止集群升级。

  2. 验证集群操作器存储:

    $ oc get co storage
    NAME    VERSION                             AVAILABLE   PROGRESSING DEGRADED    SINCE
    storage 4.8.0-0.nightly-2021-04-30-201824   True        False       False       4h26m
    • AVAILABLE 应该为 "True"。
    • PROGRESSING 应该为 "False"。
    • DEGRADED 应该为 "False"。
  3. 验证 openshift-cluster-csi-drivers 命名空间中的 pod 状态,以确保它们正在运行:

    $ oc get pod -n openshift-cluster-csi-drivers
    NAME                                                    READY   STATUS  RESTARTS    AGE
    vmware-vsphere-csi-driver-controller-5646dbbf54-cnsx7   9/9     Running 0           4h29m
    vmware-vsphere-csi-driver-node-ch22q                    3/3     Running 0           4h37m
    vmware-vsphere-csi-driver-node-gfjrb                    3/3     Running 0           4h37m
    vmware-vsphere-csi-driver-node-ktlmp                    3/3     Running 0           4h37m
    vmware-vsphere-csi-driver-node-lgksl                    3/3     Running 0           4h37m
    vmware-vsphere-csi-driver-node-vb4gv                    3/3     Running 0           4h37m
    vmware-vsphere-csi-driver-operator-7c7fc474c-p544t      1/1     Running 0           4h29m
NAME                                                    READY   STATUS  RESTARTS    AGE
azure-disk-csi-driver-controller-5949bf45fd-pm4qb       11/11   Running 0           39m
azure-disk-csi-driver-node-2tcxr                        3/3     Running 0           53m
azure-disk-csi-driver-node-2xjzm                        3/3     Running 0           53m
azure-disk-csi-driver-node-6wrgk                        3/3     Running 0           53m
azure-disk-csi-driver-node-frvx2                        3/3     Running 0           53m
azure-disk-csi-driver-node-lf5kb                        3/3     Running 0           53m
azure-disk-csi-driver-node-mqdhh                        3/3     Running 0           53m
azure-disk-csi-driver-operator-7d966fc6c5-x74x5         1/1     Running 0           44m
  1. 验证是否安装了存储类:

    $ oc get storageclass
    NAME            PROVISIONER                     RECLAIMPOLICY   VOLUMEBINDINGMODE       ALLOWVOLUMEEXPANSION    AGE
    thin (default)  kubernetes.io/vsphere-volume    Delete          Immediate               false                   5h43m
    thin-csi        csi.vsphere.vmware.com          Delete          WaitForFirstConsumer    false                   4h38m 1
    1
    vSphere 存储类
NAME                        PROVISIONER                     RECLAIMPOLICY   VOLUMEBINDINGMODE       ALLOWVOLUMEEXPANSION    AGE
managed-premium (default)   kubernetes.io/azure-disk        Delete          WaitForFirstConsumer    true                    76m
managed-csi                 disk.csi.azure.com              Delete          WaitForFirstConsumer    true                    51m 1
1
Azure 存储类

5.12.4. 其他资源