我在Kubernetes上部署了一个具有bitnami图表(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 -- bashredis-cli -h redis-cluster-0.redis-cluster-headless.redis但是,我无法从部署在同一集群中的golang应用程序连接到redis集群。
我在golang应用程序中使用的redis连接字符串uri是"redis://redis-cluster-0.redis-cluster-headless.redis:6379".。这遵循了“redis-po-name.redis-service-name.命名空间”的约定。
注意:我希望能够只在Kubernetes集群中访问redis集群。我不想批准外部访问。请帮帮我..。
发布于 2020-08-12 13:45:20
如果您不需要负载平衡和一个服务IP,Headless服务就是.Headless服务并不仅用于从Kubernetes集群内访问redis集群。
您可以创建一个服务来公开redis。下面是一个创建ClusterIP类型的示例,它只让我们从集群内部而不是集群外部连接到它。
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: default
spec:
ports:
- port: 6379
targetPort: 6379
selector:
app: redis红色信息系统的吊舱或部署需要有匹配的标签app: redis。
然后,您可以使用redis.default.svc.cluster.local:6379连接到它,从Golang应用程序连接到它。
https://stackoverflow.com/questions/63373547
复制相似问题