2

我正在尝试学习 docker 和 kubernetes,我想做的一件事是使用 Sentinel 设置 Redis 并将 redis 暴露给容器外部的东西。

在https://github.com/kubernetes/kubernetes/tree/master/examples/storage/redis之后,获取 redis 和哨兵设置非常容易

但是现在我的下一个愿望是能够在容器外访问redis,我无法弄清楚谁来暴露哨兵和主pod。

4

1 回答 1

1

您链接中的 redis 哨兵服务文件 ( https://github.com/kubernetes/kubernetes/blob/master/examples/storage/redis/redis-sentinel-service.yaml ) 将公开集群中的 pod。对于外部访问(从集群外部),您可以使用NodePort

apiVersion: v1
kind: Service
metadata:
  labels:
    name: sentinel
    role: service
  name: redis-sentinel
spec:
  type: NodePort
  ports:
    - port: 26379
      targetPort: 26379
      nodePort: 30369
  selector:
    redis-sentinel: "true"

这会将外部世界的所有主机上的端口 30369 暴露给 redis 哨兵服务。

对此的几点说明: * 防火墙:redis 中的安全性是有限的,所以在打开端口之前要防止不必要的访问 * 允许分配的nodePort范围是从 30000 到 32767,所以这个限制是有创意的。

于 2017-01-02T04:09:33.957 回答