天天看點

在阿裡雲容器服務上基于Istio實作出口Egress流量管理

概述

在前面的

文章

中,介紹了在阿裡雲容器服務上基于Istio如何實作東西向流量管理。

回顧下引用的示例:

該樣例應用由四個單獨的微服務構成,用來示範多種 Istio 特性。該應用模仿某銀行金融産品的一個分類,顯示某一金融産品的資訊。頁面上會顯示該産品的描述、明細,以及針對特定使用者的增值服務。

四個單獨的微服務:

  • productpage :productpage 微服務會調用 details 和 addedvalues兩個微服務,用來生成頁面。
  • details :該微服務包含了金融産品的資訊。
  • addedvalues:該微服務包含了針對特定使用者的增值服務。它還會調用 styletransfer微服務。
  • styletransfer:該微服務提供了轉移照片藝術風格的API功能。

addedvalues微服務有 3 個版本:

  • v1 版本不會調用 styletransfer 服務,也不會提供風險和投資分析結果。
  • v2 版本不會調用 styletransfer 服務,但會提供風險和投資分析結果。
  • v3 版本會調用 styletransfer 服務,提供針對特定使用者的增值服務,即允許使用者上傳圖檔進行風格轉換,并傳回一張轉換後的圖檔。
在阿裡雲容器服務上基于Istio實作出口Egress流量管理

這是4個服務的調用關系,其中3個在Kubernetes叢集内,另外一個在叢集之外。

在前面文章中已經提到,第3 個版本的addedvalues微服務提供的頁面中,按鈕是disabled狀态,無法點選。這是因為預設情況下,Istio 服務網格内的 Pod,由于其 iptables 将所有外發流量都透明的轉發給了 Sidecar,是以這些叢集内的服務無法通路叢集之外的 URL,而隻能處理叢集内部的目标。

出口流量管理

本任務描述了如何将外部服務暴露給 Istio 叢集中的用戶端。你将會學到如何通過定義 ServiceEntry 來調用外部服務;

kubectl apply -f serviceentry.yaml

登出之後,當使用以yunqi開頭的使用者名再次登入時,就會看到如下頁面内容, 按鈕是enabled狀态,可以點選。

在阿裡雲容器服務上基于Istio實作出口Egress流量管理

點選按鈕,在新彈出的視窗中,上次圖檔進行風格轉換:

在阿裡雲容器服務上基于Istio實作出口Egress流量管理

總結

本文通過示例示範了Istio如何實作從叢集内通路外部服務的出口的流量管理。

歡迎大家使用阿裡雲上的容器服務,快速搭建微服務的開放治理平台Istio,比較簡單地內建到自己項目的微服務開發中。

繼續閱讀