KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,完全开源,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。
安装组件前提:已安装k8s集群,已经安装kubesphere,并且企业空间、项目已经创建。
1、创建配置文件
首先在kubesphere上创建mysql的配置文件,用于对mysql进行一些自定义配置。
进入项目后,选择配置->配置字典,点击创建按钮,输入配置文件名称mysql.config、别名描述等;
配置字典
新增字典
数据
添加数据
[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
# 设置不区分大小写
lower_case_table_names=1
# 创建数据表时,默认使用的存储引擎
default-storage-engine=INNODB
# 附加的内存池,用来存储 InnoDB 表的内容
innodb_additional_mem_pool_size=3M
# 置提交日志的时机,若设置为 1,InnoDB 会在每次提交后将事务日志写到磁盘上
innodb_flush_log_at_trx_commit=1
# 来存储日志数据的缓存区的大小
innodb_log_buffer_size=2M
# 缓存的大小,InnoDB 使用一个缓冲池类保存索引和原始数据
innodb_buffer_pool_size=107M
# 日志文件的大小
innodb_log_file_size=54M
# 在 InnoDB 存储引擎允许的线程最大数
innodb_thread_concurrency=18
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 回收空闲连接的时间
wait_timeout = 86400
# 允许同时访问 MySQL 服务器的最大连接数。其中一个连接是保留的,留给管理员专用的
max_connections=100
# 数据库 写入的 数据包 最大值
max_allowed_packet = 512M
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 查询时的缓存大小,缓存中可以存储以前通过 SELECT 语句查询过的信息,再次查询时就可以直接从缓存中拿出信息,可以改善查询效率
query_cache_size=0
# 所有进程打开表的总数
table_cache=256
# 内存中每个临时表允许的最大大小
tmp_table_size=35M
# 缓存的最大线程数
thread_cache_size=8
# MySQL 重建索引时所允许的最大临时文件的大小
myisam_max_sort_file_size=100G
# 重建索引时的缓存大小
myisam_sort_buffer_size=69M
# 关键词的缓存大小
key_buffer_size=55M
# MyISAM 表全表扫描的缓存大小
read_buffer_size=64K
#将排序好的数据存入该缓存中
read_rnd_buffer_size=256K
#用于排序的缓存大小
sort_buffer_size=256K
#开启binlog日志
#当前为单个节点,随机设置一个ID的值
server-id=1
log-bin=mysql-bin
binlog-format=Row
# 日志存储天数
expire_logs_days=7
# 解决导入脚本时function报错问题
log_bin_trust_function_creators=1
创建保密字典
2、创建持久卷
选择存储->持久卷声明,点击创建按钮,输入配置文件名称mysql-nfs、别名描述等,点击下一步,选择存储类(需预先配置存储支持nfs,ceph等)、设置访问模式(默认ReadWriteOnce)、设置卷容量,点击下一步,创建即可完成持久卷的创建。
3、创建工作负载
kubesphere对工作负载提供了三种方式:
- 无状态部署Depolyment:主要针对微服务等应用
- 有状态副本集 StatefulSet:mysql、redis等有状态且数据动态变化的服务
- 守护进程集 DaemonSet:日志收集器应用
选择应用负载->应用负载,这里我们选择有状态副本集,点击创建,输入名称、别名、描述等,下一步,在容器组设置界面设置副本数量,容器信息,环境变量等;
点击添加容器,在容器设置种输入mysql,选择版本如8.4.2,依次设置资源信息、端口、环境变量等信息,点击确定,完成容器的添加。
下一步存储设置,首先添加持久卷,这里选择第二步添加的持久卷,并设置读写和挂载路径,
存储
挂载路径:/var/lib/mysql
配置文件
路径:/etc/mysql/conf.d
然后再添加配置信息,选择第一步创建的配置文件并设置读写和挂载路径,
点击下一步完成工作负载的配置。
4、创建服务
应用负载->服务,工作负载创建后默认会生成一个有状态服务,kubesphere内部可以通过DNS访问,如果需要外部访问则需要添加指定工作负载服务。
指定工作负载服务
5、连接测试
打开navcat,输入任意节点的ip和mysql外部服务的端口,点击测试,连接成功