开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

为部署在 Kubernetes 上的微服务应用程序构建 Istio 服务网格

摘要

本 Code Pattern 重点介绍如何将旅行预订微服务应用程序部署到 Kubernetes,并使用 Istio 创建服务网格。Kubernetes 用于对应用程序进行容器化处理,而 Istio 提供了一种连接、控制和监视容器间微服务交互的方法。

概览

Bee Travels 是一个概念性的旅行预订 Web 应用程序,用于演示微服务架构。通过微服务,可将应用程序分解为多个较小的独立服务,这些服务可以单独开发、部署和维护。这种拆分带来了许多优点,包括实现有针对性的可扩展性、提高故障确定能力以及能够灵活使用可定制的技术组合。然而,如果没有服务网格就很难管理这些微服务。

Istio 是一个开源服务网格平台,它提供了一种连接、控制和监控微服务交互的方法。配置规则后,服务网格就可以负责流量管理,并通过收集的遥测数据实现网格可观察性。

本 Code Pattern 重点介绍 Bee Travel 应用程序的以下五种微服务:

  • UI
  • 目的地
  • 酒店
  • 租车
  • 货币兑换

目前该应用程序有三个版本。版本 1 将目的地、酒店和租车数据存储在本地 JSON 文件中。版本 2 将数据存储在集群内的 MongoDB 部署中。版本 3 连接到用于 MongoDB 的 IBM Cloud 数据库服务。本 Code Pattern 将流量传递转移到服务的特定版本,同时观察跟踪和指标以分析延迟。

流程

Bee Travels Istio 服务网格架构流程图

1.用户通过 Istio 进入网关(Envoy 代理的实例)访问前端 UI 服务。

2-4.UI 服务将调用传递到酒店、租车和目的地服务。Istio 控制调解流量,根据 Istio 传递权重将其转发到服务的版本 1,版本 2 或版本 3。版本 1 服务将数据存储在内存中。

5.UI 服务调用货币兑换服务(仅限一个版本)。

6.每个服务的版本 2 使用 MongoDB 的集群内实例。

7.每个服务的版本 3 使用基于 IBM Cloud 的 MongoDB 实例。

操作说明

可在 README 文件中找到本 Code Pattern 的详细步骤。这些步骤将展示如何:

  1. 完成必要的 IBM Cloud 设置。
  2. 克隆代码库。
  3. 将应用程序部署至 Kubernetes。
  4. 配置 Istio 服务网格。

本文翻译自:Building an Istio 1.6 service mesh for a microservices application deployed on Kubernetes(2020-09-29)