开发者社区> 问答> 正文

k8s部署redis哨兵集群

我用statefulset来起redis,这样可以固定redis的dns和hostname,一个pod中有redis和sentinel两个容器,组成1master和3slave,slave和sentinel的配置文件中关于master地址就用第一个pod的dns解决。初始化时,没问题,一切正常。但是当我发生故障转义,去重启pod就有问题了,sentinel中关于它slave和sentinel的信息还在,一直认为它只是下线了,而重启后的pod的hostname和dns都没变,但是ip还是变了,这样虽然还是加入原本主从,但是被认为是新成员(redis和sentinel),这只是slave重启。如果是master重启的话,推选新master可以,但是重启后的旧master加不进主从了,因为配置文件中,它就是master,而且因为ip变化,其他sentinel就拉不了这个重生的redis节点进去主从中。它自成一体

展开
收起
sunniva 2018-11-26 11:07:03 10420 0
1 条回答
写回答
取消 提交回答
  • 易立,阿里云资深专家,目前负责阿里云容器服务和区块链服务研发。之前曾在IBM中国开发中心工作,担任资深技术专员。关注Docker/Kubernetes等云原生计算和Hyperledger Fabric/Ethereum等区块链技术。

    需要修改IPAM,可以考虑参考Terway https://github.com/AliyunContainerService/terway
    支持StatefulSet环境Pod的IP sticky

    2019-07-17 23:16:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载