Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何使用GKE中的ReadWriteMany创建持久卷声明?_Kubernetes_Google Cloud Platform_Google Compute Engine_Google Kubernetes Engine - Fatal编程技术网

Kubernetes 如何使用GKE中的ReadWriteMany创建持久卷声明?

Kubernetes 如何使用GKE中的ReadWriteMany创建持久卷声明?,kubernetes,google-cloud-platform,google-compute-engine,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Google Compute Engine,Google Kubernetes Engine,通过ReadWriteMany将卷附加到多个POD来创建持久卷声明的最佳方法是什么 根据中的支持表,GCEPersistentDisk本机不支持ReadWriteMany 在GCP GKE世界工作的最佳方法是什么?我应该使用集群文件系统,比如cepfs或Glusterfs吗?有没有关于我应该使用什么产品的建议 我能够按照这里的步骤配置NFS pod部署—但是它似乎有点粗糙,增加了另一层复杂性。它似乎只允许一个复制副本(这是有道理的,因为磁盘不能多次装载),因此,如果pod宕机,我的持久性存储也会

通过ReadWriteMany将卷附加到多个POD来创建持久卷声明的最佳方法是什么

根据中的支持表,GCEPersistentDisk本机不支持ReadWriteMany

在GCP GKE世界工作的最佳方法是什么?我应该使用集群文件系统,比如cepfs或Glusterfs吗?有没有关于我应该使用什么产品的建议


我能够按照这里的步骤配置NFS pod部署—但是它似乎有点粗糙,增加了另一层复杂性。它似乎只允许一个复制副本(这是有道理的,因为磁盘不能多次装载),因此,如果pod宕机,我的持久性存储也会宕机。

我同意这是令人失望的,但这是使用持久性磁盘的结果,它不允许以读写方式连接多个实例

我在NFS和您描述的限制方面取得了成功

正如你所说的,你也可以使用Gluster或类似产品

一个更昂贵但管理更完善的谷歌云替代方案是云文件存储:

你的问题表明你需要NFS般的语义,但是如果你不需要,你可以考虑使用谷歌云存储。

现在可以使用。 首先创建一个文件存储实例

gcloud文件存储实例创建nfs服务器
--项目=[project\u ID]
--区域=us-central1-c
--层=标准
--文件共享=name=“vol1”,容量=1TB
--网络=名称=“默认”,保留ip范围=“10.0.0.0/29”
然后在GKE中创建一个持久卷

apiVersion: v1
kind: PersistentVolume
metadata:
  name: fileserver
spec:
  capacity:
    storage: 1T
  accessModes:
  - ReadWriteMany
  nfs:
    path: /vol1
    server: [IP_ADDRESS]
[IP_地址]在文件存储实例详细信息中提供

现在可以请求持久卷声明

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: fileserver-claim
spec:
  accessModes:
  - ReadWriteMany
  storageClassName: "fileserver"
  resources:
    requests:
      storage: 100G
最后,将卷装入吊舱中

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my container
    image: nginx:latest
    volumeMounts:
    - mountPath: /workdir
      name: mypvc
  volumes:
  - name: mypvc
    persistentVolumeClaim:
      claimName: fileserver-claim
      readOnly: false

此处详细介绍了解决方案:

谢谢。我想我会使用集群文件系统,但需要先读一点。可能是最好的选择(如果稳定的话),因为我们希望云提供商不可知。我还将测试云文件存储,因为它似乎可以为我管理NFS服务器(我更喜欢这样)。我不再使用GKE,但在我工作的时候做了一个成功的测试。也就是说,我不是这种NFS方法的最大支持者,特别是因为您必须创建具有IP地址的持久卷。我相信我面临的挑战是为n个环境编写脚本。您有一个如何实现这一点的示例吗?您可以使用terraform执行自动脚本部署:您可以使用它创建文件存储实例:。然后提供GKE簇。并为kubernetes对象提供地形:。使用terraform,您可以使用文件存储实例信息(如ip)自动发送给kubernetes。将开始在AWS的一个新项目上使用Terraform,这似乎是一个正确的决定。是否可以“拆分”1TB文件存储以用于不同的集群或部署?我注意到,在pvc上,您要求存储100GB。这到底要做什么?是否在100GB的[IP\U地址]/vol1/share1下创建共享?我是否可以创建另一个200GB的pvc,以便将其装载到[IP_ADDRESS]/vol1/share2下的另一个部署中?thanksIt可能会注意到这方面的定价。因为它开始在204美元的硬盘驱动器和758美元的SDD的人(如我)可以认为这是绝对不走,由于定价。