helm部署mysql
如果您的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
helm部署mysql的更多相关文章
- 在 CentOS7 上部署 MySQL 主从
在 CentOS7 上部署 MySQL 主从 通过 SecureCRT 连接至 MySQL 主服务器: 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般 ...
- 2.快速部署MySQL主从复制
1.快速部署MySQL主从复制 [root@mysql ~]# mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave ...
- 【Linux】Centos部署MySQL
将CentOS部署MySQL需要本地配置环境.本地编译MySQL,耗时较长的情况,优化为编译成型MySQL并打包,推送并按配置部署. 首先需要在一台机器配置好环境,搭个YUM源,并将所需要的包取出备用 ...
- docker-compose部署mysql无法访问
docker-compose部署mysql无法访问 这个问题困扰了我很久,当使用docker-compose部署mysql之后,进行容器后,使用mysql -u root -p 是可以访问的,而使用s ...
- 部署MySQL自动化运维工具inception+archer
***************************************************************************部署MySQL自动化运维工具inception+a ...
- docker stack 部署 mysql 5.6
=============================================== 2018/7/1_第1次修改 ccb_warlock === ...
- 打通版微社区(2):服务器部署MySql数据库 For DZ3.2
写在前面:单独写部署MySql原因是,我这边的应用数据库都是独立存在的,数据与应用分别部署在不同的服务器.另外我也没有实际部署MySql的经验,特意写一篇日志,张记性.安装MySql参考了http:/ ...
- docker-compose部署mysql配置
docker-compose部署mysql配置文件如下 version: ' services: mysql: image: mysql environment: - MYSQL_ROOT_PASSW ...
- Docker 部署mysql
目录 Docker 部署mysql 步骤 1.查找 Docker Hub 上的 MySQL 镜像 2.docker pull mysql 拉取镜像 3.运行容器 4.查看容器启动情况 使用命令备注 D ...
随机推荐
- samba使用过程中遇到的问题
1 环境说明 Linux系统版本:Linux version 2.6.32-431.el6.x86_64 (mockbuild@x86-023.build.eng.bos.redhat.com) (g ...
- 4300 字Python列表使用总结,用心!
今天列表专题的目录如下: 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这 ...
- NGUI List优化
腾讯是如何做 Unity 手游性能优化的 https://juejin.im/entry/5774af485bbb50005925a3b1 Unity - NGUI - 优化ScrollView的一些 ...
- Lua 5.3注册C++类相关API
int luaL_newmetatable (lua_State *L, const char *tname); 如果注册表中不存在名为tname的表,则在注册表中创建一个名为tname的表,并将这个 ...
- CVPR2020 面向密集多角度物体检测的动态修正网络(DRN)
论文链接:https://arxiv.org/pdf/2005.09973.pdf code:https://github.com/Anymake/DRN_CVPR2020 文章概要: 本文是中科院自 ...
- 简单介绍HTML5 Landmark
最近在进行无障碍相关文档翻译的时候遇到了 landmark 的概念,在网上搜了下发现没有相关的中文资料,因此写一篇博客简单介绍一下. 什么是 Landmark Landmark 是一种用来表示网页组织 ...
- 一位北漂12年IT工程师的年终总结
Hi,我叫李振良,来自河南周口农村的一个普通家庭,如今来北京已经12年了,我是那种没有大学背景.没有聪明头脑.没有人脉的奋斗青年,但我又是那种不甘于现状,一直想做最好的那个人! 2019年已悄然离去, ...
- 提交并发量的方法:Java GC tuning :Garbage collector
三色算法,高效率垃圾回收,jvm调优 Garbage collector:垃圾回收器 What garbage? 没有任何引用指向它的对象 JVM GC回收算法: 引用计数法(ReferenceCou ...
- 微信小程序-组件-视图容器
1.view 1.作用:类似 html 的 div 用来进行页面布局,具有块级盒子特性. 2.常用属性:设置view盒子点击后的状态,以及控制是否影响父盒子的点击状态 3.eg:<view ho ...
- linux6.4内核由2.6升级成3.6
安装CentOS 6.4之后,内核默认是2.6.32.由于docker需要3.0以上的内核,所以需要对内核进行升级. 1. 安装必要组件# yum -y install ncurses-devel # ...