关于云计算:helm部署mysql

34次阅读

共计 1918 个字符,预计需要花费 5 分钟才能阅读完成。

如果您的 kubernetes 已有了 helm,那么部署 mysql 的步骤能够进一步简化,那些原先须要本人入手配置的 deployment 和 service 都已集成在 chart 中,明天就来实战通过 helm 部署 mysql,并且将之前遇到的问题抛出来给大家参考;

环境信息

  1. 硬件:三台 CentOS 7.7 服务器
  2. kubernetes:1.15
  3. helm:2.16.1
  4. 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

正文完
 0