如何将 Istio 与 Docker Swarm 进行比较?
How to compares Istio to Docker Swarm?
阅读有关 Istio 的文档时我遇到了这个问题。
Istio 和 Docker Swarm 有哪些相同之处?
另外,在不同的场景下,哪个更好?
这在很多方面都是同类比较。 Istio(当前)在 Kubernetes 之上运行,Kubernetes 是一个类似于Docker Swarm 的容器编排器。
Istio 和 Docker Swarm 的描述确实都引用了术语 "service mesh"。
然而,DockerSwarm 中的服务网格与 Kubernetes 中的服务模型更具可比性,并且这两个编排器在各自拥有的大多数功能方面通常具有可比性。在这两个编排器的服务路由中,只涉及网络层,并且没有对例如网络的可见性。 HTTP协议。
Please note that Kubernetes Ingress API should be considered separately, it actually sits above the service model, and is in fact implemented by an external controller, e.g. Traefik or HAProxy, and actually Istio brings another implementation of ingress controller.
虽然 Istio(大约)比编排器高一级,但目前它仅在 Kubernetes 上运行,但它很可能在未来支持 Docker Swarm 以及其他流行的编排器。
更具体地说,Istio 的服务网格比 Docker Swarm 提供的(以及,通过类比,Kubernetes Services 提供的)先进得多,例如它支持故障注入和透明 TLS,以及许多其他功能。
Docker Engine swarm 模式可以轻松发布服务端口,使它们可供 swarm 外部的资源使用。所有节点都参与入口路由网格。路由网格使 swarm 中的每个节点都可以接受 swarm 中任何服务 运行 的已发布端口上的连接,即使节点上没有任务 运行 也是如此。路由网格将所有传入请求路由到可用节点上的已发布端口到活动容器。
Istio 是一个用于连接、管理和保护服务的开放平台。本质上,它是一个开放的服务网格,我们希望开发人员和运维人员不必为如何连接服务、如何考虑使它们具有弹性、如何保护它们以及如何管理运行时而头疼。我们希望 Istio 能够为所有环境和云中的开发人员和运维人员做到这一点。而且,当我说服务时,它实际上是各种服务,不一定只是微服务。它可以是您正在构建 MySQL API 服务的任何东西,这是您应用程序中用于支付或购物的非常小的微服务,可以使用任何给定的语言。因此,istio 采用了一种在多语言环境中工作的方法。你知道,无论你用哪种语言编写你的服务,无论你部署在哪里,Istio 都想在你的应用程序和网络之间给你一个统一的底层,它可以处理服务之间的连接性,服务之间的弹性。因此,弹性包括诸如重试、故障转移、所有好东西和分布式系统保护服务之类的事情。我们认为内部服务应该和外部服务一样安全,所以默认是安全的。并且,在您的所有服务中,从 L3 到 L7 的所有指标都具有完整的可观察性和可见性。
从本质上考虑层(有些人称之为 L5),它基本上是您的应用程序和网络之间的层。而且,当你考虑它时,你基本上是在创建,我们在每个服务旁边注入代理。而且,这些都在所有服务到服务通信的数据路径中。它们都是相互连接的,并且还连接到一个公共控制平面。而且,与每个服务相邻的互连代理集通常被称为服务网格。它如此有趣的原因是,一旦您将网格视为像网络一样存在的层,您就可以,在应用层将诸如连接性、弹性、可见性之类的东西卸载到该层。因此,从历史上看,您可以在任一应用程序库中执行此操作,就好像您在 java、python 中构建一样,或者您可以使用这些语言中的每一种来导入和编写逻辑的大量库。或者您可以执行 L3 层安全和策略,如 IP 白名单、防火墙规则设置、VPN 网络、VPN 对等等。因此,我们认为服务网格是两者之间的 space,它可以从 L7 卸载一些东西,并提供策略驱动的合同来运营您的网络。因此,Istio 服务网格比 Docker Swarm 服务网格要好得多。
阅读有关 Istio 的文档时我遇到了这个问题。
Istio 和 Docker Swarm 有哪些相同之处?
另外,在不同的场景下,哪个更好?
这在很多方面都是同类比较。 Istio(当前)在 Kubernetes 之上运行,Kubernetes 是一个类似于Docker Swarm 的容器编排器。
Istio 和 Docker Swarm 的描述确实都引用了术语 "service mesh"。
然而,DockerSwarm 中的服务网格与 Kubernetes 中的服务模型更具可比性,并且这两个编排器在各自拥有的大多数功能方面通常具有可比性。在这两个编排器的服务路由中,只涉及网络层,并且没有对例如网络的可见性。 HTTP协议。
Please note that Kubernetes Ingress API should be considered separately, it actually sits above the service model, and is in fact implemented by an external controller, e.g. Traefik or HAProxy, and actually Istio brings another implementation of ingress controller.
虽然 Istio(大约)比编排器高一级,但目前它仅在 Kubernetes 上运行,但它很可能在未来支持 Docker Swarm 以及其他流行的编排器。
更具体地说,Istio 的服务网格比 Docker Swarm 提供的(以及,通过类比,Kubernetes Services 提供的)先进得多,例如它支持故障注入和透明 TLS,以及许多其他功能。
Docker Engine swarm 模式可以轻松发布服务端口,使它们可供 swarm 外部的资源使用。所有节点都参与入口路由网格。路由网格使 swarm 中的每个节点都可以接受 swarm 中任何服务 运行 的已发布端口上的连接,即使节点上没有任务 运行 也是如此。路由网格将所有传入请求路由到可用节点上的已发布端口到活动容器。
Istio 是一个用于连接、管理和保护服务的开放平台。本质上,它是一个开放的服务网格,我们希望开发人员和运维人员不必为如何连接服务、如何考虑使它们具有弹性、如何保护它们以及如何管理运行时而头疼。我们希望 Istio 能够为所有环境和云中的开发人员和运维人员做到这一点。而且,当我说服务时,它实际上是各种服务,不一定只是微服务。它可以是您正在构建 MySQL API 服务的任何东西,这是您应用程序中用于支付或购物的非常小的微服务,可以使用任何给定的语言。因此,istio 采用了一种在多语言环境中工作的方法。你知道,无论你用哪种语言编写你的服务,无论你部署在哪里,Istio 都想在你的应用程序和网络之间给你一个统一的底层,它可以处理服务之间的连接性,服务之间的弹性。因此,弹性包括诸如重试、故障转移、所有好东西和分布式系统保护服务之类的事情。我们认为内部服务应该和外部服务一样安全,所以默认是安全的。并且,在您的所有服务中,从 L3 到 L7 的所有指标都具有完整的可观察性和可见性。
从本质上考虑层(有些人称之为 L5),它基本上是您的应用程序和网络之间的层。而且,当你考虑它时,你基本上是在创建,我们在每个服务旁边注入代理。而且,这些都在所有服务到服务通信的数据路径中。它们都是相互连接的,并且还连接到一个公共控制平面。而且,与每个服务相邻的互连代理集通常被称为服务网格。它如此有趣的原因是,一旦您将网格视为像网络一样存在的层,您就可以,在应用层将诸如连接性、弹性、可见性之类的东西卸载到该层。因此,从历史上看,您可以在任一应用程序库中执行此操作,就好像您在 java、python 中构建一样,或者您可以使用这些语言中的每一种来导入和编写逻辑的大量库。或者您可以执行 L3 层安全和策略,如 IP 白名单、防火墙规则设置、VPN 网络、VPN 对等等。因此,我们认为服务网格是两者之间的 space,它可以从 L7 卸载一些东西,并提供策略驱动的合同来运营您的网络。因此,Istio 服务网格比 Docker Swarm 服务网格要好得多。