MySQL RabbitMQ Redis 等这种有状态中间件怎上 K8S ?是通过在上层使用开源的或者自己改的 operator,还是在底层二次开发这些中间件?存储用 local pv 还是 ceph 之类的?
MySQL RabbitMQ Redis 等这种有状态中间件怎上 K8S ?是通过在上层使用开源的或者自己改的 operator,还是在底层二次开发这些中间件?存储用 local pv 还是 ceph 之类的?
|
stevefan1999Apr 14, 2021
1
??? StatefulSet*啊 你重學下 k8s 吧
*雖然就算有 statefulset 也不一定能一勞永逸 畢竟會有狀態同步問題 這時候就是應用層面處理了 你需要做簡單的 HA 譬如 JBoss/Vertex/DNS |
|
2
网络存储都是垃圾,不适合这种存储应用,个人觉得这种东西就不适合上 k8s,statefulset 限制也很多的
|
|
buliuguApr 14, 2021
3
k8s 原生只有 StatefulSet,正常用大家当然是等大厂放出官方的 operator 啦(逃
|
|
fuisApr 14, 2021
4
俺弄了重型有状态应用的移植。自己写了 operator,依赖一个 local pv provisioner
楼上说的 statefulset 其实本身也有各种问题,比如默认的 rollingupdate 策略不能指定某个 pod,等等。不过总体来说我觉得还是比较容易的。 |
|
liuzhaowei55Apr 14, 2021 via Android
5
又不需要敏捷开发,多次发布,负载均衡也有自己的解决方案,为啥要用 k8s 呢
|
|
CallMeReznovApr 14, 2021
6
刚好,中午吃饭的时候阅读到的
mysql 主备上 k8s:https://mp.weixin.qq.com/s/D3WI2JnhV4Bilb9DEkcOTA |
|
7
@liuzhaowei55 #5 领导的意思这种玩意都尽可能上上去(除了 mysql )
|
|
wingooApr 14, 2021
8
有状态应用的问题是出了问题你能不能解决, 不能解决的话就不要上 k8s
|
|
root01Apr 14, 2021
9
我都现在都不明白有状态和无状态的区别
|
|
wellscApr 14, 2021 via iPhone
10
staefulset 也是个坑
|
|
catchexceptionApr 14, 2021
11
一言难尽,无状态全上 K8s,有状态编排各有各的难点。负载均衡有时自己要在应用内实现,或者加 ClientIP 与 Pod 亲和。
Redis 我记得有主从镜像的,可以直接拿来用。 |
|
EPr2hh6LADQWqRVHApr 14, 2021
12
云计算只有 CPU 内存和网络实现了动态分配。
存储一直都是阵列提供的。 数据库这种存储应用,不要考虑云计算,按传统部署来。 |
|
YoolooApr 14, 2021
13
搞过
|
|
XiaoxiaoPuApr 14, 2021
14
@avastms 存储早就云化了啊,对象存储、块存储、文件存储等等,很多了
|
|
EPr2hh6LADQWqRVHApr 14, 2021
15
@XiaoxiaoPu 对象存储不算存储, 快存储就是 iSCSI,阵列提供的, 文件存储就 smb/nfs,还是阵列。
里外都是阵列,没那么灵活。 |
|
XiaoxiaoPuApr 14, 2021
16
@avastms 对象存储怎么不是存储了,能存能读能持久化。块存储、文件存储早就有分布式的解决方案了,不依赖硬件。
|
|
17
@XiaoxiaoPu 能放数据库吗对象存储,就那个 IO 性能,歇了吧。
我说存储没有云化,不是说它底层依赖单一硬件阵列,而是说它没法像 CPU 和内存那样动态放缩,灵活调配,它还是一块盘,不是一种资源。 你是云提供商,你可以说像 ceph 这种东西完成了存储的云化,但对使用者来讲,你这个块设备是阵列给你的还是 ceph 给你的,对你来讲有差吗,不分区格式化能行吗? 这块盘能多挂载多写吗,读写事件能都收到吗? 那不还是阵列吗? 所以说存储这一块它没有云化,像数据库这种东西,还是老样子啊,要想真正云化,需要普及一种高性能分布式文件系统先,能动态放缩的那种。 存储的灵活性现在是数据库应用这层提供的,不是存储盘这层提供的。 你可以说云数据库,这是真云, 云存储,得了吧,就是别人计算机上的盘而已。 |
|
monsterxx03Apr 14, 2021
18
@avastms 块设备很成熟了啊, aws ebs, gce pv, aws 自己的 rds 和 aurora 也是基于 ebs 的, 动态扩容一直可以, 缩不行, 但就我经验, 大多数业务缩容并不是一个刚需. 多挂载算是个痛点, NFS 这种太弱了, 但大多数应用也不是刚需. 现有的 sds 块设备方案基本能解决我碰到的 90%问题, iops 性价比也算是个问题.
|
|
crclzApr 14, 2021
19
@avastms 还真有你说的那种完全“云化”的数据库)。
对象储存勉强算一种。此外,还有如下的: AWS DynamoDB, Azure CosmosDB, Google FireStore, 阿里云 Lindom Serverless |
|
XiaoxiaoPuApr 14, 2021
20
|
|
vivisideaApr 14, 2021
21
有些应用存储不适合走网络,非得 cephfs 来部署 mysql 不蛋疼么,随机读写性能得多差
本地磁盘还好一点 rancher 有个 local-path provisioner 可以简化 pv 管理 https://github.com/rancher/local-path-provisioner |
|
vivisideaApr 14, 2021
22
|
|
zhujqApr 14, 2021
24
|
|
ch2Apr 14, 2021 via iPhone
25
@XiaoxiaoPu 性能差很多
|
|
XiaoxiaoPuApr 15, 2021
26
|
|
twl007Apr 15, 2021 via iPhone
27
需要 operator 来辅助 纯靠 k8s 自己还是蛮有挑战性的
|
|
thetApr 17, 2021 via iPhone
32
@ldimple #31 好处还是很多的,比如
1. 部署方便很多,一个 cr 就可以了 2. 扩展方便 可以参考的 redis operator https://github.com/spotahome/redis-operator https://github.com/ucloud/redis-cluster-operator |