Istio 透過 Envoy 代理程式與控制平面設定,對工作負載套用流量政策、身分識別、遙測與安全性政策。只有當這些橫切需求足以合理化額外的營運面時,才應採用 Istio。
資料平面與控制平面 #
資料平面由 Envoy sidecar,或由每個節點上的 ztunnel 與選用的 waypoint 代理程式組成的 ambient 部署構成。istiod 透過 xDS 計算並分發服務探索、憑證與流量設定。工作負載路徑會依據所選模式擷取入站與出站流量;繞過該路徑的流量無法由網格政策管理。Ambient 模式與 sidecar 的 L4/L7 強制執行位置不同,因此遷移時必須驗證每項政策的執行位置。
流量管理 #
Gateway 與 VirtualService 資源定義入口監聽器與路由規則。DestinationRule 定義目的地的子集、負載平衡、連線與 TLS 政策。使用 version 等穩定標籤進行路由,並確保子集使用的標籤存在於工作負載上。
加權路由可以將測得比例的流量從穩定子集轉移至金絲雀版本。標頭或身分識別比對可以先將測試流量導向目標。每項變更都必須以代理程式設定收斂與工作負載健康狀態為條件;路由權重無法補償缺少的端點或錯誤的子集選取器。
重試、逾時、斷路器與故障注入會改變失敗行為。依呼叫端的截止時間設定預算;不受限制的重試政策可能放大過載,並重複執行不可等冪的工作。
身分識別與安全性 #
Istio 根據 Kubernetes 服務帳戶簽發工作負載身分識別,並可在代理程式之間使用相互 TLS。確認每個必要的工作負載都參與網格後,使用 AuthorizationPolicy 強制執行授權。遷移初期僅為找出未受管理的流量而使用 permissive 模式,接著依照明確的遷移計畫轉為 strict 相互 TLS。
使用 PeerAuthentication 設定 mTLS 狀態;在需要時使用 RequestAuthentication 驗證終端使用者 JWT,並使用 AuthorizationPolicy 做出存取決策。工作負載身分識別不能取代針對租戶或業務權限的應用程式授權。
istiod 會充當憑證授權單位或與外部 CA 整合,接著在短效期工作負載憑證到期前輪替憑證。監控憑證簽發、根憑證轉換、信任網域設定與時鐘偏差。在根憑證輪替期間,應先分發重疊的信任關係,再替換葉憑證,讓舊工作負載與新工作負載可以彼此驗證。
營運 #
有意識地管理網格控制平面與資料平面的版本,在推出前檢視分析器輸出,並監控代理程式資源使用量、憑證到期時間與設定收斂狀態。使用 istioctl proxy-status 與 istioctl proxy-config 診斷代理程式實際收到的內容,而不要依賴原本預期套用的 YAML。
Envoy 會依據遙測設定發出請求指標、存取記錄與追蹤資料。在入口、waypoint 或 sidecar 與應用程式之間保留請求 ID 和取樣政策。遙測缺失可能表示流量繞過代理程式、設定尚未收斂,或收集失敗。
控制平面健康狀態、資料平面健康狀態與應用程式健康狀態屬於不同的故障網域。在短暫的控制平面中斷期間,現有代理程式可以繼續使用最後接受的設定運作,但新端點、憑證與政策變更可能停滯。依修訂版本或受限的工作負載集合推出,檢查遭拒的 xDS 更新與代理程式版本,並保留經過測試的回復路徑。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)