首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Kubernetes(k8s)-Mariadb-Opterator部署与使用指南

Kubernetes(k8s)-Mariadb-Opterator部署与使用指南

作者头像
运维小路
发布2025-03-20 14:21:50
发布2025-03-20 14:21:50
2800
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。

我们上一小节,介绍了什么是Opterator,今天我们就来介绍一个可以用于生产环境的Opterator:Mariadb-Opterator。为什么说它支持生产环境使用呢?一是我有这个产品的生产维护经验,二是Mariadb支持多主模式,天生就支持分布式。

1.准备Kubernetes集群

这里我们复用的是前面部署的3Master和3Node节点的集群,当然我提前安装了Helm,有需要可用去翻下我的历史文章。参考:Kubernetes(k8s)-生产高可用集群部署

2.安装CRD

这个CRD创建了比较多的自定义资源,可能需要想办法下载文件或者镜像。

代码语言:javascript
复制
[root@master01 ]# wget https://github.com/mariadb-operator/mariadb-operator/releases/download/mariadb-operator-crds-0.36.0/crds.yaml
[root@master01 ]# kubectl apply -f crds.yaml 
customresourcedefinition.apiextensions.k8s.io/backups.k8s.mariadb.com created
customresourcedefinition.apiextensions.k8s.io/connections.k8s.mariadb.com created
customresourcedefinition.apiextensions.k8s.io/databases.k8s.mariadb.com created
customresourcedefinition.apiextensions.k8s.io/grants.k8s.mariadb.com created
customresourcedefinition.apiextensions.k8s.io/mariadbs.k8s.mariadb.com created
customresourcedefinition.apiextensions.k8s.io/maxscales.k8s.mariadb.com created
customresourcedefinition.apiextensions.k8s.io/restores.k8s.mariadb.com created
customresourcedefinition.apiextensions.k8s.io/sqljobs.k8s.mariadb.com created
customresourcedefinition.apiextensions.k8s.io/users.k8s.mariadb.com created

3.安装Operator

代码语言:javascript
复制
wget https://github.com/mariadb-operator/mariadb-operator/releases/download/mariadb-operator-0.36.0/mariadb-operator-0.36.0.tgz
tar xvf  mariadb-operator-0.36.0.tgz
cd mariadb-operator
helm install mariadb ./mariadb-operator -n mariadb --create-namespace

到这里,实际上我们准备工作就已经准备完成,我们下面就是定义需要创建的集群配置,集群会自动创建。他是由我们的CRD配合Opterator控制程序自动完成。

4.准备持久化存储

1.rbac

2.deploy

3.nfs客户端

4.sc创建

参考:Kubernetes(k8s)-StorageClass案例,为什么需要准备持久化存储呢,是因为作为数据库他需要持久化存储,而且这个Opterator默认也需要使用持久化存储。

注意这里有个坑,以前的版本可用改参数完成,当前版本Kubernetes v1.32.2需要更换镜像才可以。

代码语言:javascript
复制
registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2

5.创建Mariadb集群

代码语言:javascript
复制
#这里我复用2个一样的目录,你们到时候注意区分
#这里还涉及到一个没讲过的git命令,可以直接yum install git安装
git clone  https://github.com/mariadb-operator/mariadb-operator
cd mariadb-operator
代码语言:javascript
复制
#这里主要是创建一个密码信息
[root@master01 mariadb-operator]# kubectl apply -f examples/manifests/config
secret/mariadb-auth created
configmap/mariadb created
secret/mariadb created
secret/maxscale created
secret/minio created
secret/minio-play created
[root@master01 mariadb-operator]# 
代码语言:javascript
复制
#这里是单机版
#这里需要添加sc信息,名字和前面创建的匹配上
vi examples/manifests/mariadb.yaml
  
  storage:
    size: 1Gi
    storageClassName: mariadb-sc #这行是添加的 
代码语言:javascript
复制
#这里是集群版
#这里需要添加sc信息,名字和前面创建的匹配上
vi examples/manifests/mariadb_galera.yaml 
  
  storage:
    size: 1Gi
    storageClassName: mariadb-sc #这行是添加的 
代码语言:javascript
复制
kubectl apply -f examples/manifests/mariadb.yaml
kubectl apply -f examples/manifests/mariadb_galera.yaml

当然这里还有两个问题:其中一个就是集群版需要两组PVC,其中一组会自动申请到,另外一组需要手工编辑PVC,绑定SC就可以创建成功。另外一个则是这个这个集群的服务是用的是LB类型的服务,刚好是我们前面未演示的使用metallb来搭建的,所以他的SVC的状态是异常的。由于我们这里主要讲解的opterator这个概念,所以这里也就暂时忽略。

这个也是我第一次自己完全基于开源版本搭建的,而且这个opterator,还有很多配置可以研究,搭建有兴趣可以下去学习。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.准备Kubernetes集群
  • 这里我们复用的是前面部署的3Master和3Node节点的集群,当然我提前安装了Helm,有需要可用去翻下我的历史文章。参考:Kubernetes(k8s)-生产高可用集群部署
  • 2.安装CRD
  • 这个CRD创建了比较多的自定义资源,可能需要想办法下载文件或者镜像。
  • 3.安装Operator
  • 到这里,实际上我们准备工作就已经准备完成,我们下面就是定义需要创建的集群配置,集群会自动创建。他是由我们的CRD配合Opterator控制程序自动完成。
  • 4.准备持久化存储
  • 1.rbac
  • 2.deploy
  • 3.nfs客户端
  • 4.sc创建
  • 参考:Kubernetes(k8s)-StorageClass案例,为什么需要准备持久化存储呢,是因为作为数据库他需要持久化存储,而且这个Opterator默认也需要使用持久化存储。
  • 注意这里有个坑,以前的版本可用改参数完成,当前版本Kubernetes v1.32.2需要更换镜像才可以。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档