【发布时间】:2017-01-10 16:22:43
【问题描述】:
我遵循了负载均衡器教程:https://cloud.google.com/container-engine/docs/tutorials/http-balancer,当我使用 Nginx 映像时工作正常,当我尝试使用自己的应用程序映像时,虽然后端切换到不健康状态。
我的应用程序在 / 上重定向(返回 302),但我在 pod 定义中添加了 livenessProbe:
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
我的入口看起来像:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: foo
spec:
backend:
serviceName: foo
servicePort: 80
rules:
- host: foo.bar.com
服务配置为:
kind: Service
apiVersion: v1
metadata:
name: foo
spec:
type: NodePort
selector:
app: foo
ports:
- port: 80
targetPort: 4001
ingress describe ing 中的后端运行状况如下:
backends: {"k8s-be-32180--5117658971cfc555":"UNHEALTHY"}
入口规则如下:
Rules:
Host Path Backends
---- ---- --------
* * foo:80 (10.0.0.7:4001,10.0.1.6:4001)
收到的任何指示,我一直在努力解决这个问题几个小时,但没有运气。
更新
我已将 readinessProbe 添加到我的部署中,但似乎仍有一些东西击中 / 并且入口仍然不正常。我的探针看起来像:
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
我将服务更改为:
kind: Service
apiVersion: v1
metadata:
name: foo
spec:
type: NodePort
selector:
app: foo
ports:
- port: 4001
targetPort: 4001
更新2
从readinessProbe 中删除自定义标头后,它开始工作!非常感谢。
【问题讨论】:
标签: docker kubernetes google-kubernetes-engine