假设我有一万个具有相同命名模式的存储桶,其余所有其他存储桶都具有不同的名称。如何使用通配符仅安装那些具有相同模式的存储桶?
例如: 我的桶遵循他们名字中的模式:
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 集群中安装一组特定的存储桶作为持久卷,而不是所有存储桶
如何使用通配符仅安装那些具有相同模式的存储桶?
GCSFuse(或云存储熔断器)不支持安装具有名称模式的存储桶,例如Bucket-stroage-*,但仅限全名,例如存储桶-存储-7。但是,它还支持将所有存储桶(您有权限)安装到根目录,其中任何存储桶都可以作为子目录进行访问。这称为动态安装。请参阅doc了解更多详情。
对于 GKE 中的动态挂载,您可以将存储桶名称传递为
_
。为此,请将 CSI 临时存储卷中的 spec.volumes[n].csi.volumeAttributes.bucketName 设置为 _
,或者在 CSI 持久卷中将 spec.csi.volumeHandle 设置为 _
。
注意,即使这样,存储桶仍然需要在根目录中使用其全名来引用,而不是使用模式,因为它会在第一次访问存储桶时使用其全名来挂载存储桶。但它应该比在配置中声明所有存储桶更容易。