Входной контроллер Minikube не перенаправляет запрос развернутой службе должным образом - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть следующие настройки в кластере миникубов

  1. Приложение SpringBoot, развернутое в кластере миникубов

имя: opaapp и containerPort: 9999

Сервисное использование для предоставления сервисного приложения, как показано ниже
apiVersion: v1
kind: Service
metadata:
  name: opaapp
  namespace: default
  labels:
    app: opaapp
spec:
  selector:
    app: opaapp
  ports:
    - name: http
      port: 9999
      targetPort: 9999
  type: NodePort

Создан контроллер доступа и ресурс входа, как показано ниже
apiVersion: networking.k8s.io/v1beta1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
  name: opaapp-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - host: opaapp.info
    http:
      paths:
      - path: /
        backend:
          serviceName: opaapp
          servicePort: 9999

У меня есть файл настройки хоста, как показано ниже

172.17.0.2    opaapp.info

Теперь, если я получу доступ к сервису, как показано ниже

http://opaapp.info: 32746 / api / ping : я получаю ответ обратно

Но если я пытаюсь получить доступ как

http://opaapp.info/api/ping: ошибка 404

Не удалось найти ошибку в конфигурации

1 Ответ

2 голосов
/ 23 апреля 2020

Входной контроллер nginx был выставлен через NodePort 32746, что означает, что nginx не прослушивает порт 80/443 в сети хоста (172.17.0.2), скорее nginx прослушивает порт 80 / 443 в сети Kubernetes pod, которая отличается от сети хоста. Следовательно, доступ к нему через http://opaapp.info/api/ping не работает. Чтобы заставить его работать так, как вы ожидаете, необходимо установить входной контроллер nginx с опцией hostNetwork: true, чтобы он мог прослушивать порт 80/443 непосредственно в сети хоста (172.17.0.2), что можно сделать, как описано здесь .

...