Istio的设计目标——描述Istio设计坚持的核心原则
Posted 儿童编程咨询
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Istio的设计目标——描述Istio设计坚持的核心原则相关的知识,希望对你有一定的参考价值。
Istio的架构有几个关键的设计目标,这些目标是系统能够规模化和高性能处理业务的关键。
1、最大限度地提高透明度
采用Istio使运维人员或开发人员做尽可能少的工作量即可从系统中获得真正的价值。为此,Istio将自身自动注入到服务间的所有网络路径中。Istio使用slicecar代理来捕获流量,并且在可能的地方自动编程网络层,以路由流量通过这些代理,而无需对已部署的应用程序代码进行任何改动。在Kubernetes中,代理被注入到pod中,通过编制iptable规则来捕获流量。一旦注入slicecar代理到pod中并且编写了路由规则,Istio就能够调解所有流量。这个原则也适用于性能。当将Istio应用于部署时,运维人员可以发现,为了提供这些功能而增加的资源开销是很小的。所有组件和API在设计时都必须考虑性能和规模。
2、渐进性
随着运维人员和开发人员越来越依赖Istio提供的功能,系统必然和他们的需求一起成长。虽然我们期望继续自己添加新功能,但是我们预计最大的需求将是有能力扩展策略系统,与其他策略和控制来源集成,并将关于网格行为的信号传播到其他系统进行分析。策略运行时支持标准扩展机制一遍插入到其他服务中。此外,它允许扩展其词汇表,以允许基于网格生成的新信号来执行策略。
3、可移植性:
使用Istio的生态系统将在许多方面有所不同。Istio必须能够以最少的代价运行在任何云或预置环境中。将基于Istio的服务移植到新环境应该是轻而易举的,而使用Istio将一个服务同时部署到多个环境中也是可行的(例如,在多个云上进行冗余部署)。
4、策略一致性:
服务之间的API调用策略提能够控制服务网格行为,但对于不必在API级别表达的资源来说,这些策略也同样重要。例如,将配额应用到由ML训练任务消耗的CPU数量上,这就比为初始化工作的调用设置配额更为有用。因此,单独维护一个具有自己API的策略系统,而不是将其放到sidecar代理中,能够让服务根据需要直接集成。
以上是关于Istio的设计目标——描述Istio设计坚持的核心原则的主要内容,如果未能解决你的问题,请参考以下文章