Контроллер Nginx Ingress возвращает 404 Kubernetes
Я пытаюсь создать входной контроллер, который указывает на службу, которую я предоставил через 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/;
}
Ответы
Вы должны использовать правильное имя хоста, чтобы достичь маршрута, определенного в 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