【MySQL】k8s上部署mysql:5.7
本文档主要提供k8s部署的mysql yaml文件
·
本文档主要提供k8s部署的mysql yaml文件,这个只用于自己想要在k8s上部署mysql玩玩的朋友,别拿去生产作孽。下面顺序是先创建config-map,再创建deployment,最后才是service。
deployment文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-deployment
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: mysql
version: v1
template:
metadata:
labels:
app: mysql
version: v1
spec:
containers:
- name: mysql
image: 你的镜像仓库/mysql:5.7
volumeMounts: #指定挂载目录
- name: config-map
mountPath: "/etc/mysql/my.cnf"
subPath: my.cnf
imagePullPolicy: IfNotPresent
args:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
ports:
- containerPort: 3306
hostPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: 你的密码
volumes:
- name: config-map
configMap:
name: mysql-cm
items:
- key: my.cnf
path: my.cnf
service文件
如果集群内其他服务要访问mysql的话,只要配置mysql-service:3306就可以,如果是集群外的话得用IP:30006
apiVersion: v1
kind: Service
metadata:
name: mysql-service
namespace: default
labels:
app: mysql-service
spec:
type: NodePort
ports:
- port: 3306 #服务监听端口号
name: http
targetPort: 3306 #转发到Pod的端口号
nodePort: 30006 #宿主机对外端口
protocol: TCP
selector:
app: mysql
version: v1
config-map文件
这里的配置文件是我自己使用的,要改什么可以自己再去修改
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-cm
data:
my.cnf: |
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld]
## 同一局域网内注意要唯一
server-id=001
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
gtid_mode=on
enforce_gtid_consistency=on
relay-log=relay-log.log
binlog_format=ROW
#MySQL5.7可以不启用此参数,5.7版本使用了gtid_executed表记录同步复制的信息,避免两次写入relay-log和binlog,降低了从库磁盘I/O
#log_slave_updates=true
master_info_repository=TABLE
relay_log_info_repository=TABLE
sync_master_info=1
slave_parallel_workers=2
binlog_checksum=CRC32
master_verify_checksum=1
slave_sql_verify_checksum=1
binlog_rows_query_log_events=1
#replicate_do_db=tt
#MySQL5.7新增加的值,配置基于表的组提交并行复制,默认值为database(基于库进行多线程复制,MySQL5.6是基于库的方式进行多线程方式复制)建议改为logical_clock,基于表的组方式复制,提高复制的效率
slave_parallel_type=logical_clock
#开启通用查询日志
general_log=1
#设置通用日志的输出格式为文件和表
log_output=FILE,TABLE
通过kubectl get deployment | grep msyql
可以看到创建的mysql deployment
更多推荐
已为社区贡献3条内容
所有评论(0)