我很困惑我的 spring-cloud-kubernetes 项目的正确设置是什么,以使用 kubernetes 本机发现并在 kuberbetes 服务前沿 mult 时使用 discoveryclient
我可以通过使用 discoveryClient 并仅按名称引用服务来使事情正常进行。到目前为止,一切都很好。但是,然后我需要选择一个服务实例(它看起来像一个实际的 pod ip+port),我显然不想这样做,因为我想依赖本机服务发现。使用 kubernetes 服务发现时我不应该使用 discoveryClient 吗?
我还可以使用 http://{service-name}.{namespace}.svc.{cluster}.local:{service-port} 使用 restTemplate 连接到其余服务。据我所知,restTemplate 还将使用 discoveryClient 并选择一个 serviceInstance(特别是在使用 @LoadBalanced 注释时)。但是,基于我上面描述的行为,这表明选择了一个服务实例而不是访问实际的 kubernetes 服务。
在处理原生 kubernetes 发现时,我觉得我不了解发现客户端的语义。我也不明白为什么我需要在我的 restTemplate 中使用 {service-name}.{namespace}.svc.{cluster}.local:{service-port} 而不仅仅是 {service-name) 来引用服务(鉴于在使用客户端负载平衡时似乎很多)?
感谢您的澄清。