一.环境配置
k8s环境:1台master节点,3台node节点。
192.168.37.128 k8s1192.168.37.130 k8s2192.168.37.131 k8s3192.168.37.129 k8s4
二.搭建步
1、准备MySQL镜像
拉取MySQL最新的镜像
docker pull mysql
2、准备相关yaml文件
准备namespace文件
cat namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: mysqldb
准备service文件
cat service.yaml
apiVersion: v1
kind: Service
metadata:
name: mgrtest
namespace: mysqldb
spec:
clusterIP: None
selector:
name: mysql-mgr
ports:
– name: foo
port: 3306
targetPort: 3306
MySQL参数配置文件configmap(节点1)
节点1:
cat mysql-mgr-cnf-0.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-mgr-0-cnf
namespace: mysqldb
data:
mysql-mgr-0.cnf: |
[mysqld]
port = 3306
character_set_server = utf8
server_id = 1
log_bin = mysql-bin
relay-log = relay-bin
#back_log = 500
#max_connections = 3000
#wait_timeout = 5022397
interactive_timeout = 5022397
max_connect_errors = 1000
relay-log-recovery=1
#max_allowed_packet = 32M
sort_buffer_size = 4M
read_buffer_size = 4M
join_buffer_size = 8M
thread_cache_size = 64
#tmp_table_size = 256M
log_slave_updates=1
long_query_time = 1
slow_query_log = 1
skip-name-resolve
innodb_buffer_pool_size=700M
#innodb_data_file_path = ibdata1:1024M:autoextend
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 50
sync_binlog=1
master_info_repository=TABLE
relay_log_info_repository=TABLE
log_timestamps=SYSTEM
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
log_slave_updates = ON
binlog_checksum = NONE
log_slave_updates = ON
slave_parallel_type=LOGICAL_CLOCK
slave_parallel_workers=8
slave-preserve-commit-order=on
#group_replication_compression_threshold=200000
plugin_load_add=’group_replication.so’
transaction_write_set_extraction = XXHASH64
loose-group_replication_group_name=”01e5fb97-be64-41f7-bafd-3afc7a6ab555″
loose-group_replication_start_on_boot=off
loose-group_replication_local_address=”k8s2.mgrtest.mysqldb.svc.cluster.local:13306″
loose-group_replication_group_seeds=”k8s2.mgrtest.mysqldb.svc.cluster.local:13306,k8s3.mgrtest.mysqldb.svc.cluster.local:13306,k8s4.mgrtest.mysqldb.svc.cluster.local:13306″
loose-group_replication_bootstrap_group = off
loose-group_replication_ip_whitelist=’10.96.0.0/16,172.16.0.0/16,192.168.0.0/16,172.17.0.0/16,127.0.0.1/8′
report_host = k8s2.mgrtest.mysqldb.svc.cluster.local