GCE持久性磁盘,kubernetes和数据持久性

时间:2015-09-11 16:26:18

标签: docker rethinkdb kubernetes

我对kubernetes中pod的上下文中的gcePersistentDisk有很多乐趣:

目前,我正在尝试让我的rethinkdb群集与gcePersistentDisk挂载卷配合使用,以便于备份,数据恢复,数据完整性等。这比我原先预期的要困难一些。所以,我有几个问题:

1:我是否应该尝试将gcePersistentDisk用于此用例?或者我应该使用persistentVolumes,并使用我的主机kubelet上的文件系统/ persistentVolumes来保存数据,并且只在我进行备份时使用gcePersistentDisk?

2:[编辑:计算出]

3:很确定这只是一个错误,但是如果你试图扩展一个安装了gcePersistentDisk作为卷的pod,它就不会抛出通常的错误:

  

'ReplicationController“rethinkdb”无效:spec.template.spec.volumes.GCEPersistentDisk.ReadOnly:无效值'false':对于复制的pod,ReadOnly必须为true> 1,因为GCE PD只能安装在多台机器上,如果它是只读的。'

,而只是挂在命令行上,当我查看kublet的日志时,它会永远循环。

4:我是否完全走错了方向来解决这个问题?如果是这样,我如何从我的pod中保留DB数据?

1 个答案:

答案 0 :(得分:2)

不幸的是,我对rethinkdb一无所知,但使用gcePersistentDisk来存储数据是非常合理的。这样,如果运行您的pod的Kubernetes节点死亡,则可以在另一个节点上重新启动该pod(假设您的Kubernetes群集中有多个节点)并在数据恢复时继续访问该数据。我不认为你在这里需要使用持久卷的任何理由;作为VolumeSource的直接GCEPersistentDisk应该没问题。

我不确定为什么当你将RC缩小到0并重新回到1时你会丢失数据。我的理解是PD应该重新安装。