美文网首页
helm部署mysql

helm部署mysql

作者: 程序员欣宸 | 来源:发表于2020-10-07 10:26 被阅读0次

如果您的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

相关文章

  • helm部署mysql

    如果您的kubernetes已有了helm,那么部署mysql的步骤可以进一步简化,那些原先需要自己动手配置的de...

  • Helm应用包管理

    Helm介绍 Helm的安装 Helm基本使用 Helm的创建与部署 Helm的升级 Helm的回滚卸载 自制ch...

  • Istio 1.2.3 安装部署

    先决条件 安装Kubernetes 安装 Helm ( 版本高于 2.10)。 部署步骤 使用 Helm 部署 I...

  • helm部署的服务如何修改配置

    关于helm部署服务 在Kubernetes上进行容器化部署时,使用helm可以简化操作,以部署Jenkins为例...

  • 29.kubernetes(k8s)笔记 Helm

    什么是 Helm 在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deploymen...

  • LFS258-LAB-helm

    安装helm 下载helm二进制文件安装 给helm创建rbac的授权 3.部署tiller服务器 4.查看部署状...

  • k8s 通过helm部署gitlab-runner

    前言 gitlab 需要提供的参数 URL+TOKEN 部署相关 安装helm 安装helm安装部署参考 通过he...

  • helm

    概念 helm-chart guide helm-k8s包管理 helm是包管理工具,用来管理和部署kuberne...

  • openshift 4.3中安装helm3并通过helm方式部署

    openshift 4.3中安装helm3并通过helm方式部署应用 简介 Helm是一个命令行界面(CLI)工具...

  • Helm部署和体验jenkins

    如何快速且简单的部署 通过helm可以快速且简单的部署多种应用,关于helm的安装和使用请参考 环境信息 本次实战...

网友评论

      本文标题:helm部署mysql

      本文链接:https://www.haomeiwen.com/subject/tqhfpktx.html