我正在使用以下方法创建 Redis 哨兵集群:
https://github.com/kubernetes/examples/tree/master/staging/storage/redis
它在给定的镜像上运行得非常好,但是当我们使用 Redis 官方镜像时,哨兵无法连接到第一个 pod 中的 Redis。
显示以下错误:
无法连接到位于 -p:6379 的 Redis
如何使用Redis官方镜像创建集群?
要将 google 存储库中的映像替换为公共 docker hub 映像,需要为此示例修改以下部署文件:
examples/staging/storage/redis/redis-master.yaml
examples/staging/storage/redis/redis-sentinel-service.yaml
examples/staging/storage/redis/redis-controller.yaml
在这些文件中,您将找到如下图像配置:
spec:
containers:
- name: sentinel
image: k8s.gcr.io/redis:v1
将所有
image: k8s.gcr.io/redis:v1
替换为 image: redis:stable
或 image: redis:latest
。
修改这些图像配置后应如下所示:
spec:
containers:
- name: sentinel
image: redis:stable
您提到的 dockerfile 中的 alpine 图像用于运行脚本以删除尾随空格。
更新:
经过进一步调查,这个示例似乎使用了 GCR 存储库中的特定 redis image,并将其替换为官方 redis 镜像将不起作用。
如果你想在 kubernetes 中部署 redis,我建议使用 bitnami-docker-redis github 项目。有关在 kubernetes 上安装它的更多信息可以在here找到。
查看 Redis Sentinel Gateway — 它有助于管理 Redis 故障转移,而无需在应用程序代码中实现 Sentinel 支持。非常适合需要高可用性的遗留应用程序!