iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
Cloud Native

駕馭商用容器叢集,汪洋漂流術系列 第 16

【Day 16】 Service Mesh / Istio / OSSM - 叢集內的交通警察

  • 分享至 

  • xImage
  •  

前言

微服務架構已經成為現代應用的主流,也因為服務越來越多樣,管理不同服務之間通訊、流量治理、安全控管、可觀測性等,都變得複雜。 為了讓開發者關注在自身程式,由 Service Mesh 負責監控正是他被設計出來的目的。 而在 Kubernetes 與 OpenShift 世界裡,最知名的 Service Mesh 實作就是 Istio。

這篇會介紹什麼是 Istio,再分享如何在 Disconnected OCP(無法連外的 OpenShift 叢集) 裡,安裝並運行 Istio(OpenShift Service Mesh, OSSM)。

Istio

  • Istio 是一個 開源 Service Mesh 平台。
  • 核心概念是透過 sidecar proxy(通常是 Envoy) 攔截 Pod 的進出流量,並將流量控制、憑證驗證、加密、監控等功能下放給 Mesh 層來處理,而不是讓應用程式自己處理。

主要功能

  1. 流量管理 (Traffic Management)
    • 輕鬆實現藍綠部署、金絲雀發布、A/B 測試。
    • 支援流量分流、重試、熔斷、故障注入。

    就是分流

  2. 安全性 (Security)
    • 預設支援 mTLS(雙向 TLS),保護服務之間通訊。
    • 透過 Policy 控制服務之間的存取權限。

    mutual TLS
    是零信任架構的一種,因為叢集內,可以透過 Cluster IP 去訪問別的容器。
    透過 mutual TLS 避免被別叛徒偷聽。

  3. 可觀測性 (Observability)
    • 自動收集遙測資料,包含流量統計、延遲、失敗率。
    • 整合 Prometheus、Grafana、Jaeger、Kiali 等工具,提供全鏈路追蹤與拓撲視覺化。
  4. 平台整合性
    • 不只支援 Kubernetes,也可以延伸到 VM 或多雲環境。

在 OpenShift 裡,Red Hat 基於 Istio 提供了一個更容易安裝與維運的版本,稱為 OpenShift Service Mesh (OSSM)

離線安裝

在有連上網際網路的 OCP 環境中,要安裝這些玩意兒,就是進到 OCP console 找到 OperatorHub 按一按就裝好了。 而大多情況,使用 OCP 的企業,很多都把叢集藏在內部網路,嚴加控管。 接下來會說明,無網路安裝的方法。

符合離線安裝的要素:

  • 無法直接從 registry.redhat.io 下載 Operator 與相關映像。
  • OCP OperatorHub 無法連線到 Red Hat 官方 Catalog。
  • 需要部署 QUAY 或其他種 Private Registry

準備映像

  • 從有外網的環境,使用 oc adm catalog mirror 將 Red Hat Operator Catalog(包含 Service Mesh、Jaeger、Elasticsearch)鏡像到內部 Quay (quay.xxx.com)。

建立 CatalogSource:

  • 在 disconnected OCP 裡建立一個 CatalogSource,指向內部 Quay registry 的 Operator Catalog。

安裝並配置 Istio (SMCP + SMMR):

  • 使用 ServiceMeshControlPlane (SMCP) 部署 Istio 控制平面。
  • 使用 ServiceMeshMemberRoll (SMMR) 將應用 namespace 加入 mesh。

結論

  • 今天時間不夠,只能先寫些觀念,理解完這些觀念後,下一回再來把細節都截取出來。

上一篇
【Day 15】 DaemonSet / StatefulSet / PVC - 在叢集中部署監控、有狀態容器所需的工作負載
系列文
駕馭商用容器叢集,汪洋漂流術16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言