Контроллер Nginx Ingress возвращает 404 Kubernetes

Aug 16 2020

Я пытаюсь создать входной контроллер, который указывает на службу, которую я предоставил через NodePort.

Вот yaml-файл для контроллера входящего трафика (взят из https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/):

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: hello-world.info
    http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80

Я могу подключиться напрямую к порту узла, и интерфейс отображается.

Обратите внимание, что я делаю это, потому что интерфейсное приложение не может подключиться к другим развертываниям, которые я создал, и я прочитал, что контроллер входящего трафика сможет решить проблему. Придется ли мне еще добавлять обратный прокси Nginx? Если да, то как мне это сделать? Я попытался добавить это в файл конфигурации nginx, но безуспешно.

location /middleware/ {
      proxy_pass http://middleware/;
   }

Ответы

2 Faheem Aug 16 2020 at 09:10

Вы должны использовать правильное имя хоста, чтобы достичь маршрута, определенного в Ingressобъекте. Либо обновите свой /etc/hostsфайл, либо используйте curl -H "hello-world.info" localhostкоманду type. Кроме того, вы можете удалить hostсопоставление и перенаправить весь трафик в одну службу по умолчанию.

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80