如果您的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的更多相关文章

  1. 在 CentOS7 上部署 MySQL 主从

    在 CentOS7 上部署 MySQL 主从 通过 SecureCRT 连接至 MySQL 主服务器: 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般 ...

  2. 2.快速部署MySQL主从复制

      1.快速部署MySQL主从复制 [root@mysql ~]# mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave ...

  3. 【Linux】Centos部署MySQL

    将CentOS部署MySQL需要本地配置环境.本地编译MySQL,耗时较长的情况,优化为编译成型MySQL并打包,推送并按配置部署. 首先需要在一台机器配置好环境,搭个YUM源,并将所需要的包取出备用 ...

  4. docker-compose部署mysql无法访问

    docker-compose部署mysql无法访问 这个问题困扰了我很久,当使用docker-compose部署mysql之后,进行容器后,使用mysql -u root -p 是可以访问的,而使用s ...

  5. 部署MySQL自动化运维工具inception+archer

    ***************************************************************************部署MySQL自动化运维工具inception+a ...

  6. docker stack 部署 mysql 5.6

    =============================================== 2018/7/1_第1次修改                       ccb_warlock === ...

  7. 打通版微社区(2):服务器部署MySql数据库 For DZ3.2

    写在前面:单独写部署MySql原因是,我这边的应用数据库都是独立存在的,数据与应用分别部署在不同的服务器.另外我也没有实际部署MySql的经验,特意写一篇日志,张记性.安装MySql参考了http:/ ...

  8. docker-compose部署mysql配置

    docker-compose部署mysql配置文件如下 version: ' services: mysql: image: mysql environment: - MYSQL_ROOT_PASSW ...

  9. Docker 部署mysql

    目录 Docker 部署mysql 步骤 1.查找 Docker Hub 上的 MySQL 镜像 2.docker pull mysql 拉取镜像 3.运行容器 4.查看容器启动情况 使用命令备注 D ...

随机推荐

  1. PAT-B1009 说反话 - 字符串反转

    1009 说反话 (20分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组 ...

  2. 替换unimrcp的VAD模块

    摘要: unimrcp vad 模块voice activity dector一直认为比较粗暴,而且unimrcp的社区也很久没有更新了.使用原始unimrcp如果只是用来做Demo演示,通过手动调整 ...

  3. laravel5Eloquent模型与数据表的创建

    下面是有关管理员模型与表的创建 生成模型时同时生成数据库迁移文件 在生成的迁移文件中添加字段 运行命令行生成数据表 命令进行混合运用 生成工厂文件,数据填充文件 工厂模型代码 数据填充文件代码 数据填 ...

  4. 18 vue 动态路由传参

    params形式 http://192.168.1.100:8080/#/infoDetailed/231 //定义路由{ path: "/infoDetailed/:newsId" ...

  5. Linux/Unix Terminal中文件/目录的颜色各代表什么意思?

    注意:console/terminal中文件目录的颜色设置是可以更改的,故环境不同颜色就可能不一样. 下面是我所用终端的颜色示例: 颜色说明: 白色:普通文件 紫色:目录 红色:有问题的链接文件 蓝绿 ...

  6. ubuntu 18.04下修改python3指向

    起因 ubuntu18.04下默认带的是python3.6,但是因为需求需要升级为python3.7 步骤 安装 sudo apt install python3.7 修改环境变量 修改默认的pyth ...

  7. 预处器的对比——Sass、LESS和Stylus

    http://www.w3cplus.com/css/sass-vs-less-vs-stylus-a-preprocessor-shootout.html

  8. 【原创】Kuberneters-HelmV3.3.1入门介绍及实践

    一.为什么需要Helm? Kubernetes目前已成为容器编排的事实标准,随着传统架构向微服务容器化架构的转变,从一个巨大的单体的应用切分为多个微服务,每个微服务可独立部署和扩展,实现了敏捷开发和快 ...

  9. Mybatis注解开发相关

    一.项目构建 1.Java项目目录结构 2.在domain包下创建User实体类 package sun.domain; import java.io.Serializable; import jav ...

  10. CSAPP =2= 信息的表示和处理

    思维导图 预计阅读时间:30min 阅读书籍 <深入理解计算机系统 第五版> 参考视频 [精校中英字幕]2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频 参考文章 ...