容器化 | 在 KubeSphere 中部署 MySQL 集群

本文详细介绍了如何在KubeSphere上部署RadonDBMySQL集群,包括添加应用仓库、部署RadonDBMySQLOperator以及创建高可用的MySQL集群。首先,需要启用OpenPitrix并创建必要的空间、项目和用户。然后,导入RadonDBMySQL的应用仓库,部署Operator,更新CRD版本。最后,部署MySQL集群并检查运行状态,包括服务、工作负载、存储卷等,确保集群正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程润科

数据库研发工程师,目前从事 RadonDB MySQL  Kubernetes 研发,热衷于研究数据库内核、K8s 相关技术。

张莉梅

高级文档工程师,目前负责数据库产品文档开发、维护和管理工作。

本文将演示如何在 KubeSphere[1上部署 RadonDB MySQL on Kubernetes 2.1.2,快速实现高可用的 MySQL on K8s。

| 部署准备

  • 确保已启用 OpenPitrix 系统[2]

  • 创建一个企业空间、一个项目和一个用户供本操作使用[3]

    • 安装过程中,请以 admin 身份登录控制台,在企业空间 demo 中的 demo-project 项目中进行操作

  • 确保 KubeSphere 项目网关已开启外网访问[4]

| 动手实验

1、添加应用仓库

  1. 登录 KubeSphere 的 Web 控制台。

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

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

  • 输入 radondb-mysql-operator 作为应用仓库名称。

  • 输入 https://radondb.github.io/radondb-mysql-kubernetes/ 作为仓库的 URL,并点击验证以验证 URL,在 URL 旁边呈现一个绿色的对号,验证通过后,点击确定继续。

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

4fe1436bdf77b7005623bc713b45ba06.png

图 1 添加仓库过程

2、部署 RadonDB MySQL Operator

  1. 在 demo-project 项目中,进入应用负载下的应用页面,点击部署新应用。

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

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

  4. 点击 mysql-operator 应用图标,查看和配置应用信息。

9ca0c87795735aba97f3b8fb9abee2b4.png

图 2 应用模板页面

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

b1e9537a783669f6fc6e8ad713b0198f.png

图 3 Chart 文件及基本信息

  1. 点击部署,进入 mysql-operator 应用基本信息配置页面,确认应用名称、应用版本以及配置部署位置。

  2. 点击下一步,进入 mysql-operator 应用配置页面,确认 values.yaml 配置信息,可编辑文件修改配置。

7995f68006f501dcc25156f6f3673d2b.png

图 4 应用配置页面

  1. 点击部署,返回应用模版页面。待应用状态切换为运行中,则应用部署成功。

ca9189206ef3387e5b85c3f3b042d953.png

图 5 应用部署成功

更新 Operator

若已在 KubeSphere 部署过历史版本 Operator,可以选择如下方式更新到最新版本。

  1. 在 KubeSphere 平台删除历史版本 Operator 应用。

6995c1760d5c73ab216dff5aaf8b72e1.png

图 6 删除应用

  1. 参考如上步骤,安装最新版本 Operator 。

  2. 执行如下命令更新 CRD 版本。如下示例为更新 CRD 到 2.1.2 版。

kubectl apply -f https://raw.githubusercontent.com/radondb/radondb-mysql-kubernetes/v2.1.2/charts/mysql-operator/crds/mysql.radondb.com_mysqlclusters.yaml

3、部署 RadonDB MySQL 集群

可任选一个 RadonDB MySQL 配置示例[5] 部署,或自定义配置部署。

以 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
  1. 集群创建成果后,执行如下命令,可查看 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

部署校验

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

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

b4e554668de8ffe7d4e5666b64022ec6.png

图 7 查看集群服务信息

  1. 进入 应用负载 下的 工作负载 页面,点击 有状态副本集,可查看集群状态。进入一个 有状态副本集 详情页面,点击 监控 标签页,可查看一定时间范围内的集群指标。

dd5a44bb4ae0f6c7aee38fb7f26fdba2.png

图 8 查看监控信息

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

9bf5904139830b4418846d192b12d2fe.png

图 9 查看容器组信息

  1. 进入 存储 下的 存储卷 页面,可查看存储卷。查看某个存储卷用量信息,以其中一个数据节点为例,可以看到当前存储的存储容量和剩余容量等监控数据。

20b223aadd765c1638e58316df528310.png

图 10 查看存储卷信息

至此,完成在 KubeSphere 中部署 RadonDB MySQL 集群。

参考引用

[1]:KubeSphere:https://kubesphere.com.cn

[2]:OpenPitrix:https://kubesphere.io/zh/docs/pluggable-components/app-store

[3]:创建操作:https://kubesphere.io/zh/docs/quick-start/create-workspace-and-project

[4]:项目网关:https://kubesphere.io/zh/docs/project-administration/project-gateway

[5]:配置示例:https://github.com/radondb/radondb-mysql-kubernetes/blob/main/config/samples

推荐阅读

容器化 | 基于 K8s 的新一代 MySQL 高可用架构实现方案

MySQL Operator 01 | 架构设计概览

MySQL Operator 02 | 脚手架选型 & 工程创建

关于 RadonDB

RadonDB 开源社区 是一个面向云原生、容器化的数据库开源社区。为数据库技术爱好者提供围绕主流开源数据库(MySQL、PostgreSQL、Redis、MongoDB、ClickHouse 等)的技术分享平台,并提供企业级 RadonDB 开源产品及服务。

GitHub: 

    https://github.com/radondb

网站:

    https://radondb.com

论坛:

    https://kubesphere.com.cn/forum/t/RadonDB 

微信群: 

请搜索添加群助手微信号 radondb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值