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

我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。
我们上一小节,介绍了什么是Opterator,今天我们就来介绍一个可以用于生产环境的Opterator:Mariadb-Opterator。为什么说它支持生产环境使用呢?一是我有这个产品的生产维护经验,二是Mariadb支持多主模式,天生就支持分布式。
[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 createdwget 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
registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.25.创建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,还有很多配置可以研究,搭建有兴趣可以下去学习。