【问题标题】:Kubernetes can't connect redis on Cluster-IP of serviceKubernetes 无法在服务的 Cluster-IP 上连接 redis
【发布时间】:2019-01-01 19:46:03
【问题描述】:

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

  • 带有 (php) Web 应用的 Pod 和服务
  • 带有 mysql 服务器 的 Pod 和服务
  • 带有 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

【问题讨论】:

    标签: redis kubernetes


    【解决方案1】:

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

    当前部署规范:

    metadata:
      labels:
        app: redis
    

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

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

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

      selector:
        app: redis
        role: master
        tier: backend
    

    到:

    selector:
        app: redis
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-28
      • 2020-02-02
      • 2019-12-01
      • 2021-01-02
      • 1970-01-01
      • 2021-08-29
      • 2018-10-07
      • 2021-11-21
      相关资源
      最近更新 更多