docker swarm
This commit is contained in:
50
docker-swarm/mysql-repl-tool/README.md
Normal file
50
docker-swarm/mysql-repl-tool/README.md
Normal file
@ -0,0 +1,50 @@
|
||||
生产环境用于nacos xxl-job的专用数据库
|
||||
|
||||
|
||||
|
||||
# prod环境下 部署 附属工具类服务使用的mysql
|
||||
|
||||
env $(cat ./env_prod | xargs) envsubst < ./docker-compose.yml | docker stack deploy --compose-file - prod_tool_mysql
|
||||
|
||||
[mysqladmin]
|
||||
user=
|
||||
|
||||
[mysqld]
|
||||
skip_name_resolve
|
||||
explicit_defaults_for_timestamp
|
||||
basedir=/opt/bitnami/mysql
|
||||
port=3306
|
||||
tmpdir=/opt/bitnami/mysql/tmp
|
||||
socket=/opt/bitnami/mysql/tmp/mysql.sock
|
||||
pid_file=/opt/bitnami/mysql/tmp/mysqld.pid
|
||||
max_allowed_packet=16M
|
||||
bind_address=0.0.0.0
|
||||
log_error=/opt/bitnami/mysql/logs/mysqld.log
|
||||
slow_query_log=0
|
||||
slow_query_log_file=/opt/bitnami/mysql/logs/mysqld.log
|
||||
long_query_time=10
|
||||
character_set_server=utf8mb4
|
||||
collation_server=utf8mb4_unicode_ci
|
||||
plugin_dir=/opt/bitnami/mysql/lib/plugin
|
||||
|
||||
[client]
|
||||
port=3306
|
||||
socket=/opt/bitnami/mysql/tmp/mysql.sock
|
||||
default_character_set=utf8mb4
|
||||
plugin_dir=/opt/bitnami/mysql/lib/plugin
|
||||
|
||||
[manager]
|
||||
port=3306
|
||||
socket=/opt/bitnami/mysql/tmp/mysql.sock
|
||||
pid_file=/opt/bitnami/mysql/tmp/mysqld.pid
|
||||
|
||||
|
||||
---- 实际版本
|
||||
|
||||
[mysqld]
|
||||
max_connections=500
|
||||
max_allowed_packet=64M
|
||||
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
|
||||
log-bin=mysql-bin # 开启 binlog
|
||||
binlog-format=ROW # 选择 ROW 模式
|
||||
server_id=209
|
91
docker-swarm/mysql-repl-tool/docker-compose.yml
Normal file
91
docker-swarm/mysql-repl-tool/docker-compose.yml
Normal file
@ -0,0 +1,91 @@
|
||||
version: '3.8'
|
||||
networks:
|
||||
default:
|
||||
name: ${NAMESPACE}
|
||||
external: true
|
||||
services:
|
||||
mysql-master:
|
||||
image: docker.io/bitnami/mysql:8.0
|
||||
hostname: ${NAMESPACE}-tool-mysql-master
|
||||
ports:
|
||||
- '${NODE_PORT_MASTER}:3306'
|
||||
volumes:
|
||||
- 'mysql_repl_master_data:/bitnami/mysql/data'
|
||||
environment:
|
||||
- MYSQL_REPLICATION_MODE=master
|
||||
- MYSQL_REPLICATION_USER=repl_user
|
||||
- MYSQL_REPLICATION_PASSWORD=${MYSQL_REPLICATION_PASSWORD}
|
||||
# - MYSQL_DATABASE=my_database
|
||||
# ALLOW_EMPTY_PASSWORD is recommended only for development.
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_AUTHENTICATION_PLUGIN=mysql_native_password
|
||||
- MYSQL_ENABLE_SLOW_QUERY=0
|
||||
- MYSQL_LONG_QUERY_TIME=10
|
||||
configs:
|
||||
- source: custome_config_master
|
||||
target: /opt/bitnami/mysql/conf/my_custom.cnf
|
||||
healthcheck:
|
||||
test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh']
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 6
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints: [node.hostname == ZD-CRM2]
|
||||
mysql-slave:
|
||||
image: docker.io/bitnami/mysql:8.0
|
||||
hostname: ${NAMESPACE}-tool-mysql-slave
|
||||
ports:
|
||||
- '${NODE_PORT_SLAVE}:3306'
|
||||
volumes:
|
||||
- 'mysql_repl_slave_data:/bitnami/mysql/data'
|
||||
depends_on:
|
||||
- mysql-master
|
||||
environment:
|
||||
- MYSQL_REPLICATION_MODE=slave
|
||||
- MYSQL_REPLICATION_USER=repl_user
|
||||
- MYSQL_REPLICATION_PASSWORD=${MYSQL_REPLICATION_PASSWORD}
|
||||
# - MYSQL_DATABASE=my_database
|
||||
- MYSQL_MASTER_HOST=mysql-master
|
||||
- MYSQL_MASTER_PORT_NUMBER=3306
|
||||
- MYSQL_MASTER_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_AUTHENTICATION_PLUGIN=mysql_native_password
|
||||
- MYSQL_ENABLE_SLOW_QUERY=0
|
||||
- MYSQL_LONG_QUERY_TIME=10
|
||||
# ALLOW_EMPTY_PASSWORD is recommended only for development.
|
||||
# - ALLOW_EMPTY_PASSWORD=yes
|
||||
# In case of missing binary files on master, use `true` to reset those binary files. Creating a previous backup is recommended.
|
||||
- MYSQL_REPLICATION_SLAVE_DUMP=false
|
||||
healthcheck:
|
||||
test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh']
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 6
|
||||
configs:
|
||||
- source: custome_config_slave
|
||||
target: /opt/bitnami/mysql/conf/my_custom.cnf
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints: [node.hostname == ZD-CRM3]
|
||||
volumes:
|
||||
mysql_repl_master_data:
|
||||
driver: local
|
||||
mysql_repl_slave_data:
|
||||
driver: local
|
||||
|
||||
configs:
|
||||
custome_config_master:
|
||||
external: true
|
||||
name: ${CUSTOME_CONFIG_MASTER}
|
||||
custome_config_slave:
|
||||
external: true
|
||||
name: ${CUSTOME_CONFIG_SLAVE}
|
9
docker-swarm/mysql-repl-tool/env_prod
Normal file
9
docker-swarm/mysql-repl-tool/env_prod
Normal file
@ -0,0 +1,9 @@
|
||||
NAMESPACE=prod
|
||||
NODE_PORT_MASTER=25306
|
||||
NODE_PORT_SLAVE=25307
|
||||
MYSQL_USER=zd_tool
|
||||
MYSQL_PASSWORD=gkxl2024#@
|
||||
MYSQL_ROOT_PASSWORD=gkxl2024#@
|
||||
MYSQL_REPLICATION_PASSWORD=gkxl2024#@
|
||||
CUSTOME_CONFIG_MASTER=prod_tool_mysql_master_conf_v1
|
||||
CUSTOME_CONFIG_SLAVE=prod_tool_mysql_slave_conf_v1
|
Reference in New Issue
Block a user