Le contrôleur d'entrée Nginx renvoie 404 Kubernetes
J'essaie de créer un contrôleur d'entrée qui pointe vers un service que j'ai exposé via NodePort.
Voici le fichier yaml du contrôleur d'entrée (extrait de 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
Je peux me connecter directement au port du nœud et le frontend s'affiche.
Veuillez noter que je fais cela parce que l'application frontend est incapable de se connecter à d'autres déploiements que j'ai créés et j'ai lu qu'un contrôleur d'entrée serait en mesure de résoudre le problème. Dois-je encore ajouter un proxy inverse Nginx? Si oui, comment ferais-je cela? J'ai essayé d'ajouter ceci au fichier de configuration nginx mais sans succès.
location /middleware/ {
proxy_pass http://middleware/;
}
Réponses
Vous devez utiliser un nom d'hôte approprié pour atteindre l'itinéraire défini dans l' Ingress
objet. Mettez à jour votre /etc/hosts
fichier ou utilisez la curl -H "hello-world.info" localhost
commande type. Vous pouvez également supprimer le host
mappage et rediriger tout le trafic vers un service par défaut.
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: appName
servicePort: 80