Kubernetes Redis HA并将Redis暴露给容器外的事物

我正在尝试学习docker和kubernetes,而我正在尝试做的事情之一是使用Sentinel设置Redis,并将Redis暴露给容器外的事物。

按照https://github.com/kubernetes/kubernetes/tree/master/examples/storage/redis获取redis和sentinel的设置非常简单

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

您的链接( https://github.com/kubernetes/kubernetes/blob/master/examples/storage/redis/redis-sentinel-service.yaml )中的redis sentinel服务文件将显示集群内的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 sentinel服务。

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