【云原生--K8S】K8S部署server+mysql应用(三)

本文探讨了在Kubernetes(K8S)中如何解决MySQL冗余问题,通过多Pod和多Service方法实现主从部署,确保在MySQL Pod故障时,数据仍能保持同步,避免业务中断。详细介绍了配置过程及程序修改,包括主从数据同步和客户端测试。
摘要由CSDN通过智能技术生成


前言

上篇我们主要研究了把server和mysql部署成两个服务的情况,但是我们没有考虑mysql的冗余机制,如果mysql的pod挂掉了,K8S会重新拉起它,但是这期间业务会中断。本篇我们将讨论一下如何解决这个问题。


一、多pod方法

首先想到的是mysql的多pod部署方法,把mysql.yaml文件中mysql的pod期望值由1改成2,如下图所示:在这里插入图片描述
如果其中一个pod挂了,server应用可以访问另一个pod,但是这样做有问题:这种方式相当于负载均衡模式,当server应用修改mysql数据的时候,只会选择其中的一个mysql pod修改,而由于两个mysql pod的数据是独立存储的,那么另一个mysql pod中的数据就没有修改到。大家可以自己部署验证一下。也就是说,在多pod方法下是没法实现两个mysql pod之间的数据同步。

二、多Service方法

既然多pod方法行不通,那我们不妨试一下mysql的主备冗余并实现双向数据同步,即多Service部署实现mysql主从。

1.mysql主从部署

mysql-redun.yaml文件如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-init-config
data:
  init.sql: |
    CREATE DATABASE IF NOT EXISTS test;
    USE test;
    CREATE TABLE IF NOT EXISTS table1(column1 varchar(20),column2 varchar(20));
    INSERT INTO table1(column1,column2) VALUES('abcd','1234');
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-master-config
data:
  my.cnf:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值