当前位置: 首页 > 知识库问答 >
问题:

Istio服务发现

郏扬
2023-03-14

我正在尝试一个非常简单的Istio设置Docker桌面库伯内特斯安装。

我有2个Spring Boot微服务,并在我的K8s“集群”中部署了这2个服务,没有任何复制。我的YAMLhtml" target="_blank">文件中只有这两个服务的服务和部署。

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

我像这样从服务2向服务1发出一个rest调用,它工作正常。

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

但是,现在如果我禁用sidecar注入并重新复制我服务,它仍然工作正常。基本上,是 Kubernetes 解决了 service1 的位置,并完成了 rest 调用和 Not istio。

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

共有2个答案

贺轶
2023-03-14

在Istio中,您可以使用虚拟服务进行流量管理。通过单个虚拟服务对多个应用程序服务进行寻址。例如,如果您的网格使用库伯内特斯,您可以将虚拟服务配置为处理特定命名空间中的所有服务。将单个虚拟服务映射到多个“真实”服务特别有用,有助于将单个应用程序转换为由不同微服务构建的复合服务,而无需服务的消费者适应转换。您的路由规则可以指定“对monolith.com这些URI的调用转到微服务A”,等等。您可以看到一个例子来说明这是如何工作的。

苏凯
2023-03-14

Istio是一个服务网格,因此它不负责服务发现。服务网格为服务增加了功能

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

在我看来,VirtualService是一个令人困惑的术语,因为它听起来好像在以某种方式取代Kubernete的现有功能。我更愿意将虚拟服务理解为“定制html" target="_blank">路由”。

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

 类似资料:
  • 我对Kubernetes和Istio有点陌生。我正在尝试创建一个服务并通过HTTPS访问它。 通过HTTP看起来一切都很好 我使用了cert-manager和let's Encrypt来生成证书 证书已成功生成 我使用以下命令生成了机密 这些是我的网关、虚拟服务、集群颁发者和证书的配置文件。 网关 证书 当我运行时,我可以看到tls.crt和tls.key内容。 有什么想法为什么我不能达到我可以通

  • Istio 是由 Google、IBM、Lyft 等共同开源的 Service Mesh(服务网格)框架,作为云原生时代下承 Kubernetes、上接 Serverless 架构的重要基础设施层,于 2017 年开始进入大众视野。

  • 我正在Istio服务网格上观看Pluralsight视频。演示文稿的一部分是这样说的: VirtualService使用库伯内特斯服务查找所有pod的IP地址。VirtualService不会通过[库伯内特斯]服务路由任何流量,但它只是使用它来获取流量可能去往的endpoint列表。 它显示了这个图形(显示pod发现,而不是流量路由): 我对此有点困惑,因为我不知道Istio如何知道要查看哪个库伯

  • 我已经将Kafka部署为statefulset,并将zookeeper配置为leader selector(一个无头服务)。Kafka正像预期的那样运行得非常好。然而,我在配置Istio访问Kafka时遇到了一些问题。 如果我用Kakfa LoadBalancer服务配置Istio,我就能够访问UI。但是,如果我使用无头服务,那么UI本身是不可访问的。我已经测试了不同的其他服务以及,同样的情况。

  • 服务发现服务[架构概述]。 { "cluster": "{...}", "refresh_delay_ms": "{...}" } cluster (required, object) 承载服务发现服务的上游群集的标准定义。该群集必须实现和运行SDS HTTP API的REST服务。 refresh_delay_ms (required, integer) 每次访问SDS群集的API延迟

  • 我正在尝试用以下结构为我的服务创建一个舵手图: 安装helm chart后,部署和服务已成功创建,但virtualservice尚未创建。 我的 istio 虚拟服务 yaml 文件如下所示: 令人惊讶的是,如果我在helm安装完成部署应用程序之后应用上面的yaml,那么就会创建virtualservice。 请帮我调试这个问题,如果需要更多的调试信息,请告诉我。