在Web服务器的容器之间共享可写卷的理想方法是什么?

时间:2017-08-14 18:55:25

标签: containers kubernetes google-cloud-platform google-cloud-storage

有问题的应用程序是Wordpress,我需要为滚动部署/扩展目的创建副本。

如果它使用持久卷(GCP术语),它似乎无法创建同一个容器的1个实例:

The Deployment "wordpress" is invalid: spec.template.spec.volumes[0].gcePersistentDisk.readOnly: Invalid value: false: must be true for replicated pods > 1; GCE PD can only be mounted on multiple machines if it is read-only

我有什么选择?偶尔会有写入和许多读取。所有容器都可以理想地写入。我对使用网络文件系统犹豫不决,因为我不确定它们是否能为Web应用程序提供足够的性能(页面加载非常关键)。

我的一个想法是,创建一个主容器(写入和读取权限)和从属(只读权限),这可以工作 - 我只需要弄清楚所需的Kubernetes配置。

3 个答案:

答案 0 :(得分:1)

https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistent-volumes中,您可以看到一个表格,其中包含允许ReadWriteMany(您正在寻找的选项)的可能存储类。

  • AzureFile(如果您使用GCP则不适用)
  • CephFS
  • Glusterfs
  • Quobyte
  • NFS
  • PortworxVolume

我尝试的那个是NFS。我没有遇到任何问题,但我想你也应该考虑潜在的性能问题。但是,如果写作是偶然的,那么它不应该成为一个问题。

答案 1 :(得分:1)

我认为你要解决的问题是拥有wordperss媒体文件的中心位置,在这种情况下,这将是一个更好的解决方案:https://wordpress.org/plugins/gcs/

让你的kubernetes工作负载真正无状态,你可以横向扩展。

答案 2 :(得分:0)

您可以使用区域永久磁盘。它可以在RW中更多地安装到许多节点(因此是吊舱)。这些节点可以分布在一个区域内的两个区域中。区域PD可以由标准或SSD磁盘支持。请注意,截至目前(2018年9月),它们仍处于测试阶段,并且可能会受到向后不兼容的更改的影响。

在此处查看完整的规格: https://cloud.google.com/compute/docs/disks/#repds