gpt4 book ai didi

docker - 无法从部署在同一集群中的我的 golang 应用程序连接到 kubernetes 上的 redis 集群

转载 作者:行者123 更新时间:2023-12-01 22:11:29 24 4
gpt4 key购买 nike

我在 Kubernetes 上使用 bitnami helm 图表 (https://github.com/bitnami/charts/tree/master/bitnami/redis-cluster) 部署了一个 redis 集群。
我可以通过运行以下命令从 Kubernetes 集群内成功连接到 Redis 集群:

  • kubectl run my-redis-release-client --rm -it --image docker.io/bitnami/redis:4.0.11-debian-9 -- bash
  • redis-cli -h redis-cluster-0.redis-cluster-headless.redis

  • 但是我无法从部署在同一集群中的 golang 应用程序连接到 redis 集群。
    我在 golang 应用程序中使用的 redis 连接字符串 uri 是“redis://redis-cluster-0.redis-cluster-headless.redis:6379”。这遵循“redis-pod-name.redis-service-name.namespace”约定。
    注意:我希望能够仅从 Kubernetes 集群内访问 redis 集群。我不想授予外部访问权限。请帮忙...

    最佳答案

    Headless服务是如果您不需要负载平衡和单个服务 IP。 Headless服务不用于仅从 Kubernetes 集群内访问 redis 集群
    你可以创建一个服务来暴露redis。以下是创建 ClusterIP 的示例仅让您从集群内部而不是从集群外部连接到它的类型。

    apiVersion: v1
    kind: Service
    metadata:
    name: redis
    namespace: default
    spec:
    ports:
    - port: 6379
    targetPort: 6379
    selector:
    app: redis
    redis的pod或者deployment需要有匹配的label app: redis然后您可以使用 redis.default.svc.cluster.local:6379 连接到它。从 Golang 应用程序连接到它。

    关于docker - 无法从部署在同一集群中的我的 golang 应用程序连接到 kubernetes 上的 redis 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63373547/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com