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

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

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

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

1.准备Kubernetes集群

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

2.安装CRD

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

[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

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需要更换镜像才可以。

registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2

5.创建Mariadb集群

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

​​​​​​​​​​​​​​​​​​​​​​​​​​​​

图片

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

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

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值