我正在尝试使用相同的 PVC 部署两个 MySQL Pod,但是当我创建第二个 Pod 时,我收到 CrashLoopBackoff
状态,并在日志中显示错误:“innoDB 检查您是否还没有另一个 mysqld 进程使用相同的 innodb 日志文件”。如何解决这个错误?
最佳答案
有不同的选项来解决高可用性问题。如果您运行的 kubernetes 基础设施可以将卷配置到不同的节点(例如在云中),并且您的 pod/节点崩溃,kubernetes 将在具有相同卷的不同节点上重新启动数据库。除了短暂的停机时间之外,您还可以在相对较短的时间内使数据库恢复运行。 该卷将安装到单个正在运行的 mysql pod,以防止并发访问造成数据损坏。 (这也是 mysql 在您的场景中注意到的,因为它不是为共享存储而设计的 HA 解决方案)
如果您需要更多,您可以使用 mysql 的内置复制来创建一个 mysql“集群”,即使一个节点/pod 发生故障也可以使用该集群。在这种情况下,mysql 集群的每个实例都将有一个单独的卷。查看此场景的 kubernetes 有状态集示例:https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/
关于mysql - 尝试在 kubernetes 中创建两个具有相同卷的 MySQL Pod 以实现高可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57346744/