共计 1918 个字符,预计需要花费 5 分钟才能阅读完成。
如果您的 kubernetes 已有了 helm,那么部署 mysql 的步骤能够进一步简化,那些原先须要本人入手配置的 deployment 和 service 都已集成在 chart 中,明天就来实战通过 helm 部署 mysql,并且将之前遇到的问题抛出来给大家参考;
环境信息
- 硬件:三台 CentOS 7.7 服务器
- kubernetes:1.15
- helm:2.16.1
- mysql:
对于 helm
kubernetes 环境 helm 的部署和基本操作请参考《》
下载 chart 包
- 执行 helm search mysql 看看 chart 仓库有没有 mysql, 如下图,红框中就是咱们须要的 chart:
- 执行 helm fetch stable/mysql,会在当前目录生成文件 mysql-0.3.5.tgz
- 执行 tar -zxvf mysql-0.3.5.tgz,解压后生成文件夹 mysql
- 进入 mysql 文件夹,关上 values.yaml 文件,按须要进行设置
- 如下图所示,红框 1 能够抉择 mysql 镜像的 TAG,红框 2 来设置 root 账号的明码,留神明码的字符串要加双引号:
- 下图红框 1 是对存储卷容量的需要,,红框 2 是内存需要,红框 3 是 CPU 需要,请依照理论状况调整:
- 如果您想对 mysql 做更多配置,就波及到配置文件 mysql.cnf,仍然是在 values.xml 中配置,如下图红框所示,这里设置的是字符集:
- 下图红框中是 Service 的设置,可见默认类型是 CluesterIP,这个类型无奈在内部拜访,须要做批改:
- 批改后的 Service 配置如下图红框所示,类型改成了 NodePort,内部端口是 32000:
- 创立名为 test001 的 namespace:
kubectl create namespace test001
- 接下来要配置的是 msyql 数据的存储,咱们分两种状况实际来探讨;
应用本机数据卷
- 如果您是在单机上部署 kubernetes,那么 msyql 数据存储在宿主机是最简略的计划
- 在宿主机创立一个文件夹,例如 /root/k8s-mysql-data,给此文件夹读写权限
- 进入 templates 目录,关上 deployment.yaml,在文件的最开端能够看到存储的配置,如下图红框所示:
- 上图红框中的内容,批改后如下图红框所示,名为 data 的数据卷是个本地文件夹:
- 至此,配置结束,上面一节是对于网络数据卷配置的,您要是用了本地存储能够跳过下一节 ” 应用网络存储 ”,进入部署 msyql 的阶段。
应用网络存储
如果您的 kubernetes 是集群环境,举荐应用 NFS 作为 MySql 的数据存储卷,具体操作如下:
- NFS 的 server 端,在 /etc/exports 文件上配置 MySql 用的 NFS 文件夹时,其属性要用 no_root_squash,如下图红框所示,不这么设置会在 MySql 启动时呈现文件夹权限问题:
- 上述配置实现后,执行命令 exportfs -arv 使配置失效
- 接下来筹备 PV,创立文件 pv-mysql.yaml,内容如下,192.168.133.142 时 NFS 的 server 地址,/usr/local/work/mysql 是方才设置的属性为 no_root_squash 的 NFS 文件夹:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql
namespace: test001
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /usr/local/work/mysql
server: 192.168.133.142
- 执行以下命令创立 PV:
kubectl create -f pv-mysql.yaml
- 查看 PV 是否创立胜利:
- 存储筹备结束,能够开始部署 MySql 了
部署 mysql
- 在 values.yaml 所在目录,执行以下操作即可部署 mysql,应用的 namespace 是 test001:
helm install --name-template mysql -f values.yaml . --namespace test001
- 查看 pod 创立是否胜利:
- 查看 service 是否失常:
- 至此,MySql 部署胜利,应用了宿主机的 32000 端口,接下来近程连贯到此 MySql 试试;
验证 mysql
在另外一台电脑上近程连贯 MySql 服务,我这里是在一台 Ubuntu 上用 mycli 工具连贯的,MySql 宿主机 IP 地址是 192.168.133.149,端口是 32000,明码 123456,连贯和验证操作如下图所示:
https://github.com/zq2599/blog_demos
正文完