其实,Istio并不复杂

很长一段时间以来,Istio一直被诟病为复杂和难以使用。作为一个在这个项目上工作了四年多的人,笔者在头两年同意这个说法。然而,自Istio 1.3以来,Istio社区一直致力于简化,Istio现在更加精简,更易于使用,特别是在Istio 1.6或更新版本中。改进的简单性和易用性得到了许多用户的认同。

现在的Istio要简单得多。任何因为早期版本难以使用而避开Istio的人应该再看一看。

用Istio做简单的事情很容易

由于Istio社区对简单性的极大关注,使用Istio,简单的事情现在变得容易了。从三个具体例子开始:

1.安装命令

在Istio的早期,总是要在Istio.io中查找安装说明。这并不是一个简单的命令。现在,用户可以使用istioctl install命令轻松安装Istio,该命令设置默认配置文件。此外,用户可以指定--profile来指示不同的profile文件。

df67075ce10791e2a29b7a17acb8ae96.png

Istio安装大约需要一分钟,只安装了十几个自定义资源定义(CRD):

37aafefa2a6e17bc62160fb9f69f5e39.png

2.分析Istio资源

回到使用Istio的早期,笔者在将一个简单的留言簿应用程序从Kubernetes加载到Istio服务网格时,花了数小时调试Istio资源的问题。现在,加上考虑集群中的其他Istio资源,istioctl analyze可以立即告诉Istio资源有什么问题。

418ae746cc7381f09698e9abb1cbd1f5.png

3.简单的安全策略

大多数用户都采用服务网格,因为安全或架构团队要求保护微服务通信。Istio使这变得非常简单:网格平台团队只需应用身份验证策略,就可以在具有匹配标签的任何服务上启用相互TLS。这意味着服务所有者不需要做任何事情,只需要标记他们的部署,就可以要求使用MTL与他们的服务进行所有通信。你可能认为你可以在不使用服务网格的情况下自己管理所有这些内容,但是修改应用程序代码并创建一个自主开发的框架来管理证书分发和轮换会困难得多。

80705de451a8f3f606d5e1d27c8b2d48.png

服务网格的复杂性

服务网格数据平面是基础设施的一个关键组件,当你需要处理云原生工作负载以及虚拟机或裸金属上的遗留工作负载时,它很复杂。另外,你可以跨不同的区、区域和云运行工作负载。像Istio这样的服务网格对于纯Kubernetes工作负载来说非常简单,但现实是,用户有不同的需求,而且他们中的许多人仍然在非Kubernetes环境中拥有大部分工作负载。对于他们来说,让这些遗留工作负载在云原生旅程中参与到服务网格中是至关重要的。用户甚至表示,这些工作负载中的一些可能会一直留在Kubernetes之外。

这正是保持服务网格简单的挑战所在。使用Istio,需要简化场景,但也需要启用复杂场景。

以安装过程为例,Istio项目被批评提供了太多的选择。虽然使用istioctl安装Istio非常简单,但有一些用户不想在生产中运行istioctl,因为它需要更新其交付管道,并且他们必须为此寻求其他批准。一些常见的工具(如Helm)已经在他们的组织中得到支持,他们可以更容易地利用这些预先批准的工具。此外,一些用户希望控制平面在其集群之外运行,以便可以由不同的团队单独管理,因此外部控制平面是另一种安装方法。因为每个公司或团队都有不同的用例和需求,笔者认为基于用户的不同需求提供选择和灵活性要比使用istioctl install提供一种简单的安装方法更好。

Istio还因其网络API的复杂性而受到批评。复杂性是由丰富的可用功能造成的,同时为南北流量和东西流量提供了一致的API。有趣的是,在过去的几年里,笔者发现所有这些功能都是用户为了解决各种挑战而要求的。应用层网络非常复杂,从边缘到东西流量需要考虑很多场景,例如:

——你的主机名是什么?你是在边缘终止还是使用passthrough传输流量?

——你使用的是什么协议和端口?

——你如何保护边缘?

——你希望如何将流量路由到服务?

——如何提高服务的弹性?

——你是否需要故障切换策略(可能基于位置)?

下一步是什么?

随着大量用户投入生产,Istio项目致力于Istio的第2天操作,因为我们希望确保用户能够成功地在全球范围内大规模运行服务网格。

作为专注于第2天操作的工作的一部分,我们也在标准化API,因为它们变得更加成熟,并提供基于角色的API的清晰分离。例如,在试验该功能时,MeshConfig一直是许多API的发源地,但随着该功能的成熟,社区正在将这些API标准化为自己的自定义资源,以便用户可以轻松配置遥测、扩展或代理配置,而无需要求平台团队修改全局网格配置。

我们将继续将功能从不太成熟的阶段(试验阶段或alpha阶段)升级到成熟阶段(beta阶段或稳定阶段)。和其他成功的项目一样,我们希望保持干净,删除用户不感兴趣的功能。对于长期停留在试验或alpha阶段的特性来说尤其如此。我们将继续简化简单场景,但为用户提供复杂场景。

亲身体验Istio的简约

如果你想了解有关Istio的更多信息,或者仍然需要确定它是否易于使用,请参加我们的Istio研讨会(https://play.instruqt.com/soloio/invite/xxuodq1yhvcr),亲身体验Istio。(注:该链接有效期至11月底,可供500次使用)。在该研讨会中,你可以学习如何从Istio的入口网关逐步采用Istio以安全地公开服务,以及如何观察服务之间的交互以及各种流量控制场景。

原文链接:

https://thenewstack.io/istios-complexity-demystified/

0c3eae716f541f3213f3f0defcd4453c.png

f4814e9a746e9dd829541fd151d2a4c2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值