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

为什么Istio要求pod至少属于Kubernetes中的一个服务?

解柏
2023-03-14

Istio 的部署要求规定,Pod 必须至少属于一个 Kubernetes 服务才能构成 Istio 网格的一部分。据我所知,其中一个原因是创建一个条目来引用配置规则中的Pod(或Pod组)(例如

还有其他原因吗?


共有1个答案

冀耀
2023-03-14

Istio 的许多功能(策略实施、分布式跟踪、跨服务指标)都依赖于了解请求来自哪个服务。通常,您只需要创建 Kubernetes 服务即可将入站请求路由到特定的 pod,但 Istio 更普遍地使用它们将 Pod 与抽象的“服务”相关联。

假设pod A正在调用pod B。即使在普通的Kubernetes中,您也需要为B提供一个服务,并且来自A的请求将直接针对服务而不是pod。例如,如果您在Istio中设置了指标(可能使用其内置的Prometheus),那么Istio也会尝试查找服务a。如果它找到了,您将看到类似<code>Istio_requests_total(source_service=“a”,destination_service=B)</code>的指标。如果没有,源将显示为“未知”。

 类似资料:
  • 我已经使用helm chart安装了普罗米修斯,所以我列出了4个部署文件: null 现在一个新的pod被创建和崩溃,如果我删除部署文件,那么以前的pod也被删除。那么我可以为那个crashLoopBackOff吊舱做些什么呢? kubectl输出截图

  • 我有这个OpenAPI模式: 所有属性都是必需的。这是用于<code>PUT/user/profile<code>的。 我会把它改成 。用户发送的参数只是他们只请求更改。系统验证至少需要一个参数。 我如何描述[用户名,电子邮件,描述,个人资料_图标]之一是必需的? 可接受的示例请求: 不可接受的示例(错误): 注释器很接近,但它似乎仅适用于模式,而不是属性。 https://swagger.io/

  • 快速问题 - 假设我有一个这样的组件: 如果我们不传递 nameA,有没有办法在 Typescript 中强制使用 nameB? 写起来

  • 问题内容: 在Spring MVC中,有两个上下文。一种是由引导的应用程序上下文或全局上下文。它采用参数中提到的所有配置文件。 现在,如果您还使用Spring MVC,则需要Dispatcher Servlet,它会启动另一个容器,该容器也称为Web应用程序容器。该容器将全局容器作为父容器。 将struts1与spring集成时,只有一个上下文。Spring MVC为什么需要两个?使用spring

  • 我使用的是OpenAPI3,有两个查询参数,其中至少有一个是必需的,但哪个并不重要。 这在OpenAPI3中可能吗?就我所见,规范和JSON模式规范中都没有提到它。

  • 在节点中使用mongoose插件。js应用程序将开启不止一个连接,即使我只调用