kubeasz/docs/practice/mariadb_cluster.md

104 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Mariadb 数据库集群
Mariadb 是从 MySQL 衍生出来的开源关系型数据库,目前兼容 mysql 5.7 版本;它也非常流行,拥有 Google Facebook 等重要企业用户。本文档介绍使用 helm charts 方式安装 mariadb cluster仅供实践交流使用。
## 前提条件
- 已部署 k8s 集群,参考[这里](../setup/quickStart.md)
- 已部署 helm参考[这里](../guide/helm.md)
- 集群提供持久性存储,参考[这里](../setup/08-cluster-storage.md)
这里演示使用 nfs 动态存储,编辑修改 nfs 存储部分参数
``` bash
$ vi roles/cluster-storage/defaults/main.yml
storage:
# nfs server 参数
nfs:
enabled: "yes" # 启用 nfs
server: "172.16.3.86" # 设置 nfs 服务器地址
server_path: "/data/nfs" # 设置共享目录
storage_class: "nfs-db" # 定义 storage_class后面pvc要调用这个
provisioner_name: "nfs-provisioner-01" # 任意命名
# 配置完成,保存退出,运行下面命令
$ ansible-playbook /etc/ansible/roles/cluster-storage/cluster-storage.yml
# 确认nfs provisioner pod
$ kubectl get pod --all-namespaces |grep nfs
kube-system nfs-provisioner-01-88694d78c-mrn7f 1/1 Running 0 6m
```
## mariadb charts 配置修改
按照惯例,直接把 chart 下载到本地,然后把配置复制 values.yaml 出来进行修改,这样方便以后整体更新 chart安装实际使用需要修改配置文件
``` bash
$ cd /etc/ansible/manifests/mariadb-cluster
# 编辑 my-values.yaml 修改以下部分
service:
type: NodePort # 方便集群外部访问
port: 3306
nodePort:
master: 33306 # 设置主库的nodePort
slave: 33307 # 设置从库的nodePort
rootUser: # 设置 root 密码
password: test.c0m
forcePassword: true
db: # 设置初始测试数据库
user: hello
password: hello
name: hello
forcePassword: true
replication: # 设置主从复制
enabled: true
user: replicator
password: R4%forep11CAT0r
forcePassword: true
master:
affinity: {}
antiAffinity: soft
tolerations: []
persistence:
enabled: true # 启用持久化存储
mountPath: /bitnami/mariadb
storageClass: "nfs-db" # 设置使用 nfs-db 存储类
annotations: {}
accessModes:
- ReadWriteOnce
size: 5Gi # 设置存储容量
slave:
replicas: 1
affinity: {}
antiAffinity: soft
tolerations: []
persistence:
enabled: false # 从库这里没有启用持久性存储
```
## 安装
使用 helm 安装
``` bash
$ cd /etc/ansible/manifests/mariadb-cluster
$ helm install --name mariadb --namespace default -f my-values.yaml ./mariadb
```
## 验证
``` bash
$ kubectl get pod,svc | grep mariadb
pod/mariadb-mariadb-master-0 1/1 Running 0 27m
pod/mariadb-mariadb-slave-0 1/1 Running 0 29m
service/mariadb NodePort 10.68.170.168 <none> 3306:33306/TCP 29m
service/mariadb-mariadb-slave NodePort 10.68.151.95 <none> 3306:33307/TCP 29m
```