Microk8s 用于 Mysql 高可用性

Microk8s 用于 Mysql 高可用性

我正在尝试使用 Microk8s Kubernetes 设置 MySQL HA 数据库。

目标是让 MySQL 在所有 3 个节点上运行,并在它们之间设置 1 个浮动 IP,并且如果任何一个节点发生故障,数据库仍可继续运行。

我已经安装了 3 个节点https://microk8s.io/high-availability,我把它们组合在一起,如果我跑的话,microk8s kubectl get no我就会得到

NAME    STATUS   ROLES    AGE     VERSION
node3   Ready    <none>   4m28s   v1.19.3-34+a56971609ff35a
node2   Ready    <none>   25m     v1.19.3-34+a56971609ff35a
node1   Ready    <none>   37m     v1.19.3-34+a56971609ff35a

我启用了仪表板,它可以在所有 3 个单独的 IP 上运行。

现在我想安装 MySQL 并让其使用浮动 IP,并将数据保存在这 3 个 IP 上。

我的问题是:

  1. 如何在 microk8s 上安装 MySQL?
  2. 如何保证数据随时可复制,且具有高可用性。
  3. 如何获得浮动IP?

谁能给我指出正确的教程或者帮助我实现这个目标?

谢谢

答案1

对于 Kubernetes 中的数据库操作,你需要一个 statefullset

此处描述了 kubernetes 项目使用的 mysql 示例设置:https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/

还有一个可能有趣的云原生毕业项目:https://vitess.io/

在 kubernetes 集群中拥有数据库(具有 HA 等)非常复杂,并且将数据库放在 kubernetes 之外也可能是一个想法:https://cloud.google.com/blog/products/databases/to-run-or-not-to-run-a-database-on-kubernetes-what-to-consider

相关内容