我正在使用带有 spring boot 的 spring cloud kubernetes 和项目所需的必要 RBAC 要求。
<!-- kubernetes -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-kubernetes</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-kubernetes-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-kubernetes-ribbon</artifactId>
</dependency>
我在 kubernetes 中运行了 2 个微服务
my-service
some-service
使用Spring my-service
Boot 2.xsome-service
运行并使用 Spring Boot 1.x 运行。这两项服务都通过 KubernetesService
和适当的端点公开。
application.yaml
for的摘录my-service
如下。
some-service:
url: http://some-service:8080
serviceName: some-service
使用的 FeignClient 如下。
//FeignClient(url = "${some-service.url}") // does not work either
@FeignClient(value = "${some-service.serviceName}")
@RequestMapping("/api")
public interface SomeServiceClient {
我也做了spring.cloud.kubernetes.discovery.enabled=false
有了这个,我希望它my-service
应该能够some-service
通过 kubernetes 服务发现进行对话,但是我收到了这个错误。
ERROR c.b.d.m.s.c.MatchCoordinator - error=FeignException: status 404 reading SomeServiceClient#get(Test
ion,Output) stacktrace=feign.FeignException: status 404 reading SomeServiceClient#get
我无法理解我做错了什么。some-service
此外,由于它是第三方服务,因此我没有设置 spring.application.name 。
有人可以帮忙吗。另外仅供参考,服务可以通过端口转发正常工作,如果通过 Ingress 访问。