5.6. Google Compute Platform Filestore CSI Driver Operator


5.6.1. 概述

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

在使用 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.6.2. 关于 CSI

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

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

5.6.3. 安装 GCP Filestore CSI Driver Operator

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

先决条件

  • 访问 OpenShift Dedicated Web 控制台。

流程

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

  1. 登录 OpenShift Cluster Manager
  2. 选择集群。
  3. Open console,并使用您的凭证登录。
  4. 运行以下命令,在 GCE 项目中启用 Filestore API:

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

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

  5. 安装 GCP Filestore CSI Operator:

    1. Operators OperatorHub
    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 部分列出。

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

    1. Administration CustomResourceDefinitions ClusterCSIDriver
    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.6.4. 为 GCP Filestore 存储创建存储类

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

先决条件

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

流程

创建存储类:

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

    YAML 文件示例

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

    1
    对于共享 VPC,使用 connect-mode 参数设置为 PRIVATE_SERVICE_ACCESS。对于非共享 VPC,值是 DIRECT_PEERING,这是默认设置。
    2
    指定应该在其中创建 Filestore 实例的 GCP 虚拟私有云(VPC) 网络的名称。
  2. 指定在其中创建 Filestore 实例的 VPC 网络的名称。

    建议您指定应在其中创建 Filestore 实例的 VPC 网络。如果没有指定 VPC 网络,Container Storage Interface (CSI) 驱动程序会尝试在项目的默认 VPC 网络中创建实例。

    在 IPI 安装中,VPC 网络名称通常是带有后缀 "-network" 的集群名称。但是,在 UPI 安装中,VPC 网络名称可以是用户选择的任何值。

    对于一个共享的 VPC (connect-mode = PRIVATE_SERVICE_ACCESS),网络需要是一个完整的 VPC 名。例如:projects/shared-vpc-name/global/networks/gcp-filestore-network

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

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

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

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

通常,如果您销毁集群,OpenShift Dedicated 安装程序会删除属于该集群的所有云资源。但是,由于 Google Compute Platform (GCP) Filestore 资源的特殊性质,自动清理过程可能不会在一些罕见的情况下删除所有它们。

因此,红帽建议您验证所有由集群拥有的 Filestore 资源都由卸载过程删除。

流程

确保所有 GCP Filestore PVC 都已被删除:

  1. 使用 GUI 或 CLI 访问 Google Cloud 帐户。
  2. 搜索任何带有 kubernetes-io-cluster-${CLUSTER_ID}=owned 标签的资源。

    由于集群 ID 对已删除集群是唯一的,因此不应具有具有该集群 ID 的任何剩余资源。

  3. 在不太可能的情况下,删除剩余的资源。

5.6.6. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.