菜单图标

Istio

了解有关ISTio-Open技术的更多信息,为开发人员提供了一种方式,以便无缝连接,管理和安全的不同微服务网络。

什么是istio?

ISTIO是一个可配置的开源服务网格层,可连接,监视器和保护 容器 在一个 Kubernetes. 簇。在这篇文章中,ISTIO仅使用Kubernetes自然,但它的开源性质使得任何人都可以在任何群集软件上编写ISTIO的扩展。今天,我们将专注于使用Kubernetes的Istio,其最受欢迎的用例。

Kubernetes.是A. 容器编排 工具,Kubernetes的一个核心单元是一个节点。节点由一个或多个容器组成,以及文件系统或其他组件。一种 微服务架构 可能有十几个不同的节点,每个节点都表示不同的微服务。 Kubernetes管理节点的可用性和资源消耗,添加PODS随着POD Autostaler的需求增加。 ISTIO将额外的容器注入POD以增加安全性,管理和监控。

因为它是开源的,ISTIO可以在任何与愿意管理员提供支持的公共云提供商和任何私有云上运行。

以下视频介绍了Istio的基础知识(5:13):

网络服务网格

当组织移动到微服务时,他们需要支持数十种或数百种特定应用程序。管理这些端点分别意味着支持大量的 虚拟机或虚拟机,包括需求。像Kubernetes这样的群集软件可以创建豆荚并缩放它们,但Kubernetes没有提供路由,流量规则或强大的监控或调试工具。

输入服务网格。

随着服务的数量增加,沟通的潜在方式的数量是指数增长的。两个服务只有两个通信路径。三个服务有六个,而10个服务具有90.服务网格通过为通信创建策略来提供单一的方式来配置这些通信路径。

服务网格仪器服务并根据预定义配置指导通信流量。这意味着,而不是配置运行容器(或编写代码来执行此操作),则管理员可以向服务网格提供配置,并将其完成该工作。以前始终必须使用Web服务器和服务到服务通信。

在群集中执行此操作的最常用方法是使用Sidecar模式。 Sidecar是一个新的容器,在POD中,路线和观察服务和容器之间的通信流量。

istio..和Kubernetes.

如前所述,在Kubernetes之上的Istio层,添加了对程序员和管理员基本不可见的容器。称为“Sidecar”容器,这些充当“中间的人”,指导流量并监控组件之间的相互作用。两种工作组合三种方式:配置,监控和管理。

配置

使用Kubernetes设置配置的主要方法是Kubectl命令,通常是“kubectl -f<filename>“,文件是yaml文件的地方。iStio用户可以使用kubect运行新的和不同类型的yaml文件,或使用新的,可选的ioctl命令。

监测

使用ISTIO,您可以轻松监控使用Kubernetes运行的应用程序的运行状况。 ISTIO的仪器可以管理和可视化应用程序的健康,提供更多的见解,而不是Kubernetes提供的集群和节点的一般监控。

管理

因为ISTIO的界面与Kubernetes基本相同,因此管理它几乎不需要额外的工作。事实上,ISTIO允许用户创建影响和管理整个的策略 Kubernetes.集群,减少时间来管理每个群集,同时消除对自定义管理代码的需求。

好处

服务网格的主要优点包括改进调试,监控,路由,安全性和杠杆的功能。也就是说,使用ISTIO,管理更广泛的服务将取得更少的努力。

改进调试

例如,服务具有多个依赖项。保险公司的Pay_Claim服务称为DESTUSTIBLE_AMT服务,该服务调用IS_MEMBER_COVERD服务,等等。复合依赖链可能有10或12个服务呼叫。当其中一个12次失败时,将有一个级联的失败组,导致某种500错误,400个错误,或者可能根本没有响应。

要调试该组调用,您可以使用类似堆栈跟踪的内容。在前端,客户端开发人员可以看到从Web服务器返回哪些元素,并以什么顺序检查,并检查它们。前端程序员可以得到一个 瀑布图 to aid in debugging.

这个例子没有显示的是会发生什么 里面 数据中心 - 如何回调= ParsellamaAudiences调用四个其他Web服务,哪些响应速度更慢。稍后,我们将看到ISTIO如何为Thread函数调用提供的工具,如此。

监测和可观察性

德沃斯 团队和IT管理可能希望观察到流量,以查看延迟,服务时间,错误作为流量百分比等。经常,他们希望看到仪表板。仪表板提供总和或平均值的可视化,或者随着时间的推移,或许是能够将“钻取”到特定节点,服务或POD的能力。 Kubernetes本身不提供此功能。

政策

默认情况下,Kubernetes允许每个窗口向每个其他POD发送流量。 ISTIO允许管理员创建策略以限制哪些服务可以相互使用。因此,例如,服务只能调用其他依赖的其他服务。保持服务的另一个政策是汇率限制,这将阻止流量堵塞服务并防止拒绝服务攻击。

路由和负载平衡

默认情况下,Kubernetes提供循环 负载均衡。如果有六个提供微服务,Kubernetes将提供负载均衡器或“服务”,该负载平衡器或“服务”将请求发送到每个POD的顺序,然后它将重新开始。但是,有时公司将部署不同版本的相同服务在生产中。

最简单的例子可能是蓝色/绿色部署。在这种情况下,软件可能会在不向其发送生产用户的情况下在生产中构建完全新版本的应用程序。在推广新版本后,公司可以将旧服务器保留在发生故障时快速进行交换。

使用ISTIO,这与在配置文件中使用标记一样简单。管理员还可以使用标签来指示基于标题连接到和构建规则的服务类型。因此,例如,Beta用户可以通过最新和最伟大的构建路由到“金丝雀”窗格,而常规用户转到稳定的生产建设。

电路破碎

如果过载或关闭服务,则在继续过载系统的同时将失败其他请求。由于ISTIO正在跟踪错误和延迟,因此它可能强制暂停允许服务恢复 - 经过策略设置的特定请求。您可以通过创建一个小文本文件并指导ISTIO将其作为新策略来执行整个群集的此策略。

安全

istio.默认提供身份,策略和加密,以及身份验证,授权和审核(AAA)。与其他人沟通的管理下的任何POD都将使用加密流量,防止任何观察。同一性服务与加密组合确保没有未经授权的用户可以伪造或“欺骗”-A服务呼叫。 AAA提供安全性和操作专业人员,他们需要监控的工具,较少的开销。

简化管理

传统应用程序仍然需要ISTIO提供的识别,策略和安全功能。具有在错误的抽象级别工作的程序员和管理员,为每个服务提供同样的安全规则。 ISTIO允许他们通过单个控制面板在群集的正确级别设置策略上工作。与此同时,使用ISTIO的访问控制,仪表板和调试工具如下所述,您可以轻松地在命令行添加插件,而不是转到网页。

例子

可视化服务

istio.. 1.1包括一个名为Kiali的新加载项,它提供基于Web的可视化。您可以使用它来跟踪服务请求,钻取详细信息,甚至以自己的方式将服务请求历史记录导出为JSON以查询和格式化。下面的工作负载图提供了基于实际依赖于彼此的服务的实时生成的依赖图。它是从实际观察的交通观察生成的。

新加载项的形象被称为Kiali,它提供了基于Web的可视化

跟踪服务呼叫

Jaeger服务是ISTIO的一个组件,为任何给定的服务提供了跟踪。在此示例中,我们已经跟踪了产品页面。第一张图像中的点数表示服务呼叫。通过单击点,我们可以将“钻取”进入瀑布图以遵循确切的服务请求和响应。

Jaeger服务的图像,ISTIO的一个组件,为任何特定服务提供了跟踪。在此示例中,我们已经跟踪了产品页面。第一图像中的每个点代表服务呼叫。

我们也可以在产品页面上更仔细看。我们可以看到错误是产品页面本身 - 详细信息已成功返回。

产品页面的图像。我们可以看到错误是产品页面本身 - 详细信息已成功返回。

仪表板

istio..附带了许多仪表板(开箱即用),以监控系统健康和性能。这些可以测量CPU和内存利用率,流量需求,400和500误差的数量,时间来服务请求等。最重要的是,只需安装和运行ISTIO并添加Grafana即可获得的最佳,其中包含一个用于ISTIO的一个开源仪表板工具。 Istio还提供了另外两个仪表板:Kiali和Jaeger。

istio..的许多仪表板(开箱即用)的图像,以监控系统健康和性能。

istio.. vs.Emoy.

istio..使用一个Senvoy的版本,虽然很大扩展,以执行监控,管理和记录。需要跟踪每个POD,并且ISTIO需要聚合并提供有关所有POD的信息。使用ISTIO的一个可能的替代方案将是直接将特使部署到Kubernetes集群中并写入管理代码。虽然,当您考虑它时,这基本上重写了Istio,具有自定义开发项目的所有相关成本和错误。

教程

ISTIO网站 (在IBM之外)包括许多有用的文档和ISTIO入门说明。 

istio..和IBM.

管理istio. 作为一部分提供 IBM Cloud Kubernetes服务。该服务提供了无缝安装的ISTIO,自动更新和控制平面组件的生命周期管理,以及与平台记录和监控工具集成。将托管的ISTIO集成添加到新的或现有的集群,并立即收回您的微服务。如果您有兴趣探索Knative,请参阅“编织:一个基本指南。“

了解有关IBM Cloud Kubernetes服务的有关托管ISTIO的更多信息

概述了管理的Kubernetes如何帮助您在云之旅中,看看我们的视频,“管理Kubernetes的优势”:

要了解有关在生产环境中启用和加快容器部署的最佳实践的更多信息,请参阅“报告”在生产中运行容器和Kubernetes的最佳实践。“

了解服务网格如何帮助您使用实用指南控制应用程序中服务之间的交互“ISTIO解释:使用服务网格入门“(PDF,11.1 MB)。

如果您今天准备好开始使用IBM云,请注册 这里.