在私有集群和公共集群之间使用 Istio  

通过连接私有和公共 Kubernetes 集群之间的服务来构造混合云

Description

如果您决定踏上混合云之路,势必已经知道管理各种不同的工作负载绝非易事。在此 Code Pattern 中,我们将介绍一个应用,其中包含一个 Web 前端、一个用于存储的 Redis 主服务器和一组复制的 Redis 从服务器,最后还包含 Kubernetes 复制控制器、Pod 和服务。 在此样本应用程序示例中,用户提交评论,Watson Tone Analyzer 利用表情符号来增强评论,我们希望配置自己的多集群,以便在 Kubernetes 集群和私有云集群上运行不同的微服务。当样本应用调用远程 Tone Analyzer 服务,而该服务本身从云端调用 Watson Tone Analyzer 服务时,即可在集群之间建立通信。

概览

在此 Code Pattern 中,通过使用 Istio 连接 IBM Cloud PrivateIBM Cloud Kubernetes Service (IKS) 集群之间的服务来创建混合云。我们假定无法从组织网络外部访问 IBM Cloud Private,但它仍可以访问 IKS 集群。这使我们能够通过由 IBM Cloud Private 集群启动的 VPN 隧道,在 IBM Cloud Private 与 IKS 上运行的服务之间设置双向通信。

虽然本 Code Pattern 中使用的示例应用程序需要 IBM Cloud 才能使用其 Watson Tone Analyzer,但此处显示的 Code Pattern 可用于集成大部分私有集群和公共集群。

  • 使用 VPN 隧道连接私有云和公共云。
  • 在私有集群和公共集群之间分布微服务,同时保持双向连接。
  • 使用 Istio 进行多集群流量路由。

  1. guestbook 应用的用户使用其浏览器从公共云访问 guestbook 服务提供的 Guestbook 网页。
  2. 当访客提交评论时,guestbook 服务需要利用基于所提交文本语气的表情符号对其进行扩充。guestbook 服务对提交的文本调用 analyzer 服务进行语气分析。guestbook 服务会将 analyzer 服务视为本地服务来调用(服务/应用尚未修改为支持远程服务)。
  3. analyzer 服务在远程私有云上运行,因此 Istio 会通过 VPN 隧道将调用路由至私有云的 Ingress 网关。
  4. analyzer 服务对收到的文本有效负载调用 Watson Tone Analyzer 服务,然后从公共服务获取返回的语气分析结果。
  5. 一旦收到 analyzer 服务的响应,guestbook 应用就会向网页中所提交的文本添加匹配的表情符号。

Instructions

准备好利用本 Code Pattern 了吗?README 中提供了有关如何开始运行和使用此应用程序的完整详细信息。

相关博客

相关链接

英文原文

本 Code Pattern 翻译自:Using Istio across private and public clusters(2018-09-05)

IBM Cloud

一个横跨公共、私有和混合环境的全栈式云平台。

IBM Cloud Kubernetes Service

Kubernetes Service 创建计算主机的集群并部署高度可用的容器。通过 Kubernetes 集群。您可以安全地管理快速部署、更新和扩展应用程序所需要的资源。