我遵循了负载均衡器教程: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
入口中的后端运行状况描述如下:
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中删除自定义标题后,它开始工作了!非常感谢。
我也有同样的问题。遵循Tex的提示,但继续看到该消息。原来我必须在入口前等待几分钟才能验证服务运行状况。如果有人正在经历同样的情况并完成了所有步骤,例如readinessProbe
和lInvenessProbe
,只需确保您的入口指向的服务要么是NodePort
,然后等待几分钟,直到黄色警告图标变成绿色图标。此外,检查StackDriver上的日志以更好地了解正在发生的事情。
我认为值得注意的是,这是留档中一个非常重要的限制:
Pod readinessProbe的更改不会影响创建后的入口。
添加我的readinessProbe后,我基本上删除了我的入口(kubectl删除入口
您需要添加一个readinessProbe(只需复制您的livenessProbe)。
GCE L7入口文档对此进行了解释。
健康检查
目前,所有服务后端必须满足以下任一要求才能通过GCE loadbalancer发送给它的HTTP运行状况检查:1。用“/”上的200进行响应。内容无关紧要。2、在支持服务的POD上公开任意url作为就绪探测。
还要确保readinessProbe指向您暴露于入口的同一端口。在您的情况下,这很好,因为您只有一个端口,如果您添加另一个端口,您可能会遇到麻烦。
问题内容: 我遵循了负载均衡器教程:https : //cloud.google.com/container- engine/docs/tutorials/http-balancer 在使用Nginx映像时,当尝试使用自己的应用程序映像时,它工作正常后端切换为不正常。 我的应用程序重定向到/(返回302),但在pod定义中添加了一个: 我的入口看起来像: 服务配置为: 后端健康状况如下: 入口的规
我正在学习如何使用入口在谷歌Kubernetes引擎上公开我的应用程序。我学习了几本教程,大致了解了需要什么。然而,我不知道为什么我的服务被标记为不健康,尽管它们可以从我直接定义的NodePort服务访问。 这是我的部署文件:(我删除了一些数据,但大部分保持不变) 在阅读时,我需要一个ReadinessProbe和LivinessProbe,以便GKE在我定义的路径上运行健康检查,并且通过使用我自
我试图通过GKE部署应用程序。到目前为止,我为应用程序的前端和后端创建了两个服务和两个部署。我使用“gce”控制器创建了一个ingress ressource,并映射了服务,如图所示 它几乎工作得很好(不是所有映射正确的根,但它工作得很好)。我在代码上添加了修改(只有应用程序的代码),我重建了图像并重新创建了服务,但入口似乎对我添加的修改和 我所有的服务都处于不健康状态 这是前台服务 当我描述时,
我已经在端口80上配置了一个通过apache公开的web应用程序pod。我无法配置从internet访问的服务入口。问题是后端服务总是报告为不健康。 Pod配置: 服务配置: 入口配置: 这会导致后端服务报告为不健康。 健康检查设置:
我正在学习如何使用入口来公开我的应用程序GKE v1.19。我按照GKE docs for Service、Ingress和BackendConfig的教程进行了以下设置。然而,一段时间后,我的后端服务仍然变得不健康。我的目标是覆盖入口控制器的默认“/”健康检查路径。 我在部署中定义了相同的运行状况检查。livenessProbe和readinessProbe下的yaml文件,它们似乎工作正常,因
我正在将包含divolte的库伯内特斯集群从一个GCP(Google Cloud Platform)项目复制到另一个项目。我在已经运行的项目中的配置与目标项目完全相同。在我的新项目中,我没有通过正确的健康检查运行负载均衡器,当我尝试从负载均衡器连接到te静态IP时,我收到502服务器错误。 我遵循了与原始项目相同的步骤: 在GCP上创建群集 部署文件: 服务文件: 入口文件: 我预计负载平衡器会像