admin 管理员组

文章数量: 1087139


2024年4月14日发(作者:using namespace srd作用)

AWS EKS运行有状态应用Mysql8.0集群(读写分离)

编写:袁泽龙 时间:2022.3.23

阅读本文时,我认为你已经具备kubernets基础,已经创建好了AWS EKS集群,并且能够使用

kubectl管理集群。

1、概述

一般我们采用mysq作为数据库时,常用的是mysql5.x或mysql8.x版本。

数据库实例类型有单机版、高可用版、读写分离集群版。 前两种都比较容易实现。

今天我们来实现mysql8.0.26版本的读写分离,并且同步复制时采用密码方式。

为了更好地适应生产环境,以及后续的便利性,我们需要用到namespace(ns)、

(cm),Secret,Service(svc),StatefulSet(sts)。

首先,描述一下我们想要部署的“有状态应用”。

1.是一个“主从复制”(Maser-Slave Replication)的 MySQL 集群;

2.有 1 个主节点(Master);有多个从节点(Slave);从节点需要能水平扩展;

3.所有的写操作,只能在主节点上执行;读操作可以在所有节点上执行。

Configmap

这个主从模式的 MySQL 集群非常典型。我们通过一张图来表示。

2、存储

如果是自建kubernetes集群,你不懂golang开发的话,很难编写出CSI存储插件,存储类型

可能会是你非常头疼的事情,但我们采用AWS EKS,这会让我们非常省心,因为AWS EKS已经帮我

们做好了storageClass。采用storageClass,能够自动创建相应的pv和pvc,非常方便。

运行有状态应用Mysql,我们需要用到块存储,即AWS EBS。

AWS EBS存储类型有:io1,gp2,gp3,sc1,st1。默认值:gp2。

通过如下命令,可以查看AWS EKS帮我们做好的storageClass。默认只有gp2类型的,我们可


本文标签: 集群 采用 分离 节点 需要