設定 Istio 的流量管理元件
Rancher-Istio 將在 Rancher v2.12.0 中被棄用;請使用 SUSE Rancher Application Collection 版本的 Istio 以增強安全性(包含在 SUSE Rancher Prime 訂閱中)。
詳細資訊可以在此公告中找到。
Istio 流量管理的一個核心優勢是它允許動態請求路由。動態請求路由的一些常見應用包括金絲雀部署和藍綠部署。Istio 流量管理中的兩個關鍵資源是虛擬服務和目的地規則。
- 虛擬服務攔截並將流量導向您的 Kubernetes 服務,允許您將請求的流量百分比分配到不同的服務。您可以使用它們來定義當主機被定址時要套用的一組路由規則。
- 目的 地規則作為哪些服務版本可以從虛擬服務接收流量的單一真實來源。您可以使用這些資源來定義套用於路由發生後打算用於服務的流量的策略。
本節描述如何新增一個範例虛擬服務,該服務對應於範例 BookInfo 應用程式中的 reviews 微服務。此服務的目的是在 reviews 服務的兩個版本之間分配流量。
在此範例中,我們接收到 reviews 服務的流量並攔截它,以便其中 50% 流向服務的 v1,50% 流向 v2。
部署此虛擬服務後,我們將生成流量並從 Kiali 視覺化中看到流量均勻地路由到服務的兩個版本之間。
若要為 reviews 服務部署虛擬服務和目的地規則:
-
點擊 ☰ > Cluster Management。
-
前往安裝了 Istio 的叢集並點擊 Explore。
-
在安裝了 Istio 的叢集中,點擊左側導覽列中的 Istio > DestinationRules。
-
點擊 Create。
-
複製並貼上下面提供的 DestinationRule yaml。
-
點擊 Create。
-
點擊 Edit as YAML 並使用此設定:
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: reviews
spec:
host: reviews
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
- name: v3
labels:
version: v3 -
點擊 Create。
然後部署提供使用 DestinationRule 的流量路由的 VirtualService:
- 點擊側邊導覽列中的 VirtualService。
- 點擊 Create from Yaml。
- 複製並貼上下面提供的 VirtualService yaml。
- 點擊 Create。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v1
weight: 50
- destination:
host: reviews
subset: v3
weight: 50
---
**結果:**當您生成此服務的流量時(例如,透過重新整理 ingress 閘道 URL),Kiali 流量圖將反映到 reviews 服務的流量在 v1 和 v3 之間均勻分配。