helm部署mysql

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 在K8S部署mysql的步骤可用helm来简化,今天就来实战通过helm部署mysql,并且将之前遇到的问题和解决方法列出来

欢迎访问我的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,连接和验证操作如下图所示:

在这里插入图片描述

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL 数据安全/隐私保护
docker应用部署---MySQL的部署配置
这篇文章介绍了如何使用Docker部署MySQL数据库,包括搜索和拉取MySQL镜像、创建容器并设置端口映射和目录映射、进入容器操作MySQL,以及如何使用外部机器连接容器中的MySQL。
docker应用部署---MySQL的部署配置
|
1月前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
【10月更文挑战第1天】使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
57 3
|
1月前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库如何设置忽略表名大小写?
【10月更文挑战第1天】使用Docker部署的MySQL数据库如何设置忽略表名大小写?
123 1
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
1月前
|
存储 关系型数据库 MySQL
【MySQL精装典藏版】MySQL的安装与部署
【MySQL精装典藏版】MySQL的安装与部署
51 0
|
1月前
|
关系型数据库 MySQL 数据库
如何使用Docker部署MySQL数据库?
【10月更文挑战第1天】如何使用Docker部署MySQL数据库?
161 0
|
1月前
|
Kubernetes 关系型数据库 MySQL
k8s学习--利用helm部署应用mysql,加深helm的理解
k8s学习--利用helm部署应用mysql,加深helm的理解
166 0
|
7天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
20 4
|
5天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
14 1
|
14天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
71 1