【问题标题】:Error {"message":"failure to get a peer from the ring-balancer"} using kong ingress错误 {"message":"failure to get a peer from the ring-balancer"} 使用 kong ingress
【发布时间】:2020-06-23 22:43:19
【问题描述】:

当我尝试使用公共 IP 访问时收到错误消息:

"{"message":"failure to get a peer from the ring-balancer"}"

看起来 Kong 无法访问上游服务。

我正在使用投票应用程序

ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: telehealth-ingress
  namespace: kong
  annotations:
    kubernetes.io/ingress.class: "kong"
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: voting-service
          servicePort: 80

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: voting-service
  labels:
    name: voting-service
    app: voting-app
spec:
  ports:
    - targetPort: 80
      port: 80
  selector:
    name: voting-app-pod
    app: voting-app

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: voting-app-pod
  labels:
    name: voting-app-pod
    app: voting-app
spec:
  template:
    metadata:
      labels:
        name: voting-app-pod
        app: voting-app
    spec:
      containers:
        - name: voting-app
          image: dockersamples/examplevotingapp_vote
          ports:
           - containerPort: 80
  replicas: 2
  selector:
    matchLabels:
      app: voting-app

【问题讨论】:

    标签: kubernetes kubernetes-ingress kong kong-ingress


    【解决方案1】:

    这里可能有很多问题之一。但本质上,您的入口无法到达您的后端。

    如果您的后端已启动并正在运行?

    • 检查后端 pod 是否“正在运行”

      kubectl get pods
      
    • 检查后端部署是否已启动所有副本

      kubectl get deploy
      
    • 连接到应用程序 pod 并运行 localhost:80 请求

      kubectl exec -it <pod-name> sh
      # curl http://localhost
      
    • 连接到 ingress pod,看看你是否可以从那里访问服务

      kubectl exec -it <ingress-pod-name> sh
      # dig voting-service  (can you DNS resolve it)
      # telnet voting-sevice 80
      # curl http://voting-service
      

    This issue 可能会了解您无法访问后端服务的原因。你看到了什么 http 错误代码?

    【讨论】:

      【解决方案2】:

      在kong命名空间而不是默认命名空间中部署服务和部署后问题得到解决。现在我可以使用 Kong 入口公共 IP 访问应用程序了。

      似乎 kong ingress 无法使用无头 DNS 解析 DNS。我们需要在入口 yaml 中提及 FQDN

      【讨论】:

        猜你喜欢
        • 2022-12-27
        • 2020-06-24
        • 2022-12-02
        • 2022-12-02
        • 2022-12-27
        • 2022-12-01
        • 2022-12-01
        • 1970-01-01
        • 2022-12-02
        相关资源
        最近更新 更多