第 5 章 更新后配置更改
在某些情况下,更新后还需要额外的配置步骤,以确保所有功能都能按预期工作。
5.1. 由本地存储支持的集群更新后配置
在 Red Hat OpenShift Container Platform 4.6 及之后,Local Storage operator 提供了新的自定义资源类型来管理本地存储:
-
LocalVolumeDiscovery
-
LocalVolumeSet
这些资源类型不会作为之前版本更新的一部分自动处理,必须手动创建。
5.1.1. 使用命令行创建 LocalVolumeDiscovery 自定义资源
创建 LocalVolumeDiscovery
自定义资源,以确保设备管理用户界面可以发现本地设备的状态,并提供有关集群节点中可用设备的信息。
先决条件
- 对 OpenShift Container Platform 集群的管理访问权限。
流程
更改到安装有 Local Storage operator 的项目。
$ oc project local-storage-project
将 local-storage-project 替换为 Local Storage 项目的名称。
在版本 4.5 及更早版本中,默认本地存储项目的名称为
local-storage
。在版本 4.6 及更新的版本中,默认本地存储项目的名称为openshift-local-storage
。定义
LocalVolumeDiscovery
自定义资源。例如,在
local-volume-discovery.yaml
文件中定义以下内容:apiVersion: local.storage.openshift.io/v1alpha1 kind: LocalVolumeDiscovery metadata: name: auto-discover-devices spec: nodeSelector: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - worker1.example.com - worker2.example.com - worker3.example.com
创建
LocalVolumeDiscovery
自定义资源。$ oc create -f local-volume-discovery.yaml
验证步骤
- 登录 OpenShift Web 控制台。
- 点 Compute → Node,然后点击节点的名称。
- 点击 Disks 选项卡,检查您是否可以看到该节点上可用的设备。
5.1.2. 使用命令行创建 LocalVolumeSet 自定义资源
创建 LocalVolumeSet
自定义资源,根据您指定的条件自动将某些存储设备置备为持久性卷。对于任何符合 nodeSelector
条件的节点中的 deviceInclusionSpec
条件的设备都会创建持久性卷。
先决条件
- 对 OpenShift Container Platform 集群的管理访问权限。
流程
在
local-volume-set.yaml
文件中定义LocalVolumeSet
自定义资源。apiVersion: local.storage.openshift.io/v1alpha1 kind: LocalVolumeSet metadata: name: localblock spec: nodeSelector: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - worker1.example.com - worker2.example.com - worker3.example.com storageClassName: localblock volumeMode: Block maxDeviceCount: 10 # optional, limit devices provisioned per node deviceInclusionSpec: deviceTypes: # list of types to allow - disk - part # omit this to use only whole devices deviceMechanicalProperty: - NonRotational minSize: 100Gi # optional, minimum size of device to allow maxSize: 100Ti # optional, maximum size of device to allow models: # (optional) list of models to allow - SAMSUNG - Crucial_CT525MX3 vendors: # (optional) list of device vendors to allow - ATA - ST2000LM
以上定义从 worker
1、worker
32
和 worker节点选择特定类型的非轮转设备上的整个磁盘或分区,这些分区的大小为 100 GB 到 100
TB。创建本地块存储
类,并从发现的设备置备持久性卷。重要为
minSize
选择一个适当的值,以确保未选择系统分区。创建
LocalVolumeSet
。$ oc create -f local-volume-set.yaml
验证步骤
使用以下命令,跟踪与
deviceInclusionSpec
匹配的设备的持久性卷置备。调配持久卷可能需要几分钟时间。$ oc describe localvolumeset localblock [...] Status: Conditions: Last Transition Time: 2020-11-17T05:03:32Z Message: DiskMaker: Available, LocalProvisioner: Available Status: True Type: DaemonSetsAvailable Last Transition Time: 2020-11-17T05:03:34Z Message: Operator reconciled successfully. Status: True Type: Available Observed Generation: 1 Total Provisioned Device Count: 4 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Discovered 2m30s (x4 localvolumeset- ip-10-0-147-124.us-east- NewDevice over 2m30s) symlink-controller 2.compute.internal - found possible matching disk, waiting 1m to claim Normal FoundMatch 89s (x4 localvolumeset- ip-10-0-147-124.us-east- ingDisk over 89s) symlink-controller 2.compute.internal - symlinking matching disk
验证调配的持久卷的状态。
$ oc get pv ACCESS RECLAIM STORAGE NAME CAPACITY MODES POLICY STATUS CLASS AGE local-pv- 500Gi RWO Delete Available localblock 7m48s 3584969f local-pv- 500Gi RWO Delete Available localblock 7m48s 3aee84fa local-pv- 500Gi RWO Delete Available localblock 7m48s 644d09ac local-pv- 500Gi RWO Delete Available localblock 7m48s c73cee1
5.1.3. 添加注解
从以前的版本升级到 OpenShift Container Storage 4.6 时,使用此流程为存储集群添加注解,以通过用户界面启用替换失败存储设备。
流程
- 登录 OpenShift Container Platform Web 控制台。
- 点 Home → Search。
- 在 Resources 中搜索 StorageCluster 并点击它。
-
在
ocs-storagecluster
旁边,点 Action 菜单 (⋮) → Edit annotations。 -
为 KEY 和 VALUE 添加
cluster.ocs.openshift.io/local-devices
和true
。 - 点 Save。