您的位置 首页 kubesphere

kubesphere部署 mysql(k8s)kubernetes-k8s  mysql

project-regular  用户 为  operator 角色。 来部署服务k8s  mysql

https://www.kubesphere.io/zh/learn/level_4/lesson_5/content/

基于:kubenetes 1.25.10 版本

密 .123A

部署服务要考虑的内容:

1-应用的部署方式(有状态,无状态,守护进程)

2-应用的数据挂载(数据存储, 配置文件)

3-应用的可访问性 ( 集群内,还是集群外公网)

mysql: 8.0.26 安装方式: 连接

下边是 mysql:5.7.35 安装方式

 

对应的 是 deployment,  statefulset , daemonset(守护进程)

docker mysql  镜像

https://hub.docker.com/_/mysql

先找到镜像

1、mysql容器启动

docker run -p 3306:3306 --name mysql-01 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
-d mysql:5.7 

 

-v 是数据目录挂载

-e 环境变量

2、mysql配置示例

[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
 
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

 

3、mysql部署分析

 

1-先把 mysql 的配置文件,再 k8s 上 以 configmap的方式 创建出来

配置-》 配置字典

内容如下:

[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
 
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

创建完成

2- 创建 PVC  存储 mysql数据

 

 

 

选择存储类型nfs

 

因为我机器没有配置 nfs,所以我选择:local (生产环境不建议)

 

有状态服务我们选择 单节点 读写(要存储数据)

无状态服务我们可以选择 多节点

然后 点击 “创建”

 

 

 

3- 创建应用负载:

选择有状态副本集

mysql:5.7.35

 

然后做一下资源限制( 资源预留 不要搞)

然后设置环境变量,

 

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

 

 

让容器使用宿主机的时区,不然可能就相差8小时了,数据库插入相差8小时,很奇怪的,一般都要勾上这个同步主机时区,直接批量引用,

 

 

 

接下来 添加配置文件( 一般时只读模式)

 

 

这样它会把mycnf 的配置文件, 挂载到 容器的 /etc/mysql/conf.d/ 目录中。

 

 

 

 

 

做到这一步,我们已经把mysql 部署完了,

接下来需要暴漏我们的服务,对外提供访问。

设置 MySQL 的负载均衡网络

可以在集群外访问

 

我们进入到 mysql 终端 ,

 mysql -uroot -hhis-mysql-f5cc.xiaoka -pbaimei123

目前是可以 在集群内部, 通过 名字+ 项目名称,可以访问的。

 

集群外部访问怎么配置呢?

(1) mysql 集群内部访问

 

 

 

 

 

mysql -uroot -hxiaoka-mysql.xiaoka -pbaimei123

终端可以 直接连接

 

(2)mysql 外部访问

 

 

 

 

这样配置好 外网访问后, 集群内任何一个节点(k8s 内 工作和主节点)都可以访问 这个端口

 

 

 

 

 

 

 

 

基于:kubenetes 1.25.10 版本

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章