如何使用Spring Cloud Netflix容器在GKE中定义Ingress

问题描述

我有一个基于Spring Cloud Netflix的微服务架构:

  • business-owner-service指向运行在端口8763上的Spring Boot应用。端口转发完成,business-owner-service:80重定向到端口8763。

    enter image description here

  • customer-service指向运行在端口8766上的Spring Boot应用程序。customer-service:80-> 8766

如果我通过Spring Cloud Zuul网关调用该架构,则该架构可以正常运行,但我希望设置一个Ingress。

我的确切配置如下:

  • 入口

    enter image description here

  • 入口路径配置

enter image description here

问题在于,入口处的所有后端服务都不正常,我不知道自己在做什么错。要使Ingress正常工作,我该怎么办?

编辑:根据评论,我尝试为客户服务吊舱定义readinessProbe,如下所示:

enter image description here

这不起作用,并且当我尝试仔细检查更新的配置时,readinessProbe不可见。我认为这是一个错误,但是我不确定如何检查探针是否已更新。

此外,执行器/运行状况GET正在通过Zuul网关运行:

enter image description here

解决方法

最终,对于我来说,解决方案是运行状况检查配置,而不是readinessProbe。我更新了为入口后端服务自动创建的运行状况检查,以指向/ actuator / health。这行得通

,

GKE入口控制器使用pod部署中定义的readiness probe执行运行状况检查。使用弹簧启动器按如下所示添加准备就绪探针

spec:
  containers:
    - name: name
      readinessProbe:
        httpGet:
          port: 8080
          path: /actuator/health
        initialDelaySeconds: 10

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...