Ошибка {сообщение: не удалось получить одноранговый узел от балансировщика колец} с помощью входящего трафика kong

Получение сообщения об ошибке при попытке доступа с общедоступного IP-адреса:

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

Похоже, Конг не может получить доступ к вышестоящим сервисам.

Я использую приложение для голосования

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

person Vikas Kalra    schedule 23.06.2020    source источник


Ответы (2)


Здесь может быть одна из многих ошибок. Но, по сути, ваш входящий трафик не может попасть на ваш сервер.

Если ваш бэкэнд запущен и работает?

  • Убедитесь, что серверные модули работают

    kubectl get pods
    
  • Убедитесь, что в развертывании серверной части все реплики включены

    kubectl get deploy
    
  • Подключитесь к модулю приложения и запустите запрос localhost: 80

    kubectl exec -it <pod-name> sh
    # curl http://localhost
    
  • Подключитесь к модулю Ingress и посмотрите, сможете ли вы получить оттуда доступ к службе

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

Эта проблема может пролить свет на то, почему вы не можете связаться с серверной службой. Какой код ошибки http вы видите?

person Rico    schedule 23.06.2020

Проблема решена после развертывания служб и развертываний в пространстве имен kong вместо пространства имен по умолчанию. Теперь я могу получить доступ к приложению с общедоступным IP-адресом Kong Ingress.

Похоже, что kong ingress не может разрешить DNS с безголовым DNS. Нам нужно упомянуть полное доменное имя во входящем yaml

person Vikas Kalra    schedule 24.06.2020