Postępowałem zgodnie z samouczkiem równoważenia obciążenia: https://cloud.google.com/container-engine/docs/tutorials/http-balancer, który działa dobrze, gdy używam obrazu Nginx, kiedy próbuję użyć własnego obrazu aplikacji, chociaż backend przełącza się na niezdrowe.kubernetes niezdrowe ingress backend
Moja aplikacja przekierowuje na/(zwraca 302), ale dodałem livenessProbe
w definicji pod:
livenessProbe:
httpGet:
path: /ping
port: 4001
httpHeaders:
- name: X-health-check
value: kubernetes-healthcheck
- name: X-Forwarded-Proto
value: https
- name: Host
value: foo.bar.com
Mój ingres wygląda następująco:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: foo
spec:
backend:
serviceName: foo
servicePort: 80
rules:
- host: foo.bar.com
konfiguracja serwisowy:
kind: Service
apiVersion: v1
metadata:
name: foo
spec:
type: NodePort
selector:
app: foo
ports:
- port: 80
targetPort: 4001
Stan zaplecza w ingress describe ing
wygląda następująco:
backends: {"k8s-be-32180--5117658971cfc555":"UNHEALTHY"}
i przepisy dotyczące wnikaniem wyglądać następująco:
Rules:
Host Path Backends
---- ---- --------
* * foo:80 (10.0.0.7:4001,10.0.1.6:4001)
Wszelkie wskazówki znacznie otrzymanych Próbowałam pracować na to uwagę na wiele godzin bez powodzenia.
Aktualizacja
Dodałem readinessProbe
do mojego rozmieszczenia ale coś nadal wydaje się hit/a ingres jest nadal niezdrowe. Moja sonda wygląda następująco:
readinessProbe:
httpGet:
path: /ping
port: 4001
httpHeaders:
- name: X-health-check
value: kubernetes-healthcheck
- name: X-Forwarded-Proto
value: https
- name: Host
value: foo.com
zmieniłem usługę:
kind: Service
apiVersion: v1
metadata:
name: foo
spec:
type: NodePort
selector:
app: foo
ports:
- port: 4001
targetPort: 4001
Update2
Po wyjęciu niestandardowe nagłówki z readinessProbe
to rozpoczął pracę! Wielkie dzięki.
Właśnie zaktualizowałem mój oryginalny komentarz –
Miałem ten sam problem, twoją odpowiedź, plus odpowiedź tutaj: http://stackoverflow.com/questions/42967763/kubernetes-ingress-gce-keeps-returning-502- error/42971328 pomógł mi rozwiązać ten problem – GrandVizier