- 主题: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.*
【 在 iwannabe 的大作中提到: 】
: 我碰到一个业务场景,在tx云上几台轻量级服务器做k8s,然后statefulset跑mysql,
: Scaling and Upgrade Policy设为ondelete。结果一台机器负载过高失去响应了,被踢
: 出
: 集群,mysql切换到另一个节点。但实际上那台失去响应的服务器上pod还在工作,然后
: mysql两个节点都访问同一个pvc,挂了。
那似乎也应该是后启动的那个挂了吧?前者应该没事?
: 而在之前物理机的ha场景里,是需要配置stonith的,也就是一个节点脱离集群,是需
: 要
: 给他自动掉电或重启的,这样保证两个节点上的mysql不会同时访问共享存储,避免这
: 种
: 同时读写带来的数据破坏。
: k8s现在还没有stonith的机制,所以有共享数据的数据库服务其实很危险
--
FROM 139.227.19.*
对于访问共享数据这种场景来说,要么程序本身是具备cluster aware协同能力的,要么是可以fence掉对方的
和k8s本身倒是没多大关系
【 在 iwannabe 的大作中提到: 】
: 我碰到一个业务场景,在tx云上几台轻量级服务器做k8s,然后statefulset跑mysql,
: Scaling and Upgrade Policy设为ondelete。结果一台机器负载过高失去响应了,被踢出
: 集群,mysql切换到另一个节点。但实际上那台失去响应的服务器上pod还在工作,然后
: mysql两个节点都访问同一个pvc,挂了。
: 而在之前物理机的ha场景里,是需要配置stonith的,也就是一个节点脱离集群,是需要
: 给他自动掉电或重启的,这样保证两个节点上的mysql不会同时访问共享存储,避免这种
: 同时读写带来的数据破坏。
: k8s现在还没有stonith的机制,所以有共享数据的数据库服务其实很危险
--
FROM 139.227.19.*
数据挂了
【 在 JulyClyde 的大作中提到: 】
: 那似乎也应该是后启动的那个挂了吧?前者应该没事?
--
FROM 119.139.198.*
现在弄个daemonset,用mysql主从复制,每个节点跑个实例,
【 在 JulyClyde 的大作中提到: 】
: 对于访问共享数据这种场景来说,要么程序本身是具备cluster aware协同能力的,要
: 么是可以fence掉对方的
: 和k8s本身倒是没多大关系
--
FROM 119.139.198.*
从根本上我就反对数据库进容器
【 在 iwannabe 的大作中提到: 】
: 现在弄个daemonset,用mysql主从复制,每个节点跑个实例,
--
FROM 139.227.19.*
rds太贵了
【 在 JulyClyde 的大作中提到: 】
: 从根本上我就反对数据库进容器
--
FROM 119.139.198.*
固定安装就行了
【 在 iwannabe 的大作中提到: 】
: rds太贵了
--
FROM 139.227.19.*
贵,管理麻烦
【 在 JulyClyde 的大作中提到: 】
: 固定安装就行了
--
FROM 119.139.198.*
感觉它这个需求应该搞 PolarDB for PostgreSQL,支持essd这种配置,不过又没k8s了。
【 在 JulyClyde 的大作中提到: 】
: 对于访问共享数据这种场景来说,要么程序本身是具备cluster aware协同能力的,要么是可以fence掉对方的
: 和k8s本身倒是没多大关系
--
FROM 101.254.182.*