使用 nginx 入口控制器实现 Istio 服务网格

问题描述 投票:0回答:1

我是 istio 新手。有几个问题需要您的帮助 已将 nginx 入口控制器作为 AKS 私有集群中的入口,计划实施 istio 服务网格以进行服务间通信。 1)如何确认请求正在通过 sidecar(注入 istio sidecars 后)并且不使用 kubernetes 服务。我在实现istio之前通过删除kube-proxy进行了测试,仍然是kubernetes服务工作。 2)如果服务A有side car而服务B没有side car,那么通信是如何进行的,是否通过side car到kubernetes服务而不去服务B side car? 3) 如何使用 mtls strict 将现有应用程序一个接一个地迁移到 istio 服务网格,它会查找 nginx 入口 pod 也具有 mtls ,所以我无法一次迁移一个?

Istio 服务网格实现

istio istio-sidecar
1个回答
0
投票

我交替使用 sidecar 和 proxy。

  1. 使用 istio 时,sidecar 代理(envoy)包含 kubernetes 服务到 pod IP 映射的所有详细信息。 Envoy 将使用它来负载平衡请求并将请求发送到选定的 pod ip(这是之前由 kube-proxy 完成的)。如果您安装了 istio 并且 pod 包含 sidecar,那么请求将为 sidecar 留下 pod ip 而不是服务 ip。如果您想验证它,可以在 istio 中启用 accesslogging 并在 pod 中查看 istio-proxy 容器日志。
  2. A -> B。假设A是一个有sidecar的pod,B是一个svc,指向一组没有sidecar的pod。 A 中的 sidecar 将了解服务 B 后面的所有 pod。因此,sidecar 将选择其中一个 pod,并将请求专门发送到该 pod。默认情况下,istio 对 mtl 使用 permissive 模式。这意味着如果目标 Pod 没有 Sidecar,则源 Pod 会发送明文请求。 B->istio 总是可以在宽容模式下接受明文。
  3. 对于 mtls 迁移,请遵循 this。基本上,您允许所有 pod 进行 istio 注入,然后严格执行 mtls。您也可以一次执行一个名称空间。
© www.soinside.com 2019 - 2024. All rights reserved.