
Ich versuche, einen sehr einfachen Kubernetes-Cluster mit Frontend-, Backend- und DB-Diensten einzurichten. Hier ist ein Teil der Frontend-Dienstdefinitionsdatei:
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
tier: frontend
spec:
selector:
tier: frontend
ports:
- port: 80
nodePort: 30080
type: LoadBalancer
Wenn ich auf die IP des Clusters über Port 30080 zugreife, funktioniert alles ordnungsgemäß.
Jetzt versuche ich, einen Ingress einzurichten, der an Port 80 funktioniert (als Vorbereitung für die Bereitstellung des Clusters in Azure). Ich möchte den gesamten HTTP-Verkehr an das Frontend weiterleiten, da dies der einzige HTTP-Dienst in meinem Cluster ist. Die Ingress-Definitionsdatei sieht also wie folgt aus:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: zippori
annotations:
kubernetes.io/ingress.class: addon-http-application-routing
spec:
backend:
serviceName: frontend
servicePort: 80
Wenn ich jedoch aufhttp://minikube-ipIch erhalte den folgenden sehr einfachen Fehler:
Standard-Backend – 404
Es ist, als ob Ingress nichts an mein Frontend weiterleitet und nur sein eigenes Standard-Backend versucht.
Wie kann ich das beheben?
Antwort1
Das Problem liegt beim Ingress-Dienst.
In der Ingress-Art YAML verwenden Sie die Annotation, um „Ingress-Backend“ zu definieren. Für AKS ist es „addon-http-application-routing“, aber für Minikube funktioniert es sofortkubernetes.io/ingress.class: nginx
Durch Aktualisieren von Ingress mit der richtigen Annotation sollte der Dienst für Ihr Minikube-Setup aktiviert werden.