Redis Cluster Operator容器化技术方案.docx
《Redis Cluster Operator容器化技术方案.docx》由会员分享,可在线阅读,更多相关《Redis Cluster Operator容器化技术方案.docx(9页珍藏版)》请在第一文库网上搜索。
1、RedisC1usterOperator容器化方案AA【导读】对于RediSC1USter的容器化,民生银行已做了先期的探索和使用,但是,在RediSPaaS使用过程中,出现了一些问题,本文对此进行分析,并讨论使用OPeratOr的解决方案,希望能为同行进行RediSC1uster容器化提供参考。对于RedisC1uster的容器化,我行已在RedisPaas中做了先期的探索和使用。在RediSPaaS中实现了RediS哨兵模式、集群模式的容器化部署,结合IPAAS使得项目可依据自身需要自助申请并实时交付。但是,在RediSPaaS使用过程中,出现了RedisCIUSter主从POd被调度在同
2、一节点,RedisMaster节点所在的容器发生重启导致数据丢失的问题,而且在功能上难以支持RediS集群扩缩容、主从节点差异化配置、定时持久化等需求。本文针对RediSC1uster容器化遇到的问题进行分析,并讨论使用Operator的解决方案。RedisC1uster主从分布RedisC1USter从节点除了分担主节点的读压力,也是RediS高可用性重要的一部分。RediS作为一个内存数据库,为了保证高性能不会实时将数据刷盘进行持久化存储,所以RediS节点宕机可能会造成数据丢失。在集群模式中,分片中的从节点不仅可以分担主节点的读压力,而且也具有保证数据完整性的重要作用。所以在容器化部署时
3、,同一分片的主从节点Pod不能调度在同一K8S节点,防止由于K8S节点宕机分片整体下线导致数据丢失。Kubernets中可以使用Pod反亲和性配置,将同一类型的Pod分散在不同的节点。下面yam1配置定义所有符合Redis标签的Pod以软反亲和性的方式分布部署在不同的节点上。Imatch1abeIS:IRED1S_POD_1ABE1:RED1S_POD_VA武先期ReC1iSPaaS中,同一项目的所有RediSPoC1由一个StatefU1Set管理,对同一StatefU1Set中所有POd配置反亲和性。在实际使用中发现,这种配置方法在项目RediSPod比较多或者容器平台节点比较少的情景下,
4、会出现同一分片的主从POd被调度在同一主机节点的情况。在RediSC1usterOPeratOr的设计中,将每一个RediSC1USter每个分片部署成一个StatefUISet并在Statefu1set内配置POd反亲和性,这种部署方法能很好的保证RediSC1uster分片主从POd处于不同节点。RedisMaSter容器快重启在容器环境中部署的RediSC1uster,数据丢失除了可能发生在主从节点同时下线的情况外,还存在另外一种情景。RedisC1uster中,Master节点下线必须经过c1uster-node-timeout时间才会启动fai1over机制。在容器环境中,如果主节点
5、所在的容器由于某种原因被杀死,再被KUberneteS自动拉起,这个时间非常短暂以至于集群不会启动fai1over流程。但在这种情况下,RediS进程下线又上线原先内存中的数据会被全部清空,S1ave节点不执行fai1over流程继续同步Master会导致整个分片数据丢失。该种情况某种意义上可以看作是Kubernetes的高可用机制和RediSCIUSter的发生了冲突。在设计OPerator方案时,为避免类似情况的发生,我们需要明确KUbernetes、OPerator和RediS在整个方案中的作用,划定KuberentesOperator和RedisC1uster的功能边界:1. KUbe
6、rneteS和OPeratOr不去介入RediSC1USter的高可用机制,若有冲突以RediSCIUSter的为准2. Redis容器启动和ReCIiS进程启动相分离,KUberneteS只负责为RediS分配资源,Operator监听Redis容器启动情况并在合适的时机启动RediS进程,将RediS加入集群在先前RediSPaaS中,RediS进程随容器启动而启动,RediS进程自动读取本地nodes,conf文件重新回到集群。在OPeratOr中,需要监听RediS容器启动,对节点加入集群的时机做把控: Case1:分片中有MaSter节点,则启动容器RediS进程加入集群 Case2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Redis Cluster Operator容器化技术方案 Operator 容器 技术 方案