Istio是一个连接、管理和安全微服务的开放平台。
要启用Istio的全部功能,必须部署多个服务。对于控制飞机:必须部署飞行员、混合器和Citadel,对于数据飞机必须部署特使sidecar。此外,Istio需要Kubernetes、Consul 、Eureka或其他人提供第三方服务目录。最后,Istio需要一个外部系统来存储状态,通常是etcd。至少必须配置三个Istio专用服务,以及至少一个单独的分布式系统(除了Istio之外),才能使用Istio的全部功能。
Istio为基于路径的路由、流量整形、负载平衡和遥测提供了第7层特性。可以针对第7层和第4层属性配置访问控制策略,以根据服务标识控制访问、路由和更多内容。
consule是一个提供服务器和客户机功能的单一二进制文件,包括服务目录、配置、TLS证书、授权等所有功能。使用consule不需要安装额外的系统,尽管consule可以选择支持外部系统(如Vault)来增强行为。这种体系结构使consule可以很容易地安装在任何平台上,包括直接安装到机器上。
consule使用基于代理的模型,其中集群中的每个节点运行一个consule客户机。该客户机维护一个本地缓存,该缓存可以从服务器有效地更新。因此,所有安全的服务通信api都在微秒内响应,并且不需要任何外部通信。这允许我们在边缘执行连接,而不需要与中央服务器通信。Istio将请求流到一个中央混合服务,并且必须通过Pilot将更新推出。这极大地降低了Istio的可伸缩性,而consule能够有效地分发更新并在边缘上执行所有工作。
consule的数据平面是可插拔的。它包含一个内置代理,性能更好,使用更方便。但您也可以使用第三方代理,如Envoy。为作业使用正确代理的能力允许灵活的异构部署,其中不同代理可能更适合它们所代理的应用程序。
除了第三方代理支持之外,应用程序还可以与Connect协议进行本地集成。因此,引入Connect的性能开销可以忽略不计。这些“连接本机”应用程序可以与任何其他支持连接的服务交互,无论它们是使用代理还是也是连接本机的。
consule只对第4层强制授权和标识——要么可以建立TLS连接,要么不能。我们认为服务标识应该绑定到第4层,而第7层应该用于路由、遥测等。我们鼓励用户使用可插入数据平面层来使用支持集群所需的第7层特性的代理。consule将增加更多的第7层功能在未来。
consule实施自动TLS证书管理,并提供轮岗支持。可以在一个大型consule集群中自动旋转叶证书和根证书,而不会中断连接。证书管理系统可以通过consule中的代码更改进行插入,不久将作为外部插件系统公开。这使consule能够与任何PKI解决方案。
由于consule的服务连接特性“Connect”是内置的,它继承了consule的运行稳定性。consule自2014年以来一直在为大公司生产,已知部署在单个集群中的节点多达50,000个。
这种比较是基于我们自己对Istio的有限使用以及与Istio用户的交谈。如果您觉得本比较有不准确之处,请点击本页页脚的“编辑本页”,并提出修改建议。我们力求技术准确,并将审查和更新这一职位的不准确尽快。
来自官网