- 主题:k8s上跑mysql/pg的一个坑
我碰到一个业务场景,在tx云上几台轻量级服务器做k8s,然后statefulset跑mysql,
Scaling and Upgrade Policy设为ondelete。结果一台机器负载过高失去响应了,被踢出
集群,mysql切换到另一个节点。但实际上那台失去响应的服务器上pod还在工作,然后
mysql两个节点都访问同一个pvc,挂了。
而在之前物理机的ha场景里,是需要配置stonith的,也就是一个节点脱离集群,是需要
给他自动掉电或重启的,这样保证两个节点上的mysql不会同时访问共享存储,避免这种
同时读写带来的数据破坏。
k8s现在还没有stonith的机制,所以有共享数据的数据库服务其实很危险
--
FROM 120.229.207.*
数据挂了
【 在 JulyClyde 的大作中提到: 】
: 那似乎也应该是后启动的那个挂了吧?前者应该没事?
--
FROM 119.139.198.*
现在弄个daemonset,用mysql主从复制,每个节点跑个实例,
【 在 JulyClyde 的大作中提到: 】
: 对于访问共享数据这种场景来说,要么程序本身是具备cluster aware协同能力的,要
: 么是可以fence掉对方的
: 和k8s本身倒是没多大关系
--
FROM 119.139.198.*
rds太贵了
【 在 JulyClyde 的大作中提到: 】
: 从根本上我就反对数据库进容器
--
FROM 119.139.198.*
贵,管理麻烦
【 在 JulyClyde 的大作中提到: 】
: 固定安装就行了
--
FROM 119.139.198.*
suse ha+sap hana 的推荐配置就是用nfs放hana数据库
这个并不矛盾
但是k8s没有stonith机制才是问题所在
你说的我现在就在用,就是 用mysql 主从模式,把每个pod固定在特定节点上,但是还是
用nfs做pvc
【 在 jimmycmh 的大作中提到: 】
: 我觉得是你使用的有问题
: 你的pvc底层存储是什么?nfs吗?
: 数据库的场景,允许存储在不同机器上同时挂载并写入就很危险
: ...................
--
FROM 119.139.198.*
加ha才行啊,mysql+suse ha也有跑nfs的
【 在 JulyClyde 的大作中提到: 】
: 两码事啊,人家是软件本身就cluster aware
: 你这里是mysql
--
FROM 119.139.198.*