5.14. VMware vSphere CSI Driver Operator
5.14.1. 概述
OpenShift Container Platform 可以使用 Container Storage Interface(CSI)VMDK(VMDK)卷的 VMware vSphere 驱动程序来置备持久性卷(PV)。
vSphere CSI Driver Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
在使用 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.14.2. 关于 CSI
在过去,存储厂商一般会把存储驱动作为 Kubernetes 的一个部分提供。随着容器存储接口 (CSI) 的实现,第三方供应商可以使用标准接口来提供存储插件,而无需更改核心 Kubernetes 代码。
CSI Operators 为 OpenShift Container Platform 用户提供了存储选项,如卷快照,它无法通过 in-tree 卷插件实现。
5.14.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.14.4. 启用 vSphere CSI Driver Operator
要启用 vSphere Container Storage Interface(CSI)Driver Operator,您必须使用 TechPreviewNoUpgrade
功能集启用功能门。
流程
通过
TechPreviewNoUpgrade
功能集启用功能门(请参阅 NodesEnabling features using feature gates)。 重要在使用功能门(feature gate)启用技术预览功能后,无法关闭这些技术预览功能,并会防止集群升级。
验证集群操作器存储:
$ oc get co storage
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE storage 4.9.0-0.nightly-2021-09-08-162532 True False False 4h26m
-
AVAILABLE
应该为 "True"。 -
PROGRESSING
应该为 "False"。 -
DEGRADED
应该为 "False"。
-
验证
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
验证是否安装了存储类:
$ 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 存储类