gpt4 book ai didi

spring-boot - Istio 服务发现

转载 作者:行者123 更新时间:2023-12-02 19:41:00 27 4
gpt4 key购买 nike

我正在 Docker Desktop Kubernetes 安装上尝试非常简单的 Istio 设置。

我有 2 个 Spring boot 微服务,并且已将这 2 个服务部署在我的 K8s“集群”中,没有任何复制。我的 YAML 文件中只有这两个服务的服务和部署。

我已经安装了 istio,我可以看到我的 pod 中有 2 个容器。一个是 Spring Boot 应用程序,另一个是 istio sidecar。

我正在像这样从服务 2 向服务 1 进行休息调用,并且工作正常。

restTemplate.exchange("http://service1:8080/getSomeString", HttpMethod.GET, null, String.class, new Object()).getBody();

但是,现在如果我禁用 sidecar 注入(inject)并重新部署我的服务,它仍然可以正常工作。基本上是 Kubernetes 负责解析 service1 的位置并完成其余调用,而不是 istio。

如何使用 istio 进行服务发现?

最佳答案

Istio 是一个服务网格,因此它不负责服务发现。服务网格向服务 -> 服务流量添加功能(监控、路由等)。因此,当在 Kubernetes 集群上运行时,Kubernetes 继续负责服务发现,正如您所观察到的。

正如 Arghya 的回答所述,使用 Istio,您可以在此基础上应用 VirtualService,这允许您执行“聪明”的附加功能,例如自定义路由,但这绝不会取代或更改底层 Kubertetes 服务的功能发现。

在我看来,VirtualService 是一个令人困惑的术语,因为它听起来像是在以某种方式取代 Kubernetes 的现有功能。我更喜欢将 VirtualService 视为“自定义路由”。

顺便说一句,如果您需要虚拟服务,则只需要一个虚拟服务。我的意思是,您的集群中可能定义了 1,000 个服务(使用正常的 Kubernetes 服务构造)。但也许您只想将自定义路由规则应用于一项服务 - 这很好,您只需在 Istio 中定义 1 个 VirtualService 来处理该问题。

关于spring-boot - Istio 服务发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60138453/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com