4.10. 使用本地卷的持久性存储
OpenShift Container Platform 可以使用本地卷来置备持久性存储。本地持久性卷允许您使用标准持久性卷声明接口访问本地存储设备,如磁盘或分区。
无需手动将 pod 调度到节点即可使用本地卷,因为系统了解卷节点的约束。但是,本地卷仍会受到底层节点可用性的影响,而且并不适用于所有应用程序。
本地卷只能用作静态创建的持久性卷。
4.10.1. 安装 Local Storage Operator
默认情况下,OpenShift Container Platform 中不会安装 Local Storage Operator。使用以下流程来安装和配置这个 Operator,从而在集群中启用本地卷。
先决条件
- 访问 OpenShift Container Platform web 控制台或命令行 (CLI)。
流程
创建
openshift-local-storage
项目:$ oc adm new-project openshift-local-storage
可选:允许在基础架构节点上创建本地存储。
您可能希望使用 Local Storage Operator 在基础架构节点上创建卷来支持一些组件,如日志记录和监控。
您必须调整默认节点选择器,以便 Local Storage Operator 包含基础架构节点,而不只是 worker 节点。
要阻止 Local Storage Operator 继承集群范围的默认选择器,请输入以下命令:
$ oc annotate project openshift-local-storage openshift.io/node-selector=''
使用 UI
按照以下步骤,通过 web 控制台安装 Local Storage Operator:
- 登陆到 OpenShift Container Platform Web 控制台。
-
导航至 Operators
OperatorHub。 - 在过滤器框中键入 Local Storage 以查找 Local Storage Operator。
- 点击 Install。
- 在 Install Operator 页面中,选择 A specific namespace on the cluster。从下拉菜单中选择 openshift-local-storage。
- 将 Update Channel 和 Approval Strategy 的值调整为所需的值。
- 点击 Install。
完成后,Web 控制台的 Installed Operators 部分中会列出 Local Storage Operator。
使用 CLI
通过 CLI 安装 Local Storage Operator。
运行以下命令以获取 OpenShift Container Platform 的主版本和次版本。下一步中需要
channel
值。$ OC_VERSION=$(oc version -o yaml | grep openshiftVersion | \ grep -o '[0-9]*[.][0-9]*' | head -1)
创建对象 YAML 文件,以定义 Local Storage Operator 的 Operator 组和订阅,如
openshift-local-storage.yaml
:openshift-local-storage.yaml 示例
apiVersion: operators.coreos.com/v1alpha2 kind: OperatorGroup metadata: name: local-operator-group namespace: openshift-local-storage spec: targetNamespaces: - openshift-local-storage --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: local-storage-operator namespace: openshift-local-storage spec: channel: "${OC_VERSION}" installPlanApproval: Automatic 1 name: local-storage-operator source: redhat-operators sourceNamespace: openshift-marketplace
- 1
- 安装计划的用户批准策略。
输入以下命令来创建 Local Storage Operator 对象:
$ oc apply -f openshift-local-storage.yaml
在此阶段,Operator Lifecycle Manager (OLM) 已可以了解 Local Storage Operator。Operator 的 ClusterServiceVersion (CSV) 应出现在目标命名空间中,由 Operator 提供的 API 应可用于创建。
通过检查是否创建了所有 pod 和 Local Storage Operator 来验证本地存储安装:
检查是否已创建所有必需的 pod:
$ oc -n openshift-local-storage get pods
输出示例
NAME READY STATUS RESTARTS AGE local-storage-operator-746bf599c9-vlt5t 1/1 Running 0 19m
检查 ClusterServiceVersion (CSV) YAML 清单,查看
openshift-local-storage
项目中是否有 Local Storage Operator:$ oc get csvs -n openshift-local-storage
输出示例
NAME DISPLAY VERSION REPLACES PHASE local-storage-operator.4.2.26-202003230335 Local Storage 4.2.26-202003230335 Succeeded
如果通过了所有检查,则代表 Local Storage Operator 已被成功安装。