Как заставить Ingress работать с игровыми серверами с необходимыми портами с nodeport на azure - PullRequest
0 голосов
/ 04 мая 2020

Мой вопрос касается c конфигурации того, как иметь контроллер входа, в моем случае контроллер входа Nginx, работает, чтобы пользователи могли получить доступ к игровым серверам в зависимости от порта, который они вводят. Я предполагаю, что они подключат внешний IP-адрес входящего сервера, а затем правильный порт, который у меня есть на nodeport?

Service 1

apiVersion: v1
kind: Service
metadata:
  name: game-svc-0
spec:
  type: NodePort
  selector:
    instance: game-0
  ports:    
    - port: 25565
      targetPort: 25565
      nodePort: 30000 # (default: 30000-32767)

Service 2

apiVersion: v1
kind: Service
metadata:
  name: game-svc-1
spec:
  type: NodePort
  selector:
    instance: game-1
  ports:    
    - port: 25565
      targetPort: 25565
      nodePort: 30001 # (default: 30000-32767)

Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: game-server-ingress
  namespace: ingress-basic
  annotations:
    kubernetes.io/ingress.class: nginx
    # nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: game-svc-0
          servicePort: 30000
      - backend:
          serviceName: game-svc-1
          servicePort: 30001

Где порт контейнера набора с отслеживанием состояния - 25565, как того требует docker контейнер игры.

Однако, когда я создаю сервер и запускаю команду

kubectl describe ing game-server-ingress -n ingress-basic

В моих выводах говорится, что не удается найти определенные конечные точки. Это потому, что вход находится в другом пространстве имен? Я бы не стал предполагать, что это проблема, поскольку это почти дословно пример из документации Microsoft.

Name:             game-server-ingress
Namespace:        ingress-basic
Address:          {address1},{address2}
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host        Path  Backends
  ----        ----  --------
  *
                 game-svc-0:30000 (<error: endpoints "game-svc-0" not found>)
                 game-svc-1:30001 (<error: endpoints "game-svc-1" not found>)
Annotations:  kubernetes.io/ingress.class: nginx
              nginx.ingress.kubernetes.io/rewrite-target: /

Я неправильно настроил часть портов узла? Проблема в том, что ввод сервера не принимает '/ words' только IP-адрес и порт как IPADDRESS: PORT. Может ли это вообще что-то сделать?

...