news 2026/7/11 21:23:29

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
麒麟信安安全容器魔方高可用部署指南:双节点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:提供虚拟IP(VIP)管理与节点健康检查,确保服务访问的连续性

架构优势

  • 📌 消除单点故障,提升系统稳定性
  • 📌 自动故障转移,减少人工干预
  • 📌 数据实时同步,保障数据一致性
  • 📌 服务无缝切换,用户无感知

📋 环境准备

服务器要求

  • 至少2台物理或虚拟机节点(推荐配置:4核8G内存)
  • 操作系统:openEuler 22.03 LTS或更高版本
  • 网络:节点间网络互通,建议配置双网卡

软件依赖

  • MySQL 8.0或更高版本
  • Keepalived 2.0.10或更高版本
  • Docker 20.10.x或更高版本

前期准备

  1. 克隆项目代码库:

    git clone https://gitcode.com/openeuler/ks-scmc
  2. 安装基础依赖:

    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.sql

2. 主节点配置(Node A)

修改MySQL配置文件/etc/my.cnf,添加以下配置:

[mysqld] server-id=1 log_bin=mysql-bin binlog_format=row expire_logs_days=7 max_binlog_size=100M binlog_do_db=ks_scmc

重启MySQL服务:

systemctl restart mysqld

创建复制用户并授权:

CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;

查看主节点状态:

SHOW MASTER STATUS;

记录FilePosition的值,用于从节点配置。

3. 从节点配置(Node B)

修改MySQL配置文件/etc/my.cnf,添加以下配置:

[mysqld] server-id=2 log_bin=mysql-bin binlog_format=row relay_log=mysql-relay-bin log_slave_updates=1 read_only=1

重启MySQL服务:

systemctl restart mysqld

配置主从复制:

CHANGE MASTER TO MASTER_HOST='NodeA_IP', MASTER_USER='repl', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;

启动从节点复制:

START SLAVE;

检查从节点状态:

SHOW SLAVE STATUS\G

确保Slave_IO_RunningSlave_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 --master1=NodeA_IP --master2=NodeB_IP --user=repl --password=your_password

🔄 Keepalived配置

1. 安装Keepalived

yum install -y keepalived

2. 主节点配置(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 -p'your_password' -e "show databases;" > /dev/null 2>&1 if [ $? -ne 0 ]; then systemctl stop keepalived fi

添加执行权限:

chmod +x /scripts/ha/check_mysql.sh

5. 启动Keepalived

systemctl 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_scmc"

2. 启动服务

cd ks-scmc make build systemctl start ks-scmc-controller systemctl enable ks-scmc-controller

🧪 高可用测试

1. 故障转移测试

手动停止主节点MySQL服务,观察从节点是否自动接管:

# 在主节点执行 systemctl stop mysqld

检查虚拟IP是否漂移到从节点:

ip addr show eth0

2. 数据同步测试

在新的主节点创建测试数据,检查原主节点恢复后数据是否同步:

INSERT INTO test_table (name) VALUES ('ha_test');

📝 总结

通过本文介绍的双节点MySQL主从复制与Keepalived配置,您已成功实现ks-scmc的高可用部署。这种架构能够有效保障服务的持续稳定运行,减少因单点故障导致的服务中断。

如需进一步优化,可考虑:

  • 添加更多节点,实现多主多从架构
  • 配置监控告警,及时发现并处理异常
  • 定期备份数据,防止数据丢失

完整的部署脚本和配置文件可在项目的scripts/ha/目录下找到,包括:

  • keepalived.sh
  • mysql_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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 21:23:12

Git Clone 3种认证方式对比:HTTPS/SSH/Token 在CI/CD中的配置与安全实践

Git Clone 3种认证方式对比&#xff1a;HTTPS/SSH/Token 在CI/CD中的配置与安全实践在持续集成与持续交付&#xff08;CI/CD&#xff09;流程中&#xff0c;代码仓库的克隆操作是最基础却至关重要的环节。不同的认证方式不仅影响构建效率&#xff0c;更直接关系到整个系统的安全…

作者头像 李华
网站建设 2026/7/11 21:22:26

从零搭建渗透测试沙箱:基于Apache Tomcat与Shiro漏洞的哥斯拉实战环境

1. 项目概述&#xff1a;为什么我们需要一个可控的渗透测试环境&#xff1f;在网络安全领域&#xff0c;无论是进行安全研究、漏洞复现&#xff0c;还是企业内部的红蓝对抗演练&#xff0c;一个稳定、可控且贴近实战的渗透测试环境都是至关重要的。很多新手朋友拿到一个工具&am…

作者头像 李华
网站建设 2026/7/11 21:18:58

今天发现中国知网存在bug,明明搜索界面会显示发表时间,但是点进入文献界面,下面的在线公开时间会存在偏差,有的甚至相差7年,我感觉以搜索界面的为准。——这是什么原因,大家觉得呢?——前者是纸质出版时间

今天发现中国知网存在bug,明明搜索界面会显示发表时间,但是点进入文献界面,下面的在线公开时间会存在偏差,有的甚至相差7年,我感觉以搜索界面的为准。——这是什么原因,大家觉得呢?——前者是纸质出版时间,后者是知网在线出版时间,以第一个为准。 下面的相差更大。 你…

作者头像 李华
网站建设 2026/7/11 21:16:48

为什么AI生成的单测,覆盖率看起来很高但上线还是出Bug?

说工具。市面上专注于单测生成的AI工具已经不少&#xff0c;但真正能进工程流水线的&#xff0c;目前稳定好用的主要是三条路&#xff1a; Claude Code&#xff08;命令行Agent&#xff09; Claude Code可以以整个代码目录为上下文&#xff0c;批量扫描未覆盖的方法并生成测试。…

作者头像 李华
网站建设 2026/7/11 21:15:44

面试官:Agent上线后行为失控,你怎么管?我:加规则!他:就这?

来了来了。 Agent 在测试环境乖得很&#xff0c;上了生产突然开始"自由发挥"——调模型不看配额、工具随便用、输出漂到十万八千里&#xff0c;等你反应过来&#xff0c;账单已经飙了一波。 这不是个别现象。只要 Agent 从 demo 走向生产&#xff0c;行为管控就是绕不…

作者头像 李华