5.14. Google Compute Platform Filestore CSI Driver Operator

5.14.1. 概述

OpenShift Container Platform 可以使用 Google Compute Platform (GCP) 文件存储存储的 Container Storage Interface (CSI) 驱动程序置备持久性卷 (PV)。

重要

GCP Filestore CSI Driver Operator 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

在使用 CSI Operator 和驱动程序时,建议先熟悉 持久性存储配置 CSI 卷

要创建挂载到 GCP Filestore Storage 资产中的 CSI 置备 PV,您可以在 openshift-cluster-csi-drivers 命名空间中安装 GCP Filestore CSI Driver Operator 和 GCP Filestore CSI 驱动程序。

  • GCP Filestore CSI Driver Operator 默认不提供存储类,但如果需要可以创建一个。GCP Filestore CSI Driver Operator 支持动态卷置备,方法是允许按需创建存储卷,使集群管理员无需预置备存储。
  • GCP Filestore CSI 驱动程序允许您创建并挂载 GCP Filestore PV。

5.14.2. 关于 CSI

在过去,存储厂商一般会把存储驱动作为 Kubernetes 的一个部分提供。随着容器存储接口 (CSI) 的实现,第三方供应商可以使用标准接口来提供存储插件,而无需更改核心 Kubernetes 代码。

CSI Operators 为 OpenShift Container Platform 用户提供了存储选项,如卷快照,它无法通过 in-tree 卷插件实现。

5.14.3. 安装 GCP Filestore CSI Driver Operator

默认情况下,Google Compute Platform (GCP) Filestore Container Storage Interface (CSI) Driver Operator 不会在 OpenShift Container Platform 中安装。使用以下步骤在集群中安装 GCP Filestore CSI Driver Operator。

先决条件

  • 访问 OpenShift Container Platform Web 控制台。

流程

从 web 控制台安装 GCP Filestore CSI Driver Operator:

  1. 登录到 web 控制台。
  2. 运行以下命令,在 GCE 项目中启用 Filestore API:

    $ gcloud services enable file.googleapis.com  --project <my_gce_project> 1
    1
    <my_gce_project> 替换为您的 Google Cloud 项目。

    您还可以使用 Google Cloud web 控制台进行此操作。

  3. 安装 GCP Filestore CSI Operator:

    1. OperatorsOperatorHub
    2. 通过在过滤器框中输入 GCP Filestore 来查找 GCP Filestore CSI Operator。
    3. GCP Filestore CSI Driver Operator 按钮。
    4. GCP Filestore CSI Driver Operator 页面中,点 Install
    5. Install Operator 页面中,确保:

      • 选择 All namespaces on the cluster (default)
      • 安装的命名空间 被设置为 openshift-cluster-csi-drivers
    6. Install

      安装完成后,GCP Filestore CSI Operator 会在 web 控制台的 Installed Operators 部分列出。

  4. 安装 GCP Filestore CSI 驱动程序:

    1. AdministrationCustomResourceDefinitionsClusterCSIDriver
    2. Instances 选项卡上,单击 Create ClusterCSIDriver

      使用以下 YAML 文件:

      apiVersion: operator.openshift.io/v1
      kind: ClusterCSIDriver
      metadata:
          name: filestore.csi.storage.gke.io
      spec:
        managementState: Managed
    3. Create
    4. 等待以下 Conditions 变为 "true" 状态:

      • GCPFilestoreDriverCredentialsRequestControllerAvailable
      • GCPFilestoreDriverNodeServiceControllerAvailable
      • GCPFilestoreDriverControllerServiceControllerAvailable

5.14.4. 为 GCP Filestore 存储创建存储类

安装 Operator 后,您应该创建一个存储类来动态置备 Google Compute Platform (GCP) 文件存储卷。

先决条件

  • 已登陆到正在运行的 OpenShift Container Platform 集群。

流程

创建存储类:

  1. 使用以下 YAML 文件示例创建存储类:

    YAML 文件示例

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: filestore-csi
    provisioner: filestore.csi.storage.gke.io
    parameters:
      network: network-name 1
    allowVolumeExpansion: true
    volumeBindingMode: WaitForFirstConsumer

    1
    指定应该在其中创建 Filestore 实例的 GCP 虚拟私有云(VPC) 网络的名称。
  2. 指定在其中创建 Filestore 实例的 VPC 网络的名称。

    建议您指定应在其中创建 Filestore 实例的 VPC 网络。如果没有指定 VPC 网络,Container Storage Interface (CSI) 驱动程序会尝试在项目的默认 VPC 网络中创建实例。在 IPI 安装中,VPC 网络名称通常是带有后缀 "-network" 的集群名称。但是,在 UPI 安装中,VPC 网络名称可以是用户选择的任何值。

    您可以使用以下命令检查 MachineSets 对象来查找 VPC 网络名称:

    $ oc -n openshift-machine-api get machinesets -o yaml | grep "network:"
                - network: gcp-filestore-network
    (...)

    在本例中,这个集群中的 VPC 网络名称为 "gcp-filestore-network"。

5.14.5. 销毁集群和 GCP 文件存储

通常,如果您销毁集群,OpenShift Container Platform 安装程序会删除属于该集群的所有云资源。但是,当销毁集群时,Google Compute Platform (GCP) Filestore 实例不会被自动删除,因此您必须在销毁集群前手动删除使用 Filestore 存储类的所有持久性卷声明 (PVC)。

流程

删除所有 GCP Filestore PVC:

  1. 列出使用存储类 filestore-csi 创建的所有 PVC:

    $ oc get pvc -o json -A | jq -r '.items[] | select(.spec.storageClassName == "filestore-csi")
  2. 删除上一命令列出的所有 PVC:

    $ oc delete <pvc-name> 1
    1
    将 <pvc-name> 替换为您要删除的任何 PVC 的名称。

5.14.6. 其他资源