使用mongodb statefulset时,数据将在所有实例之间同步

时间:2018-08-24 10:04:02

标签: kubernetes

以这种情况https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/为例(假设我们需要写入数据库)。 是否在每个mysql实例之间同步数据? 如果没有,有什么办法吗?

1 个答案:

答案 0 :(得分:2)

  

每个MySQL实例之间的数据是否都已同步?

免责声明:尽管问题标题以mongodb为中心,但该答案针对的是您的实际问题(以StatefulSet和mysql为例)。

the link you provided中的StatefulSet使一个主容器和两个只读容器保持同步。

注意:

  • 以这样的方式配置服务:任何pod都将处理读操作(主服务器和任何只读从服务器),而写操作必须通过向主pod进行独占写入来完成,因为已配置了只读从服务器(使用ConfigMap)以拒绝写入操作。
  • 在每个Pod中使用InitContainers来区分主从服务器和只读从服务器之间的配置,以及在重新启动时进行初始数据加载。
  • 每个mysql pod由两个容器组成:mysql和xtrabackup。 xtrabackup的任务是与主机同步数据。
  • 如文档中所述:

    this is not a production configuration. 
    In particular, MySQL settings remain on insecure defaults
    to keep the focus on general patterns for running stateful applications in Kubernetes.