redis - Kubernetes 无法在服务的 Cluster-IP 上连接 redis

标签 redis kubernetes

我在谷歌云上使用了这个设置:

  • 使用 (php) 网络应用程序的 Pod 和服务
  • Pod 和服务与 mysql 服务器
  • 带有 redis 服务器的 Pod 和服务

mysql serverredis server 的 kubernetes 配置文件几乎相同,只是名称、端口和镜像不同。

可以从网络应用连接mysql服务器但我不能连接redis服务器

此外,我无法从其服务CLUSTER-IP上的网络应用程序连接redis服务器,但我可以连接redis服务器 在其 pod IP 上。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
        - name: redis
          image: launcher.gcr.io/google/redis4
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
          ports:
          - containerPort: 6379
          env:
---
apiVersion: v1
kind: Service
metadata:
  name: redis
  labels:
    app: redis
    role: master
    tier: backend
spec:
  selector:
    app: redis
    role: master
    tier: backend
  ports:
  - port: 6379
    targetPort: 6379

最佳答案

部署规范缺少一些标签,因此服务未选择它。

当前部署规范:

metadata:
  labels:
    app: redis

包括服务所需的其他标签:

metadata:
  labels:
    app: redis  
    role: metadata  
    tier: backend  

或者根据您希望如何查看服务规范正在尝试匹配不存在的标签,您可以将服务更改为:

  selector:
    app: redis
    role: master
    tier: backend

到:

selector:
    app: redis

关于redis - Kubernetes 无法在服务的 Cluster-IP 上连接 redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49102203/

相关文章:

kubernetes - 启动时kube-apiserver无法获取或设置 key

kubernetes - 如何确定作业是否失败

kubernetes - 何时从 ConfigMap 使用 Kubernetes env

c# - Redis全文搜索与C#

python - 我可以使用 Tornado+Celery+RabbitMQ+Redis 吗?

azure - 如何在 Azure 中运行多个 SQL Server 容器并确保在它们之间复制数据?

kubernetes - 使用大使api网关作为Istio入口?

PHP session 处理程序 Redis - 传输中的 AWS ElastiCache 加密

Heroku:当我的 Redis 连接都被使用时会发生什么?

ubuntu - 我的 Redis 自动生成的 key