【问题标题】:Istio Mesh Federation Locality AwareIstio Mesh Federation 本地感知
【发布时间】:2020-03-25 00:51:42
【问题描述】:

我们正在尝试将我们的微服务架构迁移到 K8s 和 Istio。我们将有两个不同的 k8s 集群。每个前端应用程序一个,另一个用于后端应用程序。我们最初的想法是将每个集群配置为一个独立的 Istio Mesh。

我的疑问是;

当前端应用向后端应用发出请求时,我们能否保持集群之间的位置感知路由?

我已经读过,当您在 K8s 集群中分布一个网格时,这是可能的,但我不确定在实施网格联合架构时此功能是否继续工作。

谢谢!

【问题讨论】:

    标签: kubernetes istio


    【解决方案1】:

    有一个类似 istio 多集群配置的功能。

    根据您的要求,可以有不同类型的多集群模型。

    根据istio文档:

    在配置 Istio 的生产部署时,您需要回答一些问题。网格会被限制在单个集群中还是分布在多个集群中?所有服务是否都位于一个完全连接的网络中,或者是否需要网关来连接多个网络的服务?是否有单个控制平面,可能跨集群共享,或者是否部署了多个控制平面以确保高可用性 (HA)?如果部署了多个集群,更具体地说是在隔离的网络中,它们是要连接到一个单一的多集群服务网格中,还是会联合到一个多网格部署中?

    除其他外,所有这些问题都代表了 Istio 部署的独立配置维度。

    1. 单个或多个集群
    2. 单个或多个网络
    3. 单个或多个控制平面
    4. 单个或多个网格

    所有组合都是可能的,尽管有些组合比其他组合更常见,有些显然不是很有趣(例如,单个集群中的多个网格)。


    至于mesh 功能:

    单网

    最简单的 Istio 部署是单个网格。在网格中,服务名称是唯一的。例如,foo 命名空间中只有一项服务可以具有名称 mysvc。此外,工作负载实例共享一个共同的身份,因为服务帐户名称在命名空间中是唯一的,就像服务名称一样。

    单个网格可以跨越one or more clustersone or more networks。在网格内,namespaces 用于tenancy

    多个网格

    多个网格部署来自网格联合。

    多个网格比单个网格提供以下功能:

    • 组织边界:业务范围
    • 服务名称或命名空间重用:default 命名空间的多种不同用途
    • 更强的隔离:将测试工作负载与生产工作负载隔离

    您可以通过网格联合启用网格间通信。联合时,每个网格都可以公开一组服务和身份,所有参与的网格都可以识别。

    为避免服务命名冲突,您可以为每个网格分配一个全局唯一的网格 ID,以确保每个服务的完全限定域名 (FQDN) 是不同的。

    当联合两个不共享相同信任域的网格时,您必须在它们之间联合身份和信任包。有关概述,请参阅Multiple Trust Domains 部分。


    所以我建议将多集群模型应用于您的需求。最简单的解决方案通常是最好的。单网格多集群确实允许为您的多集群环境命名位置。


    还有 advanced 使用 Admiral 的多集群 istio 示例,它允许自定义命名。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2021-03-24
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 2020-04-23
      • 2023-02-25
      • 2010-10-21
      • 2021-07-12
      • 2019-04-12
      相关资源
      最近更新 更多