我的应用程序在 / 上进行重定向(返回 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
中移除自定义头部后,它开始工作了!非常感谢。