pod 副本如何相互同步 - Kubernetes?

How pod replicas sync with each other - Kubernetes?

我有一个带有 3 个副本的 MySQL 数据库 pod。
现在我正在对一个 pod 进行一些更改(pod 数据,而不是 pod 配置),比如说我要添加一个 table.
更改将如何反映在 pod 的其他副本上?

我正在使用带有 3 个工作节点的 kubernetes v1.13。

Pods相互独立,修改一个pod不影响其他

你最好在这 3 个 pods (PVC) 中拥有公共存储,并且当 运行 数据库在 k8s 上时也考虑 STS。

根据您的配置 - 在一个 pod 中应用的更改不会反映在所有其他 pod 上。这些是孤立的资源。 使用 PersistentVolumeClaims and StatefulSets.

部署此类内容是一种很好的做法

您始终可以在 Run a Replicated Stateful Application 文档中找到包含示例和最佳实践的解释。

如果你有三台mysql台服务器pods,那么你就有3个独立的数据库。即使您是从同一个 Deployment 创建的。因此,根据您的操作,您最终可能会在集群中拥有一堆数据库。

我会创建 1 个 mysql pod,具有持久性,所以如果一个 pod 死亡,下一个将从另一个 pod 离开的地方接管。不会丢失数据。

如果您想要高可用性或故障转移副本,则需要自行管理。

一般来说,K8s不应该用于存储目的。

PODs 不同步。将它们视为独立进程。

如果您想要集群 MySQL 安装,Kubernetes 文档描述了如何使用 StatefulSet 执行此操作:https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/#deploy-mysql

本质上,您必须自己配置 MySQL 的 master/slave 个实例。