$ gcloud services enable file.googleapis.com --project <my_gce_project> (1)
OpenShift Dedicated 能够使用 Google Compute Platform (GCP) Filestore 存储的容器存储接口 (CSI) 驱动程序来预配持久卷 (PV)。
要创建挂载到 GCP Filestore 存储资产的 CSI 预配的 PV,您需要在 `openshift-cluster-csi-drivers` 命名空间中安装 GCP Filestore CSI 驱动程序运算符和 GCP Filestore CSI 驱动程序。
GCP Filestore CSI 驱动程序运算符默认情况下不提供存储类,但是如果需要,您可以创建一个。GCP Filestore CSI 驱动程序运算符支持动态卷预配,允许按需创建存储卷,从而无需集群管理员预先预配存储。
GCP Filestore CSI 驱动程序使您可以创建和挂载 GCP Filestore PV。
存储供应商传统上将存储驱动程序作为 Kubernetes 的一部分提供。随着容器存储接口 (CSI) 的实现,第三方提供商可以使用标准接口交付存储插件,而无需更改核心 Kubernetes 代码。
CSI 运算符为 OpenShift Dedicated 用户提供了诸如卷快照之类的存储选项,而这些选项在树内卷插件中是不可能的。
Google Compute Platform (GCP) Filestore 容器存储接口 (CSI) 驱动程序运算符在 OpenShift Dedicated 中默认未安装。请使用以下步骤在您的集群中安装 GCP Filestore CSI 驱动程序运算符。
访问 OpenShift Dedicated Web 控制台。
要从 Web 控制台安装 GCP Filestore CSI 驱动程序运算符
登录到OpenShift 集群管理器。
选择您的集群。
单击**打开控制台**并使用您的凭据登录。
通过运行以下命令在 GCE 项目中启用 Filestore API
$ gcloud services enable file.googleapis.com --project <my_gce_project> (1)
1 | 将<my_gce_project> 替换为您的 Google Cloud 项目。 |
您也可以使用 Google Cloud Web 控制台执行此操作。
安装 GCP Filestore CSI 运算符
单击**运算符** → **OperatorHub**。
在过滤器框中键入**GCP Filestore** 以查找 GCP Filestore CSI 运算符。
单击**GCP Filestore CSI 驱动程序运算符**按钮。
在**GCP Filestore CSI 驱动程序运算符**页面上,单击**安装**。
在**安装运算符**页面上,请确保:
已选择**集群上的所有命名空间(默认)**。
**已安装命名空间**设置为**openshift-cluster-csi-drivers**。
单击**安装**。
安装完成后,GCP Filestore CSI 运算符将列在 Web 控制台的**已安装运算符**部分中。
安装 GCP Filestore CSI 驱动程序
单击**管理** → **CustomResourceDefinitions** → **ClusterCSIDriver**。
在**实例**选项卡上,单击**创建 ClusterCSIDriver**。
使用以下 YAML 文件
apiVersion: operator.openshift.io/v1
kind: ClusterCSIDriver
metadata:
name: filestore.csi.storage.gke.io
spec:
managementState: Managed
单击**创建**。
等待以下条件更改为“true”状态
GCPFilestoreDriverCredentialsRequestControllerAvailable
GCPFilestoreDriverNodeServiceControllerAvailable
GCPFilestoreDriverControllerServiceControllerAvailable
安装运算符后,您应该为 Google Compute Platform (GCP) Filestore 卷的动态预配创建存储类。
您已登录到正在运行的 OpenShift Dedicated 集群。
要创建存储类
使用以下示例 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) 网络的名称。 |
指定应在其中创建 Filestore 实例的 VPC 网络的名称。
建议指定应在其中创建 Filestore 实例的 VPC 网络。如果未指定 VPC 网络,则容器存储接口 (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”。
通常情况下,如果您销毁一个集群,OpenShift Dedicated安装程序会删除属于该集群的所有云资源。但是,由于Google Compute Platform (GCP) Filestore资源的特殊性,在某些罕见情况下,自动清理过程可能无法删除所有资源。
因此,Red Hat建议您验证卸载过程是否删除了所有集群拥有的Filestore资源。
为确保所有GCP Filestore PVC已被删除
使用GUI或CLI访问您的Google Cloud帐户。
搜索任何带有kubernetes-io-cluster-${CLUSTER_ID}=owned
标签的资源。
由于集群ID对于已删除的集群是唯一的,因此不应该有任何剩余的资源具有该集群ID。
在极少数情况下,如果仍有剩余资源,请将其删除。