5.18. VMware vSphere CSI Driver Operator

5.18.1. 概述

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

在使用 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 4.10 中,驱动程序版本为 2.4.1。vSphere CSI 驱动程序支持底层红帽核心操作系统发行版本支持的所有文件系统,包括 XFS 和 Ext4。有关支持的文件系统的更多信息,请参阅 可用文件系统概述
重要

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

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

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

注意

vSphere CSI 驱动程序支持动态和静态置备。当在 PV 规格中使用静态置备时,请不要在 csi.volumeAttributes 中使用键 storage.kubernetes.io/csiProvisionerIdentity,因为这个键代表动态置备的 PV。

5.18.2. 关于 CSI

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

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

5.18.3. vSphere 存储策略

vSphere CSI Operator Driver 存储类使用 vSphere 的存储策略。OpenShift Container Platform 会自动创建一个存储策略,该策略以云配置中配置的数据存储为目标:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: thin-csi
provisioner: csi.vsphere.vmware.com
parameters:
  StoragePolicyName: "$openshift-storage-policy-xxxx"
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: false
reclaimPolicy: Delete

5.18.4. ReadWriteMany vSphere 卷支持

如果底层 vSphere 环境支持 vSAN 文件服务,则 OpenShift Container Platform 安装的 vSphere Container Storage Interface (CSI) Driver Operator 支持 provisioning of ReadWriteMany (RWX) 卷。如果没有配置 vSAN 文件服务,则 ReadWriteOnce (RWO) 是唯一可用的访问模式。如果您没有配置 vSAN 文件服务,且您请求 RWX,则卷将无法被创建,并记录错误。

有关在您的环境中配置 vSAN 文件服务的更多信息,请参阅 vSAN File Service

您可以通过生成以下持久性卷声明 (PVC) 来请求 RWX 卷:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: myclaim
spec:
  resources:
    requests:
      storage: 1Gi
  accessModes:
     - ReadWriteMany
  storageClassName: thin-csi

请求 RWX 卷类型的 PVC 会导致置备 vSAN 文件服务支持的持久性卷 (PV)。

5.18.5. VMware vSphere CSI Driver Operator 要求

要安装 vSphere CSI Driver Operator,必须满足以下要求:

  • VMware vSphere 版本 6.7U3 或更高版本
  • 硬件版本 15 或更高版本的虚拟机
  • 集群中还没有安装第三方 vSphere CSI 驱动程序
重要

如果集群中存在第三方 vSphere CSI 驱动程序,OpenShift Container Platform 不会覆盖它。如果在升级到下一个 OpenShift Container Platform 主版本时继续使用第三方 vSphere CSI 驱动程序,oc CLI 会提示输入以下信息:

VSphereCSIDriverOperatorCRUpgradeable: VMwareVSphereControllerUpgradeable:
found existing unsupported csi.vsphere.vmware.com driver

以上信息告知您,在 OpenShift Container Platform 升级操作过程中,红帽不支持第三方 vSphere CSI 驱动程序。您可以选择忽略此消息并继续升级操作。

要删除第三方 CSI 驱动程序,请参阅删除第三方 vSphere CSI Driver

5.18.6. 删除第三方 vSphere CSI Operator 驱动程序

OpenShift Container Platform 4.10 包含红帽支持的 vSphere Container Storage Interface(CSI)Operator 驱动程序的内置版本。

如果您安装了由社区或其他供应商提供的 vSphere CSI 驱动程序,它被视为第三方 vSphere CSI 驱动程序,并继续升级到下一个 OpenShift Container Platform 主版本,oc CLI 会提示您以下信息:

VSphereCSIDriverOperatorCRUpgradeable: VMwareVSphereControllerUpgradeable:
found existing unsupported csi.vsphere.vmware.com driver

以上信息告知您,在 OpenShift Container Platform 升级操作过程中,红帽不支持第三方 vSphere CSI 驱动程序。您可以选择忽略此消息并继续升级操作。

此流程中介绍的说明演示了如何卸载第三方 vSphere CSI 驱动程序。有关删除驱动程序及其组件的更多详细信息,请参阅厂商的卸载指南。

重要

删除第三方 vSphere CSI 驱动程序时,您不需要删除关联的持久性卷(PV)对象。通常不会发生数据丢失,但红帽在发生数据丢失时不会承担任何责任。

从 OpenShift Container Platform 集群中删除第三方 vSphere CSI 驱动程序后,Red Hat 的 vSphere CSI Operator Driver 会自动恢复。如果您已有 vSphere CSI PV 对象,它们的生命周期现在由红帽的 vSphere CSI Operator Driver 管理。

流程

  1. 删除第三方 vSphere CSI 驱动程序(VMware vSphere Container Storage 插件)部署和 Daemonset 对象。
  2. 删除之前使用第三方 vSphere CSI 驱动程序安装的 configmap 和 secret 对象。
  3. 删除第三方 vSphere CSI 驱动程序 CSIDriver 对象:

    ~ $ oc delete CSIDriver csi.vsphere.vmware.com
    csidriver.storage.k8s.io "csi.vsphere.vmware.com" deleted

从 OpenShift Container Platform 集群中删除第三方 vSphere CSI Driver 后,Red Hat 的 vSphere CSI Operator Driver 会自动恢复,以及阻止升级到 OpenShift Container Platform 4.11 或更高版本的所有条件。如果您已有 vSphere CSI PV 对象,它们的生命周期现在由红帽的 vSphere CSI Operator Driver 管理。

5.18.7. 其他资源