在阿里雲容器服務上基於Istio實現出口Egress流量管理

概述

在前面的文章中,介紹了在阿里雲容器服務上基於Istio如何實現東西向流量管理。

回顧下引用的示例:

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

四個單獨的微服務:

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

addedvalues微服務有 3 個版本:

  • v1 版本不會調用 styletransfer 服務,也不會提供風險和投資分析結果。
  • v2 版本不會調用 styletransfer 服務,但會提供風險和投資分析結果。
  • v3 版本會調用 styletransfer 服務,提供針對特定用戶的增值服務,即允許用戶上傳圖片進行風格轉換,並返回一張轉換後的圖片。

_

這是4個服務的調用關係,其中3個在Kubernetes集羣內,另外一個在集羣之外。

在前面文章中已經提到,第3 個版本的addedvalues微服務提供的頁面中,按鈕是disabled狀態,無法點擊。這是因爲缺省情況下,Istio 服務網格內的 Pod,由於其 iptables 將所有外發流量都透明的轉發給了 Sidecar,所以這些集羣內的服務無法訪問集羣之外的 URL,而只能處理集羣內部的目標。

出口流量管理

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

kubectl apply -f serviceentry.yaml

註銷之後,當使用以yunqi開頭的用戶名再次登錄時,就會看到如下頁面內容, 按鈕是enabled狀態,可以點擊。
圖片.png

點擊按鈕,在新彈出的窗口中,上次圖片進行風格轉換:
圖片.png

總結

本文通過示例演示了Istio如何實現從集羣內訪問外部服務的出口的流量管理。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章