麒麟信安安全容器魔方高可用部署指南:双节点MySQL复制与Keepalived配置

发布时间:2026/7/11 21:23:38
麒麟信安安全容器魔方高可用部署指南:双节点MySQL复制与Keepalived配置 麒麟信安安全容器魔方高可用部署指南双节点MySQL复制与Keepalived配置【免费下载链接】ks-scmcKylinSec security Container magic Cube (Back-end), provides streamlined, efficient and secure containers and management.项目地址: https://gitcode.com/openeuler/ks-scmc前往项目官网免费下载https://ar.openeuler.org/ar/麒麟信安安全容器魔方KylinSec security Container magic Cube简称ks-scmc是一款提供精简、高效且安全的容器及管理功能的后端解决方案。本文将详细介绍如何通过双节点MySQL主从复制与Keepalived配置实现ks-scmc的高可用部署确保服务持续稳定运行。 高可用架构概览ks-scmc的高可用部署架构主要依赖两个核心组件双节点MySQL主从复制实现数据库数据的实时同步与故障自动切换Keepalived提供虚拟IPVIP管理与节点健康检查确保服务访问的连续性架构优势 消除单点故障提升系统稳定性 自动故障转移减少人工干预 数据实时同步保障数据一致性 服务无缝切换用户无感知 环境准备服务器要求至少2台物理或虚拟机节点推荐配置4核8G内存操作系统openEuler 22.03 LTS或更高版本网络节点间网络互通建议配置双网卡软件依赖MySQL 8.0或更高版本Keepalived 2.0.10或更高版本Docker 20.10.x或更高版本前期准备克隆项目代码库git clone https://gitcode.com/openeuler/ks-scmc安装基础依赖cd ks-scmc/scripts chmod x setup_db.sh ./setup_db.sh️ 双节点MySQL主从复制配置1. 数据库初始化ks-scmc提供了数据库初始化脚本位于项目的scripts/etc/database.sql文件中。执行以下命令初始化数据库结构mysql -u root -p scripts/etc/database.sql2. 主节点配置Node A修改MySQL配置文件/etc/my.cnf添加以下配置[mysqld] server-id1 log_binmysql-bin binlog_formatrow expire_logs_days7 max_binlog_size100M binlog_do_dbks_scmc重启MySQL服务systemctl restart mysqld创建复制用户并授权CREATE USER repl% IDENTIFIED BY your_password; GRANT REPLICATION SLAVE ON *.* TO repl%; FLUSH PRIVILEGES;查看主节点状态SHOW MASTER STATUS;记录File和Position的值用于从节点配置。3. 从节点配置Node B修改MySQL配置文件/etc/my.cnf添加以下配置[mysqld] server-id2 log_binmysql-bin binlog_formatrow relay_logmysql-relay-bin log_slave_updates1 read_only1重启MySQL服务systemctl restart mysqld配置主从复制CHANGE MASTER TO MASTER_HOSTNodeA_IP, MASTER_USERrepl, MASTER_PASSWORDyour_password, MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POS154;启动从节点复制START SLAVE;检查从节点状态SHOW SLAVE STATUS\G确保Slave_IO_Running和Slave_SQL_Running均为Yes。4. 自动故障转移配置ks-scmc提供了MySQL双主复制脚本位于scripts/ha/mysql_double_master.sh。执行以下命令配置自动故障转移cd ks-scmc/scripts/ha chmod x mysql_double_master.sh ./mysql_double_master.sh --master1NodeA_IP --master2NodeB_IP --userrepl --passwordyour_password Keepalived配置1. 安装Keepalivedyum install -y keepalived2. 主节点配置Node A创建配置文件/etc/keepalived/keepalived.conf! Configuration File for keepalived global_defs { router_id LVS_DEVEL } vrrp_script chk_mysql { script /scripts/ha/check_mysql.sh interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 } track_script { chk_mysql } }3. 从节点配置Node B创建配置文件/etc/keepalived/keepalived.conf! Configuration File for keepalived global_defs { router_id LVS_DEVEL } vrrp_script chk_mysql { script /scripts/ha/check_mysql.sh interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 } track_script { chk_mysql } }4. 健康检查脚本创建MySQL健康检查脚本/scripts/ha/check_mysql.sh#!/bin/bash mysql -u root -pyour_password -e show databases; /dev/null 21 if [ $? -ne 0 ]; then systemctl stop keepalived fi添加执行权限chmod x /scripts/ha/check_mysql.sh5. 启动Keepalivedsystemctl start keepalived systemctl enable keepalived ks-scmc服务配置1. 修改配置文件编辑scripts/etc/server.toml文件更新数据库连接信息[database] type mysql host 192.168.1.100 port 3306 user root password your_password dbname ks_scmc2. 启动服务cd ks-scmc make build systemctl start ks-scmc-controller systemctl enable ks-scmc-controller 高可用测试1. 故障转移测试手动停止主节点MySQL服务观察从节点是否自动接管# 在主节点执行 systemctl stop mysqld检查虚拟IP是否漂移到从节点ip addr show eth02. 数据同步测试在新的主节点创建测试数据检查原主节点恢复后数据是否同步INSERT INTO test_table (name) VALUES (ha_test); 总结通过本文介绍的双节点MySQL主从复制与Keepalived配置您已成功实现ks-scmc的高可用部署。这种架构能够有效保障服务的持续稳定运行减少因单点故障导致的服务中断。如需进一步优化可考虑添加更多节点实现多主多从架构配置监控告警及时发现并处理异常定期备份数据防止数据丢失完整的部署脚本和配置文件可在项目的scripts/ha/目录下找到包括keepalived.shmysql_double_master.sh【免费下载链接】ks-scmcKylinSec security Container magic Cube (Back-end), provides streamlined, efficient and secure containers and management.项目地址: https://gitcode.com/openeuler/ks-scmc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考