【问题标题】:redis cluster K8S connectionredis集群K8S连接
【发布时间】:2019-08-03 05:17:10
【问题描述】:

我在 K8S 中运行一个 redis-cluster:

kubectl get services -o wide
redis-cluster                              ClusterIP      10.97.31.167     <none>        6379/TCP,16379/TCP   22h   app=redis-cluster

当从节点本身连接到集群 IP 时,连接工作正常:

redis-cli -h 10.97.31.167 -c
10.97.31.167:6379> set some_val 1
-> Redirected to slot [11662] located at 10.244.1.9:6379
OK
  1. 是否可以通过某种方式从本地开发 VM 访问 redis 服务器,而无需将每个 pod 都公开为服务?
  2. 在部署我的应用程序以在集群内部运行时(稍后,在生产中),我应该也使用集群 IP,还是应该使用 pod 的内部 IP 作为 redis-master 服务器的主 IP?

简单转发到远程机器不起作用:

devvm:ssh -L 6380:10.97.31.167:6379 -i user.pem admin@k8snode.com

在开发虚拟机上:

root@devvm:~# redis-cli -h 127.0.0.1 -p 6380 -c
127.0.0.1:6380> set jaheller 1
-> Redirected to slot [11662] located at 10.244.1.9:6379

此时redis连接超时。

【问题讨论】:

    标签: redis kubernetes redis-cluster


    【解决方案1】:

    我认为您不需要任何端口重定向。不过,您必须在集群上构建一个入口控制器,即nginx ingress controller

    然后您只需设置一个具有公开访问权限的入口服务,该服务将为集群流量提供服务。

    这里是一个 Ingress Controller 访问集群服务的例子:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: redis-cluster-ing
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      - http:
          paths:
          - backend:
              serviceName: redis-cluster
              servicePort: 6379
    

    您可以一步一步检查instruction

    【讨论】:

    • 我尝试了很多选项,但都无法奏效。你真的设法完成这项工作吗?我发现其他博客中人们设置了更复杂的设置,但在建立通信后仍然无法解析 Redis 提供内部 ip。
    【解决方案2】:

    我相信在所有场景中你只需要使用 kubernetes 类型的服务对象公开服务:

    • 集群 IP(如果您在集群内使用它)

    • NodePort(用于外部访问)

    • LoadBalancer(如果是公共访问且您使用云提供商)

    • 带有外部负载均衡器的 NodePort(如果您在本地基础架构上,则用于公共外部访问)

    无需担心单个 pod。服务会照顾他们。

    文档:

    https://kubernetes.io/docs/concepts/services-networking/service/

    【讨论】:

    • 我一直在寻找一种不暴露整个服务的方法,有没有一种方法可以用来将服务转发到我的开发虚拟机?
    • 好的,但我认为这将是您尝试做的反模式。
    • 查看第一篇文章,更新了我如何尝试远程端口转发的信息。
    猜你喜欢
    • 2020-08-23
    • 2021-12-22
    • 2015-10-13
    • 2015-11-12
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多