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

时间:2018-03-05 01:10:47

标签: redis kubernetes

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

  • Pod和服务(php)web app
  • 使用 mysql服务器
  • 的Pod和服务
  • 使用 redis服务器
  • 的Pod和服务

mysql服务器 redis服务器的kubernetes配置文件几乎相同,只有名称,端口和图像不同。

可以从网络应用连接 mysql服务器,但我无法连接 redis服务器。< / p>

此外无法在其服务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

1 个答案:

答案 0 :(得分:3)

部署规范缺少某些标签,因此服务没有选择它。

当前部署规范:

metadata:
  labels:
    app: redis

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

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

或者根据您要查看的方式,服务规范正在尝试不存在的匹配标签,您可以从以下位置更改服务:

  selector:
    app: redis
    role: master
    tier: backend

为:

selector:
    app: redis