OpenShift Container Storage is now OpenShift Data Foundation starting with version 4.9.
3.5. 在经过存储优化的 Amazon EC2 - i3en.2xlarge 实例类型上创建 OpenShift Container Storage 集群
使用这个流程在 Amazon EC2 上创建 OpenShift Container Storage 集群(存储优化 - i3en.2xlarge 实例类型)基础架构,这将:
-
使用
LocalVolumeCR 创建 PV -
创建一个新的
StorageClass
经过存储优化的 Amazon EC2 - i3en.2xlarge 实例类型包括两个 NVMe 磁盘。此流程中的示例演示了实例类型附带的两个磁盘的使用。
当您使用 Amazon EC2 I3 的临时存储时
- 使用三个可用区来降低丢失所有数据的风险。
- 限制具有 ec2:StopInstances 权限的用户数量,以避免错误地关闭实例。
不建议将 Amazon EC2 I3 的临时存储用于 OpenShift Container Storage 的持久数据,因为停止所有三个节点可能会导致数据丢失。
建议仅在以下情况下使用 Amazon EC2 I3 的临时存储:
- 云突发,数据从另一个位置复制到特定数据膨胀,但时间有限
- 开发或测试环境
使用 Local Storage Operator 在进行了存储优化的 Amazon EC2 i3en.2xlarge 实例上安装 OpenShift Container Storage 是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
先决条件
- 确保满足使用本地存储设备安装 OpenShift Container Storage 的要求部分中的所有要求。
验证 OpenShift Container Platform worker 节点是否已标记为 OpenShift Container Storage,它用作
nodeSelector。oc get nodes -l cluster.ocs.openshift.io/openshift-storage -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}'oc get nodes -l cluster.ocs.openshift.io/openshift-storage -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
ip-10-0-135-71.us-east-2.compute.internal ip-10-0-145-125.us-east-2.compute.internal ip-10-0-160-91.us-east-2.compute.internal
ip-10-0-135-71.us-east-2.compute.internal ip-10-0-145-125.us-east-2.compute.internal ip-10-0-160-91.us-east-2.compute.internalCopy to Clipboard Copied! Toggle word wrap Toggle overflow
步骤
使用
LocalVolume自定义资源 (CR) 在存储节点上创建本地持久性卷 (PV)。使用 OpenShift Storage Container 标签作为节点选择器和
by-id设备标识符的LocalVolumeCRlocal-storage- block.yaml示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 每个 Amazon EC2 I3 实例都具有两个磁盘,本例在每个节点上同时使用两个磁盘。
创建
LocalVolumeCR。oc create -f local-storage-block.yaml
$ oc create -f local-storage-block.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
localvolume.local.storage.openshift.io/local-block created
localvolume.local.storage.openshift.io/local-block createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查是否创建了 pod。
oc -n openshift-local-storage get pods
$ oc -n openshift-local-storage get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查是否创建了 PV。
您必须为三个 worker 节点上的每个本地存储设备看到一个新的 PV。请参阅查找可用存储设备部分的示例,其中显示了每个 worker 节点的两个可用存储设备,每个节点的大小为 2.3 TiB。
oc get pv
$ oc get pvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查在创建
LocalVolumeCR 时存在新的StorageClass。这个StorageClass用于在以下步骤中提供StorageClusterPVC。oc get sc | grep localblock
$ oc get sc | grep localblockCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE localblock kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 15m
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE localblock kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 15mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
StorageClusterCR,它使用localblockStorageClass 使用 Local Storage Operator 创建的 PV。使用
monDataDirHostPath和localblockStorageClass 的StorageClusterCRocs-cluster-service.yaml示例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要为确保 OSD 在节点上具有有保证的大小,
storageDeviceSet的存储大小必须指定为小于或等于节点上创建的 PV 的大小。创建
StorageClusterCR。oc create -f ocs-cluster-service.yaml
$ oc create -f ocs-cluster-service.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
storagecluster.ocs.openshift.io/ocs-cluster-service created
storagecluster.ocs.openshift.io/ocs-cluster-service createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤