La pénétration de répondre avec "backend par défaut - 404' lors de l'utilisation de GKE
À l'aide de la dernière Kubernetes version en BPC (1.6.4
), j'ai le texte suivant Ingress
définition:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myproject
namespace: default
annotations:
ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: "gce"
spec:
rules:
- host: staging.myproject.io
http:
paths:
- path: /poller
backend:
serviceName: poller
servicePort: 8080
Voici mon service et déploiement:
apiVersion: v1
kind: Service
metadata:
name: poller
labels:
app: poller
tier: backend
role: service
spec:
type: NodePort
selector:
app: poller
tier: backend
role: service
ports:
- port: 8080
targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: poller
spec:
replicas: 1
template:
metadata:
labels:
app: poller
tier: backend
role: service
spec:
containers:
- name: poller
image: gcr.io/myproject-1364/poller:latest
imagePullPolicy: Always
env:
- name: SPRING_PROFILES_ACTIVE
value: staging
- name: GET_HOSTS_FROM
value: dns
ports:
- containerPort: 8080
Dans mon /etc/hosts
j'ai une ligne comme:
35.190.37.148 staging.myproject.io
Cependant, je reçois default backend - 404
lors de curling de n'importe quel poste sur staging.myproject.io
:
$ curl staging.myproject.io/poller/cache/status
default backend - 404
J'ai exactement la même configuration de travailler localement à l'intérieur de Minikube, avec la seule différence étant le domaine (dev.myproject.io
), et qui fonctionne comme un charme.
J'ai lu et essayé à peu près tout ce que j'ai pu trouver, y compris des trucs de ici et ici et ici, mais peut-être que je suis juste en manque de quelque chose... des idées?
- Pourriez-vous partager la sortie de:
kubectl describe ingress
Vous devez vous connecter pour publier un commentaire.
Il prend 5 à 10 minutes pour une voie de devenir réellement utilisable en GKE. En attendant, vous pouvez voir les réponses avec des codes d'état 404, 502 et 500.
Il existe un indice de tutoriel ici: https://cloud.google.com/container-engine/docs/tutorials/http-balancer je vous recommande de le suivre. Basé sur ce que vous venez de coller, je peux dire la chose suivante:
ingress.kubernetes.io/rewrite-target
annotation, c'est peut-être la question.200 OK
àGET /
demande.curl http://<ip>/
mais votre Pénétration spec seulement poignées/poller
point de terminaison. Il est donc normal que vous obtenezdefault backend - 404
d'intervention, tout en interrogeant/
. Vous n'avez pas de configurer tous les composants de/
chemin dans votre Pénétration spec.200 OK
à la base du domaine. Je viens de brancher un vide 200 réponse, attendu quelques minutes, et cela a fonctionné comme prévu. Merci.