k8s 上如何对数据库进行灾备?
来自twt社区同行交流,欢迎更多同行参与交流
k8s 上如何对数据库进行灾备?
如标题,k8s 上如何对数据库进行灾备?求最佳实践。可以举例 mysql ,postgres ,等开源数据库。
问题来自社区会员@zhenda 昆仑银行数据库管理员,下文来自twt社区众多同行实践经验分享,欢迎大家参与交流,各抒己见。
@edwin1986 上汽通用汽车 系统架构师:
k8s本身不负责上面运行服务的灾备。需要逐层思考这个问题。
架构上可以提一个思路,k8s下层的容器调度(scheduling framework)和存储调度(CSI和PVC storageclass)都是插件式的,可按需进行定制和扩展。
但高可用本身,见过很多方案通过应用层进行,如sidecar BIN log复制等等。
@van3012 IT顾问:
不太建议数据库上容器,目前还没有成熟的方案,尤其对并发及性能有要求的场景。
一种新的针对容器存储的解决思路是云原生存储,也就是直接把主机操作系统中LVM的功能向上移动到kubernetes这样的云原生操作系统中来实现,kubernetes识别的不再是主机操作系统中文件系统或者卷,而是存储设备。LVM所负责的存储设备到逻辑存储卷的功能,直接由kubernetes环境中一组deamonset容器来实现。这样kubernetes中pv直接和硬件层的存储设备对接,并且可以设定多副本和一致性规则。在这样的架构下,容器化的数据库灾备能力甚至超过传统架构下的数据库产品,因为容器的恢复重建远比虚拟机要迅速。一个容器中数据库实例,通过云原生存储的多副本和强一致性保证,就可以得到传统架构中一主一备甚至一主两备的防护。维护成本则大为降低,不再需要维护多个数据库实例的工作了。集中保证kubernetes容器云的应用和存储即可。
@anonym:
这个问题还是回归到有状态的服务要不要上K8S,目前阿里云之类的数据存储类服务还是依赖虚拟机,数据库上K8S 的还是比较少,其实重点还是回归到存储,本地存储、共享存储等 不同的场景保障不同的可用性。
欢迎点击文末阅读原文到社区阅读和讨论交流
觉得本文有用,请转发、点赞或点击在看,让更多同行看到
资料/文章推荐:
欢迎关注社区以下 “容器云”技术主题 ,将会不断更新优质资料、文章。地址:https://www.talkwithtrend.com/Topic/98447
下载 twt 社区客户端 APP
长按识别二维码即可下载
或到应用商店搜索“twt”
长按二维码关注公众号
*本公众号所发布内容仅代表作者观点,不代表社区立场