分类档案:基金会
在上一篇博客中,我们了解了如何创建有状态集 MariaDB 应用。此外,我们还在本篇博客中了解了 MariaDB 中的复制工作原理。现在,我们将尝试创建一个复制的有状态集应用。本文的良好参考资料包括 Kubernetes 文档以及来自阿里云的示例。
配置复制
要复制 MariaDB 应用,我们将创建一个有状态集,它将由一个 init 容器和一个应用容器组成。
…
MariaDB 基金会依靠公共镜像向全球分发二进制文件和软件包。完整的列表可以在 https://mirmon.mariadb.org 查看。如果您想自愿成为镜像提供者,请查看 https://mariadb.com/kb/en/mirror-sites-for-mariadb/。
我们的下载页面会为您自动推荐一个镜像来下载我们的二进制文件。存储库配置工具也是如此;请参见 https://mariadb.org.cn/download。
这篇博文的目的是向您介绍一个我们自 2021 年 12 月以来一直在测试的新系统,我们认为它现在已准备好供公众采用。
…
在本博客中,我们将演示如何使用二进制日志(一种创建二进制日志文件和包含数据库所有更改(包括数据和结构)记录的索引的方法),将一个运行在 Docker 容器中的 MariaDB 数据库(我们称其为主库)复制到一个或多个运行在 Docker 容器中的 MariaDB 服务器(我们称其为副本)。您可以在这里找到关于复制工作原理的概述,并可以在这里找到如何设置复制。一个示例可以在这个 GitHub 脚本中找到。
…
在上一篇博客中,我们创建了一个无状态应用,使用 K8s 资源 Deployment 进行部署。这允许复制应用,但在 Pod 重启时数据会丢失,意味着没有数据一致性。在同一篇博客中,我们使用了 PersistentVolumeClaim 进行 PersistentVolume 的动态供应。但我们使用了适用于无状态应用的 Deployment,对于每个副本都应有自己的持久卷的有状态集应用 (Statefulset) 来说,这种方式是*不推荐的*。实现这一点的正确方法是通过 Statefulset 资源,本文将对此进行介绍。
在 K8s 中,可以创建一个有状态应用,例如数据库,它需要将数据保存到持久磁盘存储中供服务器/客户端/其他应用使用,以跟踪其状态并能够在分布式系统中进行复制和使用。
…