使用 ReadOnlyMany 访问模式初始化动态配置的共享卷
Initializing a dynamically provisioned shared volume with ReadOnlyMany access mode
我的 GKE 部署包括 N pods(可能在不同的节点上)和一个共享卷,它是 dynamically provisioned by pd.csi.storage.gke.io
并且是 GCP 中的永久磁盘。我需要在 pods 上线之前用数据初始化这个磁盘。
我的问题是我需要将 accessModes
设置为 ReadOnlyMany
并能够以只读模式将其安装到不同节点上的所有 pods,我认为这会有效使其无法以写模式挂载到 initContainer
.
这个问题有解决办法吗? Answer to this question 针对每个 pod 都安装了自己的磁盘的情况提出了一个很好的解决方案,但由于我的数据非常大,我需要在所有 pods 之间共享一个磁盘。
...I need to have one disk shared among all pods
您可以试试 Filestore。首先,您创建一个 FileStore instance and save your data on a FileStore volume. Then you install FileStore driver on your cluster. Finally you share the data with pods that needs to read the data using a PersistentVolume referring 上面的 FileStore 实例和卷。
使用 GKE 1.21 及更高版本,您可以在集群中启用 managed Filestore CSI driver。您可以为新集群启用驱动程序
gcloud container clusters create CLUSTER_NAME \
--addons=GcpFilestoreCsiDriver ...
或更新现有集群:
gcloud container clusters update CLUSTER_NAME \
--update-addons=GcpFilestoreCsiDriver=ENABLED
完成后,创建一个存储空间 class(或让平台管理员创建):
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: filestore-example
provisioner: filestore.csi.storage.gke.io
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
tier: standard
network: default
之后,您可以使用 PVC 和动态配置:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: podpvc
spec:
accessModes:
- ReadWriteMany
storageClassName: filestore-example
resources:
requests:
storage: 1Ti
我的 GKE 部署包括 N pods(可能在不同的节点上)和一个共享卷,它是 dynamically provisioned by pd.csi.storage.gke.io
并且是 GCP 中的永久磁盘。我需要在 pods 上线之前用数据初始化这个磁盘。
我的问题是我需要将 accessModes
设置为 ReadOnlyMany
并能够以只读模式将其安装到不同节点上的所有 pods,我认为这会有效使其无法以写模式挂载到 initContainer
.
这个问题有解决办法吗? Answer to this question 针对每个 pod 都安装了自己的磁盘的情况提出了一个很好的解决方案,但由于我的数据非常大,我需要在所有 pods 之间共享一个磁盘。
...I need to have one disk shared among all pods
您可以试试 Filestore。首先,您创建一个 FileStore instance and save your data on a FileStore volume. Then you install FileStore driver on your cluster. Finally you share the data with pods that needs to read the data using a PersistentVolume referring 上面的 FileStore 实例和卷。
使用 GKE 1.21 及更高版本,您可以在集群中启用 managed Filestore CSI driver。您可以为新集群启用驱动程序
gcloud container clusters create CLUSTER_NAME \
--addons=GcpFilestoreCsiDriver ...
或更新现有集群:
gcloud container clusters update CLUSTER_NAME \
--update-addons=GcpFilestoreCsiDriver=ENABLED
完成后,创建一个存储空间 class(或让平台管理员创建):
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: filestore-example
provisioner: filestore.csi.storage.gke.io
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
tier: standard
network: default
之后,您可以使用 PVC 和动态配置:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: podpvc
spec:
accessModes:
- ReadWriteMany
storageClassName: filestore-example
resources:
requests:
storage: 1Ti