大家有没有搞过有状态应用上 K8S
MySQL RabbitMQ Redis 等这种有状态中间件怎上 K8S ?是通过在上层使用开源的或者自己改的 operator,还是在底层二次开发这些中间件?存储用 local pv 还是 ceph 之类的?
MySQL RabbitMQ Redis 等这种有状态中间件怎上 K8S ?是通过在上层使用开源的或者自己改的 operator,还是在底层二次开发这些中间件?存储用 local pv 还是 ceph 之类的?
*雖然就算有 statefulset 也不一定能一勞永逸
畢竟會有狀態同步問題
這時候就是應用層面處理了
你需要做簡單的 HA 譬如 JBoss/Vertex/DNS
存储一直都是阵列提供的。
数据库这种存储应用,不要考虑云计算,按传统部署来。
我说存储没有云化,不是说它底层依赖单一硬件阵列,而是说它没法像 CPU 和内存那样动态放缩,灵活调配,它还是一块盘,不是一种资源。
你是云提供商,你可以说像 ceph 这种东西完成了存储的云化,但对使用者来讲,你这个块设备是阵列给你的还是 ceph 给你的,对你来讲有差吗,不分区格式化能行吗?
这块盘能多挂载多写吗,读写事件能都收到吗?
那不还是阵列吗?
所以说存储这一块它没有云化,像数据库这种东西,还是老样子啊,要想真正云化,需要普及一种高性能分布式文件系统先,能动态放缩的那种。
存储的灵活性现在是数据库应用这层提供的,不是存储盘这层提供的。
你可以说云数据库,这是真云, 云存储,得了吧,就是别人计算机上的盘而已。
不分区不格式化、不能挂载多写一样用啊,数据库直接使用裸的块设备就是了
rancher 有个 local-path provisioner 可以简化 pv 管理 https://github.com/rancher/local-path-provisioner
可以参考的 redis operator
https://github.com/spotahome/redis-operator
https://github.com/ucloud/redis-cluster-operator