【发布时间】:2020-11-25 19:53:43
【问题描述】:
我有一个实例组中有 4 个节点的 GKE 集群。 我部署了 Ingress 和几个 pod(每个 pod 仅 1 个副本,因此它们仅位于 1 个节点上)。 我在 Google 控制台(Ingress 详细信息页面)上注意到,所有后端服务仍然处于 Unhealhy 状态,尽管正在运行的 pod 上的运行状况检查正常并且我的应用程序正在运行。 据我了解,它说它不健康,因为在 4 个节点中,只有 1 个节点正在运行给定 pod 的实例(在后端服务详细信息中,它显示“4 个实例中的 1 个健康”)。 我是否正确,我应该担心并尝试解决这个问题吗?在应用程序运行时接受 Unhealthy 状态有点奇怪...
编辑: 进一步排查,下到2个节点,激活healthcheck日志,可以看到后端服务状态好像是上次执行healthcheck的状态。因此,如果它最后检查托管 pod 的节点,则它是健康的,否则它是不健康的。
GKE 版本:1.16.13-gke.1
我的入口定义:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.gcp.kubernetes.io/pre-shared-cert: mcrt-dc729887-5c67-4388-9327-e4f76baf9eaf
ingress.kubernetes.io/backends: '{"k8s-be-30301--503461913abc33d7":"UNHEALTHY","k8s-be-31206--503461913abc33d7":"HEALTHY","k8s-be-31253--503461913abc33d7":"HEALTHY","k8s-be-31267--503461913abc33d7":"HEALTHY","k8s-be-31432--503461913abc33d7":"UNHEALTHY","k8s-be-32238--503461913abc33d7":"HEALTHY","k8s-be-32577--503461913abc33d7":"UNHEALTHY","k8s-be-32601--503461913abc33d7":"UNHEALTHY"}'
ingress.kubernetes.io/https-forwarding-rule: k8s2-fs-sfdowd2x-city-foobar-cloud-8cfrc00p
ingress.kubernetes.io/https-target-proxy: k8s2-ts-sfdowd2x-city-foobar-cloud-8cfrc00p
ingress.kubernetes.io/ssl-cert: mcrt-dc729887-5c67-4388-9327-e4f76baf9eaf
ingress.kubernetes.io/url-map: k8s2-um-sfdowd2x-city-foobar-cloud-8cfrc00p
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: city
networking.gke.io/managed-certificates: foobar-cloud
creationTimestamp: "2020-08-06T08:25:18Z"
finalizers:
- networking.gke.io/ingress-finalizer-V2
generation: 1
labels:
app.kubernetes.io/instance: foobar-cloud
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: foobar-cloud
helm.sh/chart: foobar-cloud-0.4.58
name: foobar-cloud
namespace: city
resourceVersion: "37878"
selfLink: /apis/extensions/v1beta1/namespaces/city/ingresses/foobar-cloud
uid: 751f78cf-2344-46e3-b87e-04d6d903acd5
spec:
rules:
- http:
paths:
- backend:
serviceName: foobar-cloud-server
servicePort: 9999
path: /foobar/server
- backend:
serviceName: foobar-cloud-server
servicePort: 9999
path: /foobar/server/*
status:
loadBalancer:
ingress:
- ip: xx.xx.xx.xx
【问题讨论】:
-
您能分享一下您的
Ingress定义吗? -
我已经用
Ingress定义和进一步调查编辑了我的问题。
标签: google-kubernetes-engine kubernetes-ingress