我们如何挂载存储桶,其中存储桶的名称遵循某种模式

问题描述 投票:0回答:1

假设我有一万个具有相同命名模式的存储桶,其余所有其他存储桶都具有不同的名称。如何使用通配符仅安装那些具有相同模式的存储桶?

例如: 我的桶遵循他们名字中的模式:

bucket-stroage-1 桶存储-2 桶存储-3 桶存储-4

等等。

我想使用 GCSFuse 将所有这些存储桶挂载到我的持久卷 Yaml 中。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: gcs-fuse-csi-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 5Gi
  storageClassName: example-storage-class
  claimRef:
    namespace: NAMESPACE
    name: gcs-fuse-csi-static-pvc
  mountOptions:
    - implicit-dirs
  csi:
    driver: gcsfuse.csi.storage.gke.io
    volumeHandle: PATTERN_BUCKET_NAME-*
    volumeAttributes:
      gcsfuseLoggingSeverity: warning

可以吗?

我正在尝试在 Google Kubernetes 集群中安装一组特定的存储桶作为持久卷,而不是所有存储桶

google-cloud-storage google-kubernetes-engine mounted-volumes gcsfuse
1个回答
0
投票

如何使用通配符仅安装那些具有相同模式的存储桶?

GCSFuse(或云存储熔断器)不支持安装具有名称模式的存储桶,例如Bucket-stroage-*,但仅限全名,例如存储桶-存储-7。但是,它还支持将所有存储桶(您有权限)安装到根目录,其中任何存储桶都可以作为子目录进行访问。这称为动态安装。请参阅doc了解更多详情。

对于 GKE 中的动态挂载,您可以将存储桶名称传递为

_
。为此,请将 CSI 临时存储卷中的 spec.volumes[n].csi.volumeAttributes.bucketName 设置为
_
,或者在 CSI 持久卷中将 spec.csi.volumeHandle 设置为
_

注意,即使这样,存储桶仍然需要在根目录中使用其全名来引用,而不是使用模式,因为它会在第一次访问存储桶时使用其全名来挂载存储桶。但它应该比在配置中声明所有存储桶更容易。

© www.soinside.com 2019 - 2024. All rights reserved.