4.10. 使用本地卷的持久性存储

OpenShift Container Platform 可以使用本地卷来置备持久性存储。本地持久性卷允许您使用标准持久性卷声明接口访问本地存储设备,如磁盘或分区。

无需手动将 pod 调度到节点即可使用本地卷,因为系统了解卷节点的约束。但是,本地卷仍会受到底层节点可用性的影响,而且并不适用于所有应用程序。

注意

本地卷只能用作静态创建的持久性卷。

4.10.1. 安装 Local Storage Operator

默认情况下,OpenShift Container Platform 中不会安装 Local Storage Operator。使用以下流程来安装和配置这个 Operator,从而在集群中启用本地卷。

先决条件

  • 访问 OpenShift Container Platform web 控制台或命令行 (CLI)。

流程

  1. 创建 openshift-local-storage 项目:

    $ oc adm new-project openshift-local-storage
  2. 可选:允许在基础架构节点上创建本地存储。

    您可能希望使用 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:

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 导航至 OperatorsOperatorHub
  3. 在过滤器框中键入 Local Storage 以查找 Local Storage Operator。
  4. 点击 Install
  5. Install Operator 页面中,选择 A specific namespace on the cluster。从下拉菜单中选择 openshift-local-storage
  6. Update ChannelApproval Strategy 的值调整为所需的值。
  7. 点击 Install

完成后,Web 控制台的 Installed Operators 部分中会列出 Local Storage Operator。

使用 CLI

  1. 通过 CLI 安装 Local Storage Operator。

    1. 运行以下命令以获取 OpenShift Container Platform 的主版本和次版本。下一步中需要 channel 值。

      $ OC_VERSION=$(oc version -o yaml | grep openshiftVersion | \
          grep -o '[0-9]*[.][0-9]*' | head -1)
    2. 创建对象 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
      安装计划的用户批准策略。
  2. 输入以下命令来创建 Local Storage Operator 对象:

    $ oc apply -f openshift-local-storage.yaml

    在此阶段,Operator Lifecycle Manager (OLM) 已可以了解 Local Storage Operator。Operator 的 ClusterServiceVersion (CSV) 应出现在目标命名空间中,由 Operator 提供的 API 应可用于创建。

  3. 通过检查是否创建了所有 pod 和 Local Storage Operator 来验证本地存储安装:

    1. 检查是否已创建所有必需的 pod:

      $ oc -n openshift-local-storage get pods

      输出示例

      NAME                                      READY   STATUS    RESTARTS   AGE
      local-storage-operator-746bf599c9-vlt5t   1/1     Running   0          19m

    2. 检查 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 已被成功安装。