iT邦幫忙

2022 iThome 鐵人賽

DAY 4
1

前言

Istio 作為 Service Mesh 熱門的解決方案,到底提供哪些功能,以及專案引用 Istio 時要考慮哪些點,本篇就來帶大家了解一下。

Istio 介紹

https://ithelp.ithome.com.tw/upload/images/20220913/20139235E12qeJ9r4e.png

Istio 是一個開源軟體,讓你可以輕鬆導入 Service Mesh 到專案裡,藉由負載平衡、路由管理、認證等機制,滿足 Microservices 的各種需求,以下為 Istio 提供的幾項功能

  • 自動對 HTTP、gRPC、WebSocket 和 TCP 流量負載平衡
  • 豐富的路由規則、重試、故障轉移等控管功能
  • 自動追蹤叢集內的所有流量,並整合視覺化軟體
  • 服務之間的網路流量都會以 TLS 加密

在專案使用 Istio,無須修改程式碼,就能控管服務之間的網路行為

而 Istio 核心功能主要可分為三類

流量管理 (Traffic Management)

Istio 能配置簡單的規則來控制服務之間的流量以及 API 呼叫,並能輕鬆執行重要任務如 Canary DeploymentA/B Testing 等等。

可觀測性 (Observability)

Istio 提供對服務行為的可觀測性,透過Log aggregationMetricTracing 功能,結合視覺化軟體,增強對專案的 troubleshooting 能力。

安全性 (Security Capabilities)

Istio 提供底層的安全通信管道,並管理認證、授權、加密,讓開發者只需專注於應用程式的安全。

Istio 運作機制

Istio 由 Control Plane 及 Data Plane 所組成, Data Plane 使用 Envoy Proxy,以 Sidecar 模式注入到每個服務,攔截 Microservices 之間的所有網路流量。Control Plane 使用者可依專案採取不同的設定,當配置改變時,就會動態對 Data Plane 下達規則。

https://ithelp.ithome.com.tw/upload/images/20220913/20139235XCPyUzVSU8.png

導入 Istio 前,無法根據流量的類型(來源、去向)做出任何決定

https://ithelp.ithome.com.tw/upload/images/20220913/20139235A7OaeJdlG3.png

導入 Istio 後,使用者能對 Control Plane 採取不同配置,並將規則下達至 Data Plane,藉此控管網路行為

完整介紹可參考 The Istio Service Mesh

採用/不採用 Istio 的理由

看到這大家應該都了解 Istio 是個有強大功能的工具,但也不是所有的情境都適合導入 Istio,還是要根據團隊、專案的情況而定,以下整理該不該採用 Istio 的理由

採用 Istio 的理由

  • 使用 Microservices 架構
  • 使用部屬策略如 Canary DeploymentA/B Testing
  • 須提升可觀測性及內部安全性
  • 需要有更多元的測試方式

不採用 Istio 的理由

  • 使用 Monolithic 架構
  • Service Mesh 元件出現問題時不好找出原因
  • 團隊整體對 Kubernetes 的掌握程度不夠,使用 Istio 會變得更為複雜

總結

經過這幾篇的介紹,應該對 Microservices、Service Mesh 及 Istio 有一定的認識了,但只看文章還是會有點抽象。所以接下來我們就會進入實戰篇,實際使用 Istio 來玩轉 DevOps。

掌握 Programming is king 原則,實際上手才能學好技術


上一篇
Day03 - 強化 Kubernetes 的秘方,服務網格(Service Mesh)介紹
下一篇
Day05 - 使用 Minikube 快速安裝 Kubernetes
系列文
學會 Kubernetes 然後呢?由 Istio 進入 DevOps 偉大航路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言