Kontroler Nginx Ingress zwraca 404 Kubernetes
Próbuję utworzyć kontroler danych wejściowych wskazujący na usługę, którą ujawniłem za pośrednictwem NodePort.
Oto plik yaml dla kontrolera danych wejściowych (pobrany z 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
Mogę połączyć się bezpośrednio z portem węzła i wyświetla się frontend.
Zwróć uwagę, że robię to, ponieważ aplikacja frontendowa nie może połączyć się z innymi wdrożeniami, które utworzyłem i przeczytałem, że kontroler wejściowy byłby w stanie rozwiązać problem. Czy nadal będę musiał dodać odwrotny serwer proxy Nginx? Jeśli tak, jak miałbym to zrobić? Próbowałem dodać to do pliku konfiguracyjnego nginx, ale bezskutecznie.
location /middleware/ {
proxy_pass http://middleware/;
}
Odpowiedzi
Aby dotrzeć do trasy zdefiniowanej w Ingress
obiekcie, musisz użyć właściwej nazwy hosta . Zaktualizuj /etc/hosts
plik lub użyj curl -H "hello-world.info" localhost
polecenia type. Alternatywnie możesz usunąć host
mapowanie i przekierować cały ruch do jednej usługi domyślnej.
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: appName
servicePort: 80