在 KubeSphere 中部署 RadonDB MySQL Operator 和 RadonDB MySQL 集群

RadonDB MySQL 是基于 MySQL 的开源、云原生、高可用集群解决方案。通过使用 Raft 协议,RadonDB MySQL 可以快速进行故障转移,且不会丢失任何事务。

本教程演示了如何在 KubeSphere 上部署 RadonDB MySQL Operator 和 RadonDB MySQL 集群。

准备工作

动手实验

步骤 1:添加应用仓库

  1. 登录 KubeSphere 的 Web 控制台。

  2. demo 企业空间中,进入应用管理下的应用仓库页面,点击添加,弹出仓库配置对话框。

  3. 输入仓库名称和仓库 URL。

    输入 radondb-mysql-operator 作为应用仓库名称。
    输入 https://radondb.github.io/radondb-mysql-kubernetes/ 作为仓库的 URL,并点击验证以验证 URL。

  4. 在 URL 旁边呈现一个绿色的对号,验证通过后,点击确定继续。

    将仓库成功导入到 KubeSphere 之后,在列表中即可查看 RadonDB MySQL 仓库。

certify URL

步骤 2:部署 RadonDB MySQL Operator

  1. demo-project 项目中,进入应用负载下的应用页面,点击创建

  2. 在对话框中,选择从应用模板,进入应用模板页面。

  3. 从下拉菜单中选择 radondb-mysql-operator 应用仓库。

  4. 点击 mysql-operator 应用,查看和配置 RadonDB MySQL Operator 应用信息。

    配置文件选项卡,可查看和编辑 .yaml 配置文件。 在版本列框区域,可查看和选择版本号。

    operator 配置文件

  5. 点击部署,进入 mysql-operator 应用基本信息配置页面。

    确认应用名称、应用版本,以及配置部署位置。

  6. 点击下一步,进入 mysql-operator 应用配置页面。

    确认 values.yaml 配置信息,并可编辑文件修改配置。

  7. 点击部署,返回应用模版页面。

    待应用状态切换为运行中,则应用部署成功。

步骤 3:部署 RadonDB MySQL 集群

您可以任选一个 RadonDB MySQL 配置示例 部署,或自定义配置部署。

mysql_v1alpha1_mysqlcluster.yaml 模板为例,创建一个 RadonDB MySQL 集群。

  1. 在右下角工具箱中选择 Kubectl 工具,打开终端窗口。

  2. 执行以下命令,安装 RadonDB MySQL 集群。

    kubectl apply -f https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml --namespace=<project_name>
    

    备注

    未指定项目时,集群将被默认安装在 kubesphere-controls-system 项目中。若需指定项目,安装命令需添加 --namespace=<project_name>

    预期结果

    $ kubectl apply -f https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml --namespace=demo-project
    mysqlcluster.mysql.radondb.com/sample created
    
  3. 集群创建成果后,执行如下命令,可查看 RadonDB MySQL 集群节点服务。

    kubectl get statefulset,svc
    

    预期结果

    $ kubectl get statefulset,svc
    NAME                            READY   AGE
    statefulset.apps/sample-mysql   3/3     10m
    
    NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
    service/default-http-backend   ClusterIP   10.96.69.202    <none>        80/TCP     3h2m
    service/sample-follower        ClusterIP   10.96.9.162     <none>        3306/TCP   10m
    service/sample-leader          ClusterIP   10.96.255.188   <none>        3306/TCP   10m
    service/sample-mysql           ClusterIP   None            <none>        3306/TCP   10m
    

步骤 4:查看 RadonDB MySQL 集群状态

demo-project 项目中,查看集群状态。

  1. 进入应用负载下的服务页面,可查看集群服务状态。

  2. 进入应用负载下的工作负载页面,点击有状态副本集,可查看集群状态。

    进入一个有状态副本集群详情页面,点击监控标签页,可查看一定时间范围内的集群指标。

  3. 进入应用负载下的容器组页面,可查看集群节点运行状态。

  4. 进入存储下的持久卷声明页面,可查看持久卷声明,所有组件均使用了持久化存储。

    查看某个持久卷声明用量信息,以其中一个数据节点为例,可以看到当前存储的存储容量和剩余容量等监控数据。

步骤 5:访问 RadonDB MySQL

以下演示在 KubeSphere 访问 RadonDB MySQL 的方式,若需从集群外部访问 RadonDB MySQL,请参考 RadonDB MySQL 开源项目

方式一:

进入 demo-project 项目管理页面,通过容器组终端访问 RadonDB MySQL。

  1. 进入应用负载下的容器组页面。

  2. 容器组下,点击集群其中一个容器组名称,进入容器组详情页面。

  3. 资源状态容器列框下,点击 mysql 容器的终端图标。

  4. 在终端窗口中,输入命令连接集群。

访问 RadonDB MySQL

方式二:

在右下角工具箱中选择 Kubectl 工具,通过 Kubectl 工具访问 RadonDB MySQL。

执行如下命令连接集群,连接成功后即可使用 RadonDB MySQL 应用。

kubectl exec -it <pod_name> -c mysql -n <project_name> -- mysql --user=<user_name> --password=<user_password>

备注

以下示例中相应参数取值如下:

  • pod_namesample-mysql-0
  • project_namedemo-project
  • user_nameradondb_usr
  • user_passwordRadonDB@123

访问 RadonDB MySQL

通过邮件接收 KubeSphere 最新的技术博客与产品更新的通知


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。