CodisLabs / codis

Proxy based Redis cluster solution supporting pipeline and scaling dynamically
MIT License
13.16k stars 2.69k forks source link

我看官方给的codis的kubernetes实现方案中有使用有状态的statefulset,能否改成无状态的deployment? #1433

Open Alanthur opened 6 years ago

Alanthur commented 6 years ago

我想把codis-server等相关的有状态的statefulset改成无状态的deployment,然后外挂分布式存储以及使用svc来做通信,不知道原理上是否可行,官方能否给个解释,谢谢。

left2right commented 6 years ago

啊哈,我虽然不能给你官方回复,但之前k8s yaml是我提的,相对来说比较了解些(实际这个yaml弄的比较糙,捂脸),你可以看看这个https://stackoverflow.com/questions/41583672/kubernetes-deployments-vs-statefulsets 。。。PS我觉得codis要在kubernetes上更方便的使用,实现个类似etcd-operator的codis-operator比较合适,我近期可能会在这上面做些评估和尝试

Alanthur commented 6 years ago

@left2right 你好,我按照你给的yaml文件拉起了kubernetes服务,但是我是使用官方最新3.x版本自己制作的镜像,我看你那个还是有使用ha,但是目前最新的版本是改用redis-sentinel来实现了,这块我需要按照新的来修改吧?另外你说的实现个类似etcd-operator的codis-operator是啥意思?我没明白,有没一些具体的资料给我看看,我也去研究下看看如何实现,谢谢咯

left2right commented 6 years ago

redis-sentinel这个是的,后面那个Google吧

tangcong commented 5 years ago

https://github.com/tangcong/codis-operator @left2right @dahaian 我正在写codes-operator,基于k8s crd一键可以创建集群,目前已经支持一个k8s create/destroy命令创建销毁集群,proxy自动扩缩容,codis-server/sentinel支持pv/pvc, proxy/codis-server滚动更新和指定分区更新,调度策略支持nodeSelector/Taints等,coordinator支持etcd/zk/filesystem,测试环境已经可用了,有兴趣的可以体验一起完善下。

tangcong commented 5 years ago

由于sentinel不支持dns,k8s的默认网络模式是重启ip会变的,目前这块体验会不太好并且极端情况下存在一定风险

Alanthur commented 5 years ago

@tangcong sentinel可以让他支持 dns吧

tangcong commented 5 years ago

我看sentinel代码之前是出于性能原因考虑 可以redis提个issue 这个问题只要是在k8s中跑sentinel就必须要面对的 不过k8s statefulset 我们可以支持固定ip @dahaian

tangcong commented 5 years ago

你可以先体验一下基于codis-operator管理集群 😁

objcoding commented 3 years ago

@tangcong 大佬的codis-operator支持扩容吗?如果支持,只需要创建一组CodisCluster控制器(codisServer配置)就可以了吧?