mysql - 尝试在kubernetes中创建两个具有相同容量的MySQL Pod以实现高可用性

原文 标签 mysql kubernetes high-availability

我正在尝试使用相同的PVC部署两个MySQL Pod,但是当我创建第二个Pod时却出现CrashLoopBackoff状态,并在日志中显示错误:“ innoDB检查您是否没有使用相同的innodb日志的另一个mysqld进程文件”。如何解决这个错误?

最佳答案

有多种解决高可用性的方法。如果您运行的kubernetes具有可以将卷配置到不同节点(例如云中)的基础架构,并且pod /节点崩溃,那么kubernetes将在具有相同卷的其他节点上重新启动数据库。除了短暂的停机时间之外,您还将在相对较短的时间内备份​​数据库。
该卷将被安装到一个正在运行的mysql pod上,以防止并发访问导致数据损坏。 (这也是mysql在您的方案中注意到的,因为它不是为作为HA解决方案的共享存储而设计的)

如果需要更多功能,则可以使用mysql的内置复制功能来创建mysql'cluster',即使一个节点/ pod发生故障也可以使用它。在这种情况下,mysql群集的每个实例将具有一个单独的卷。查看此场景的kubernetes有状态集示例:https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/

相关文章:

javascript - 在页面加载之前加载数据AngularJS和NodeJS

php - 如何在全文搜索中处理多个搜索条件和优先级

mysql - 需要帮助构建SQL SELECT语句以获得“前10 x”

kubernetes - 如何在Kubernetes中使日志消息静音?

kubernetes - 创建挂载源路径 '/usr/share/ca-certificates/mozilla'时kubernetes集群上的gitlab-runner错误

mysql - 任何人都可以使用“限制”来帮助我

kubernetes - 如何通过Yaml将 secret 文件设置为kubernetes secret ?

mysql - 在HA环境中切换DNS的问题

docker - 如何保护普罗米修斯数据?

php - 移动检测高流量站点