部署

了解有助于实现快速有效实施(第一天、第二天和第一千天)的最佳实践。

您已决定要使用 Istio。欢迎来到服务网格的世界。恭喜,您加入了一个优秀的群体!

如果您还没有,您可能希望在测试环境中试用 Istio,并完成我们的入门指南。这将让您了解流量管理安全可观察性功能。

自己动手,还是请个向导?

Istio 是开源软件,您可以自行下载和安装。在 Kubernetes 集群上安装网格就像运行一条命令一样简单。

$ istioctl install

随着新版本的发布,您可以测试它们,并逐步将其部署到您的集群中。

许多托管 Kubernetes 服务提供商都提供自动安装和管理 Istio 的选项。查看我们的分销商页面,了解您的供应商是否支持 Istio。

Istio 也是许多商业服务管理产品的引擎,并有一支专家团队随时准备帮助您入门。

云原生咨询顾问的社区正在不断发展,他们能够帮助您完成 Istio 之旅。如果您要与 Istio 生态系统成员合作,我们建议您尽早与他们联系。我们的许多合作伙伴和分销商都参与了该项目很长时间,并且在指导您完成旅程方面将是无价之宝。

您应该首先启用什么?

采用 Istio 有很多充分的理由:从为您的微服务添加安全性到提高应用程序的可靠性。无论您的目标是什么,最成功的 Istio 实施都是从确定一个用例并解决该用例开始的。配置网格以解决问题后,您可以轻松启用其他功能,从而提高部署的实用性。

如何将网格映射到我的架构?

通过一次添加一个命名空间,将您的服务逐步引入网格。默认情况下,来自多个命名空间的服务可以相互通信,但您可以通过选择性地选择要向其他命名空间公开的服务来轻松提高隔离性。使用命名空间还可以提高性能,因为配置范围缩小了。

Istio 足够灵活,可以匹配您的 Kubernetes 集群和网络架构的配置。您可能希望在各个集群上运行独立的网格和控制平面,或者您可能只有一个。

只要 Pod 可以在网络上相互访问,Istio 就可以工作;您甚至可以配置 Istio 网关充当网络之间的堡垒主机。

在我们的文档中了解有关各种部署模型的更多信息。

现在也是考虑要使用哪些集成的绝佳时机:我们建议您设置 Prometheus用于服务监控,并与外部服务器进行分层联合。如果贵公司的可观察性堆栈由不同的团队运行,现在是让他们参与进来的好时机。

第一天将服务添加到网格

您的网格现已配置并准备接受服务。为此,您只需在 Kubernetes 中为您的命名空间添加标签,当这些服务重新部署时,它们现在将包含配置为与 Istio 控制平面通信的 Envoy 代理。

配置服务

许多服务开箱即用,但通过在 Kubernetes 清单中添加一些信息,您可以使 Istio 变得更加智能。例如,设置appversion的标签将有助于稍后查询指标。

对于常见的端口和协议,Istio 将检测流量类型。如果无法检测,它将回退到将流量视为 TCP,但您可以轻松地使用流量类型注释服务

了解有关启用应用程序以与 Istio 一起使用的更多信息。

启用安全性

在可能的情况下,Istio 将配置网格中的服务以在相互通信时使用 mTLS。Istio 默认情况下将以“宽松 mTLS”模式运行,这意味着服务将接受加密和未加密的流量,以允许来自非网格服务的流量保持功能。在将所有服务加入网格后,您可以将身份验证策略更改为仅允许加密流量。然后,您可以确定所有流量都已加密。

Istio 的两种 API 类型

Istio 具有适用于平台所有者和服务所有者的 API。根据您扮演的角色,您只需要考虑其中的一部分。例如,平台所有者将拥有安装、身份验证和授权资源。流量管理资源将由服务所有者处理。了解哪些 API 对您有用。

连接虚拟机上的服务

Istio 不仅适用于 Kubernetes;还可以将虚拟机(或裸机)上的服务添加到网格中,以获得 Istio 提供的所有好处,例如双向 TLS、丰富的遥测和高级流量管理功能。

监控您的服务

使用Kiali检查流经网格的流量,或使用ZipkinJaeger跟踪请求。

使用 Istio 的默认Grafana仪表板获取在网格中运行的服务的金指标的自动报告。

操作注意事项和第二天

作为平台所有者,您负责安装和维护网格最新状态,并且对服务团队的影响很小。

安装

使用 istioctl,您可以使用内置配置文件之一轻松安装 Istio。当您自定义安装以满足您的需求时,建议使用 IstioOperator 自定义资源 (CR) 定义您的配置。这使您可以选择完全将安装管理工作委托给 Istio Operator,而不是手动使用 istioctl 进行操作。仅使用 IstioOperator CR 用于控制平面和用于网关的其他 IstioOperator CR,以提高升级灵活性。

安全升级

发布新版本时,Istio 允许进行就地和金丝雀升级。在两者之间进行选择是在简单性和潜在停机时间之间进行权衡。对于生产环境,建议使用金丝雀升级方法。验证新的控制平面和数据平面版本正常工作后,您可以升级网关。

监控网格

Istio 为网格内的所有服务通信生成详细的遥测数据。这些指标、跟踪和访问日志对于了解您的应用程序如何相互交互以及识别任何性能瓶颈至关重要。利用这些信息来帮助您设置断路器、超时和重试以及强化您的应用程序。

就像您在网格中运行的应用程序一样,Istio 控制平面组件也会导出指标。利用这些指标和预配置的 Grafana 仪表板来调整您的资源请求、限制和扩展。

加入 Istio 社区

运行 Istio 后,您就成为大型全球社区的一员。您可以在我们的讨论论坛上提问,或加入 Slack。如果您想改进某些内容或有功能请求,可以直接访问GitHub

祝您网格体验愉快!

这些信息是否有用?
您是否有任何改进建议?

感谢您的反馈!