Kubernetes AWS共享持久卷

时间:2019-04-23 03:20:11

标签: amazon-web-services kubernetes persistent-volumes kubernetes-pvc

我有以下内容:

2个Pod副本,负载均衡。 每个副本都有2个容器共享网络。

我要寻找的是共享卷...

我正在寻找一个解决方案,其中两个Pod和Pod中的每个容器可以共享具有读写访问权限的目录。因此,如果将容器1中的一个容器写入其中,容器2中的容器将能够访问新数据。

使用持久卷和PVC可以实现吗?如果是这样,我需要什么,以及有关什么FS最佳工作,静态与动态以及存储类的更多详细信息的指针。

该卷可以是S3存储桶吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

有关所有可用的卷后端,请参考https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes(您需要ReadWriteMany兼容性)

如您所见,AWSElasticBlockStore不支持它。您将需要任何支持ReadWriteMany的第三方音量提供商。

UPD:另一个答案https://stackoverflow.com/a/51216537/923620表明AWS EFS也可以使用。

答案 1 :(得分:1)

根据价格和所需的努力,有几种选择:

  1. 最简单但更昂贵的解决方案是使用EFS + NFS Persistent Volumes。但是,EFS具有严重的吞吐量限制,有关详细信息,请阅读here
  2. 您可以在内部装有NFS服务器的Pod中创建一个Pod,然后再次将NFS Persistent Volumes安装到Pod中。请参见示例here。这需要更多的手动工作,并且不完全可用。如果NFS服务器Pod发生故障,那么在重新创建NFS服务器Pod之前,您会(希望)观察到短暂的停机时间。
  3. 对于HA配置,您可以在Kubernetes上配置GlusterFS。这需要最大的努力,但可以提供极大的灵活性和速度。
  4. 尽管使用可怕的拐杖在某种程度上可以将S3安装到吊舱中,但是此解决方案具有许多缺点,并且总体而言不是生产级的。出于测试目的,您可以这样做。