首页 > 数据库 >helm部署mysql

helm部署mysql

时间:2022-11-23 20:31:34浏览次数:67  
标签:红框 部署 mysql 文件夹 MySql helm

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

关于helm部署mysql

  • 如果您的kubernetes已有helm,那么部署mysql的步骤可用helm来简化,原先需要自己动手配置的deployment和service都已集成在chart中,今天就来实战通过helm部署mysql,并且将之前遇到的问题和解决方法列出来;

环境信息

  1. 硬件:三台CentOS 7.7服务器
  2. kubernetes:1.15
  3. helm:2.16.1
  4. mysql:5.7.14

关于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 ,连接和验证操作如下图所示: 在这里插入图片描述

欢迎关注51CTO博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

标签:红框,部署,mysql,文件夹,MySql,helm
From: https://blog.51cto.com/zq2599/5881738

相关文章

  • docker-compose值mysql集群模式(MGR)
    一、之前也提过MGR的方式,局限很多,但是毕竟是集群的方式还是存在使用场景的。1、必须使用InnoDB2、每个表必须定义主键,主要用于事务冲突判断。3、必须使......
  • MySQL中用户和系统变量设置获取使用@和@@ global和session--笔记
    1、概述mysql有用户变量和系统变量,系统变量又分全局(global)和会话(session)查看set命令root@localhost:01:23[7308][(none)]>helpset;Name:'SET'Description:Syntax:......
  • Mysql:字符编码与配置文件、数据库存储引擎、创建表的完整语法、MySQL字段基本数据类
    目录字符编码与配置文件数据库存储引擎创建表的完整语法字段类型之整型严格模式字段类型之浮点型字段类型之字符类型数字的含义字段类型之枚举与集合字段类型之日期类型字......
  • MySQL数据库管理
    一、MySQL数据库管理1、库和表行(记录):用来描述一个对象的信息列(字段):用来描述对象的一个属性2、常用的数据类型int:整型float:单精度浮点4字节32位double:双精度浮点......
  • MySQL的基本数据类型及数据库存储引擎
    目录数据库存储引擎创建表的完整语法MySQL基本数据类型及常见约束条件字段类型之整型严格模式字段类型之浮点型字段类型之字符类型数字的含义字段类型之枚举及集合字段类型......
  • MySQL的字段类型(数据类型)
    MySQL的字段类型创建表的完整语法createtable表名( 字段名字段类型(数字)约束条件, 字段名字段类型(数字)约束条件, 字段名字段类型(数字)约束条件);......
  • NIFI+外部zookeeper集群部署
    NIFI+外部zookeeper集群部署 1、配置jdk环境使用rpm-qa|grepjdk指令查看服务器是否安装过jdk,这里一般用于卸载openjdk,[root@hadoop1~]#rpm-qa|grepjava 1.1、......
  • MySQL数据库基础2
    今日内容概要字符编码与配置文件数据库存储引擎创建表的完整语法MySQL字段基本数据类型今日内容详细字符编码与配置文件1.\s查看MySQL相关信息 当前用户版本编......
  • 初识MYSQL
    目录:1、表2、数据库2.1数据库管理系统2.2数据库系统2.3DBMS的工作流程3、关系型数据库4、非关系型数据库5、关系型数据与非数据库的区别6、mysql7、......
  • MySQL字符编码、存储引擎、严格模式、字段类型之浮点 字符串 枚举与集合 日期类型
    目录字符编码与配置文件数据路储存引擎创建表的完整语法字段类型之整型严格模式字段类型之浮点型字段类型之字符串类型数字的含义字段类型之枚举与集合字段类型之日期类型......