如何使用 Spring Cloud Netflix 容器在 GKE 中定义 Ingress
How to define Ingress in GKE, with Spring Cloud Netflix containers
我有一个基于 Spring Cloud Netflix 的微服务架构:
- business-owner-service 指向运行在端口 8763 上的 Spring 启动应用程序。端口转发完成,business-owner-service:80 重定向到端口 8763。
- customer-service 指向在端口 8766 上运行的 Spring 启动应用程序。customer-service:80 -> 8766
如果我通过 Spring Cloud Zuul 网关调用架构,架构会正确运行,但我希望设置 Ingress。
我的具体配置如下:
进入
入口路径配置
问题是入口的所有后端服务都处于不健康状态,我不知道自己做错了什么。我必须做什么才能让 Ingress 正常工作?
编辑:根据评论,我尝试为客户服务 pod 定义 readinessProbe,如下所示:
这不起作用,当我尝试仔细检查更新的配置时,readinessProbe 不可见。我认为这是一个错误,但我不确定如何检查探测器是否已更新。
此外,actuator/health GET 是 运行 通过 Zuul 网关:
GKE 入口控制器使用 pod 部署中定义的 readiness probe 执行健康检查。使用 spring boot actuator
添加如下就绪探测器
spec:
containers:
- name: name
readinessProbe:
httpGet:
port: 8080
path: /actuator/health
initialDelaySeconds: 10
在我的案例中,最终的解决方案是运行状况检查配置,而不是 readinessProbe。我更新了为入口后端服务自动创建的健康检查以指向 /actuator/health。这有效
我有一个基于 Spring Cloud Netflix 的微服务架构:
- business-owner-service 指向运行在端口 8763 上的 Spring 启动应用程序。端口转发完成,business-owner-service:80 重定向到端口 8763。
- customer-service 指向在端口 8766 上运行的 Spring 启动应用程序。customer-service:80 -> 8766
如果我通过 Spring Cloud Zuul 网关调用架构,架构会正确运行,但我希望设置 Ingress。
我的具体配置如下:
进入
入口路径配置
问题是入口的所有后端服务都处于不健康状态,我不知道自己做错了什么。我必须做什么才能让 Ingress 正常工作?
编辑:根据评论,我尝试为客户服务 pod 定义 readinessProbe,如下所示:
这不起作用,当我尝试仔细检查更新的配置时,readinessProbe 不可见。我认为这是一个错误,但我不确定如何检查探测器是否已更新。
此外,actuator/health GET 是 运行 通过 Zuul 网关:
GKE 入口控制器使用 pod 部署中定义的 readiness probe 执行健康检查。使用 spring boot actuator
添加如下就绪探测器spec:
containers:
- name: name
readinessProbe:
httpGet:
port: 8080
path: /actuator/health
initialDelaySeconds: 10
在我的案例中,最终的解决方案是运行状况检查配置,而不是 readinessProbe。我更新了为入口后端服务自动创建的健康检查以指向 /actuator/health。这有效