我创建了两个 Spring Boot 应用程序,它们都将部署在 Kubernetes 集群中。其中一个应用程序将充当网关,因此使用 Spring Cloud Gateway 作为依赖项。另外我想将服务发现与 Spring Cloud Kubernetes 集成,网关使用服务发现来自动生成相应的路由。但是,当我公开在本地 Minikube 集群中运行的网关应用程序并调用第二个应用程序/服务时,我收到 503 错误并显示以下消息:Unable to find instance for ...-service
目前我已经安装了以下内容:
我创建了一个包含两个子项目(网关和另一个服务)的 Gradle 项目。所有项目都将在本地构建/部署。默认服务帐户具有读取 Kubernetes API 的权限。部署这些服务后,我向外部公开网关服务。在网关服务中,我实现了一些端点,其中
一切似乎都有效,但是当我使用其他服务调用时URI/serviceId,出现 503 错误...
使用以下 Spring Cloud 版本: spring-cloud-starter-kubernetes 1.0.1.RELEASE spring-cloud-starter-gateway 2.1.1.RELEASE
我的演示应用程序可从https://github.com/nmaoez/spring-cloud-gateway-kubernetes 获得,README.md 提供了在本地 Minikube 集群中部署这两种服务的步骤。还显示了所有可用的端点。但有趣的部分是 application.yaml 和网关的应用程序类。
应用程序.yaml:
spring:
application:
name: gateway-service
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
management:
endpoints: …Run Code Online (Sandbox Code Playgroud) service-discovery spring-boot spring-cloud spring-cloud-gateway spring-cloud-kubernetes