# mysql_cluster_k8s **Repository Path**: joeye0819/mysql_cluster_k8s ## Basic Information - **Project Name**: mysql_cluster_k8s - **Description**: k8s环境下创建mysql一主一从一离线数据库集群的yaml模板 - **Primary Language**: YAML - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-31 - **Last Updated**: 2024-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: MySQL, Kubernetes ## README # mysql_cluster_k8s #### 介绍 k8s环境下创建mysql一主一从一离线数据库集群的yaml模板 #### 软件架构 1、主从离各一个负载;使用时可以单独一个主库运行; 2、每个负载一个service,写mysql-master,读mysql-slave,离mysql-offline. 3、如果需要从库必需先建离线库,离线库上会生成socat容器监听服务,所有新建从库都会通过socat把xtrabackup备份以stream方式拉到从库并启动; #### 安装教程 1. 安装master节点:kubectl apply -f mysql_master/mysql-master.yaml 2. 安装offline节点:kubectl apply -f mysql_offline/mysql-offline-xtrabackup-socat-server.yaml offline节点会启动除mysql外的xtrabackup容器,xtrabackup容器socat监听3307端口,用于备份和新建从库拉取即时数据,使得从库以最快速度的启动上线。 离线库的另一个功能,对于非主链路核心业务或实时查询业务,访问离线库以避免影响主从数据库读写。 3. 安装slave节点:kubectl apply -f mysql_slave/mysql-slave-addsocat-check-sync.yaml #### 使用说明 1. 写业务访问 mysql-master 2. 读业务访问 mysql-slave 3. 离线业务访问 mysql-offline 4. 备份操作 备份可以用xtrabackup从离线库上通过socat备份 备份命令:socat - TCP:mysql-offline-0.mysql-offline:3307 > 实例名+日期.xb 恢复命令: xbstream -x -C /var/lib/mysql < 实例名+日期.xb xtrabackup --prepare --target-dir=/var/lib/mysql