在KubeCon + CloudNativeCon 2018 中國上,阿裡雲舉辦了‘Crafting diverse apps, Alibaba Cloud K8s playground’主題的沙龍,阿裡雲進階技術專家王夕甯與各位技術人員一同進行了一場Istio的動手實踐。

為什麼 Istio 不能缺席?
2018年是Service Mesh服務網格的元年,而Istio的第一個生産可用版本1.0也在今年8月初釋出。
容器是雲原生應用基石,通過應用容器化,不僅使得開發部署更加靈活、遷移更加靈活,并且将這些實作标準化。而容器編排則是更近一步,負責解決如何高效地編排和利用好這些資源。
如今雲原生時代,Kubernetes編排容器服務已經成為一種事實标準;同時微服務與容器在輕量、快速部署、運維等特征的比對,微服務運作在容器中也正成為一種标準實踐。
而Istio在微服務治理上很好地補齊了Kubernetes,同時它又與Kubernetes有着完美的內建,不同于現有的微服務架構如SpringCloud/Netflix OSS等。
在Kubernetes作為基礎架構之上,結合Istio服務網格,支援多雲、混合雲,針對微服務提供有效的治理能力,并以Kubernetes和Istio為基礎,提供針對特定應用負載的不同支援,例如針對Kubeflow服務的流量治理、為Knative提供負載的路由管理能力等。
對于雲原生應用,采用Kubernetes建構微服務部署和叢集管理能力,采用Istio建構服務治理能力,将逐漸成為應用微服務轉型的标準配置。
基于 Istio 的服務網格能力
在Istio社群中,已經內建了在阿裡雲上如何使用Istio的安裝手冊,幫助您快速上手。同時,在阿裡雲容器服務控制台中,也提供了一個一鍵部署、開箱即用的功能,友善大家使用。隻需要勾選不同的功能項,就可以決定是否啟用日志收集、度量展示等功能。
此外,在Istio官方mixer adapters支援中,我們也提供了雲監控的擴充卡,通過Adapter的簡單配置可以很容易地把運作時的名額資料如請求次數等,發送給監控後端 。
利用 Istio 服務網格,可以管理Kubernetes叢集上面的Pod之間的流量,阿裡雲容器服務又提供了很多擴充與內建。
此次重點展現4個方面:
- 在開源社群基礎之上,優化內建了阿裡雲的其他服務。Istio的一個重要能力是實作端到端可觀測性,在下一頁會重點介紹下全鍊路分布式跟蹤的支援。
- 我們一直幫助使用者更容易的去使用Istio,包括指令行支援智能流量路由、金絲雀釋出、流量鏡像等。
- 我們提供了混合部署能力,除了Kubernetes叢集,我們還可以把ECS虛機內建到一個Istio服務網格中。這樣可以幫助現有虛拟機上的應用,逐漸地遷移到容器平台上。此外,Istio和Serverless Kubernetes是天作之和,虛拟節點中ECI實作的POD,可以通過Istio和托管服務節點中的Pod實作互聯互通和統一管理。
- 基于阿裡雲的網絡能力,我們打通了多叢集下的Istio管理。通過Istio将多叢集下的Pod實作互聯互通和統一管理。
此外,阿裡雲容器服務Kubernetes提供了一系列Istio的最佳實踐, 請參考阿裡雲産品文檔或者雲栖社群文章,可以了解如何通過Istio管理應用的灰階釋出,或者通過Istio規則如何實作基于TCP/gRPC/HTTP等協定的流量路由的統一管理,以及基于容器和服務網格的異地多活方案。
以 AI 領域為例的 Istio 應用
AI領域中,深度學習模型的持續優化是生産應用重要挑戰,它關乎到整體效率及資源使用率。比如電商平台,需要根據使用者行為記錄持續訓練模型,才能更好地對使用者偏好和消費熱點進行有效地預測。同時一個新模型上線也需要一個安全可控的流程來驗證新模型帶來的改進。
而基于Istio,阿裡雲可以輕巧實作流量控制和模型版本的更新及復原,以及适用于深度學習模型灰階釋出能力。
在AI領域之外,目前阿裡雲已經支援遊戲行業、自動化辦公、線上教育、網際網路廣告的等數家客戶基于Istio在Kubernetes叢集上進行微服務應用的開發。