概述
服務網格支持通過可視化界面方式管理EnvoyFilterTemplate和EnvoyFilterTemplateBinding;EnvoyFilterTemplate定義了Envoy過濾器模板,包含了一組過濾器以及匹配的istio版本信息等;EnvoyFilterTemplateBinding定義了過濾器模板的綁定信息,支持將EnvoyFilterTemplate綁定到具體的工作負載上,最終生成EnvoyFilter下發到數據面;它們之間的關系如下:
操作說明
定義EnvoyFilterTemplate
- 進入服務網格控制臺 -> 插件擴展中心 -> Envoy過濾器模板 -> 創建Envoy過濾器模板
- 按要求輸入Envoy過濾器模板名稱
- 一個Envoy過濾器模板可以包含多個適配不同isito版本的配置,可以通過 創建Envoy過濾器模板適配版本 選項添加新的適配版本
- 定義EnvoyFilter
注意
同一個Envoy過濾器模板中多個適配版本時間的版本范圍不能重疊
用戶自定義的Envoy過濾器模板可以編輯更新EnvoyFilter內容,對于來自內置插件創建的Envoy過濾器模板,不能更新EnvoyFilter的內容
Envoy過濾器模板綁定
服務網格支持將Envoy過濾器模板綁定到K8s命名空間、Service、Deployment,實現命名空間、服務和工作負載級別的綁定
- 進入服務網格控制臺 -> 插件擴展中心 -> Envoy過濾器模板,在創建Envoy過濾器模板或者編輯已有過濾器模板頁面下方可以看到當前過濾器模板綁定信息
- 綁定命名空間:點擊 綁定命名空間 -> 選擇要綁定的命名空間 并保存
- 綁定服務:點擊 綁定服務 -> 選擇命名空間和服務 并保存
- 綁定工作負載:點擊 綁定工作負載 -> 選擇要綁定的集群、命名空間和工作負載名稱 并保存
注意
如果要綁定的從集群的命名空間不在綁定選擇列表里,可以先使用全局命名空間同步功能將從集群命名空間同步到主集群
如果要綁定的從集群目標服務不在列表中,先用全局服務管理將從集群服務同步至主集群
綁定從集群工作負載時,需要保證從集群的命名空間在主集群中存在,如果不存在則使用全局命名空間管理同步
Envoy過濾器模板中定義的過濾器的版本范圍完全覆蓋預期綁定的istio版本范圍時才能生成對應的Envoy過濾器
其他操作
查看生成的EnvoyFilter
進入服務網格控制臺 -> 插件擴展中心 -> Envoy過濾器,選擇命名空間后可以看到當前命名空間下的EnvoyFilter列表;
對于通過Envoy過濾器模板和綁定關系生成的EnvoyFilter在來源一欄顯示為系統創建,此類EnvoyFilter只支持查看,不支持修改
用戶直接定義EnvoyFilter
服務網格支持用戶直接定義EnvoyFilter,進入服務網格控制臺 -> 插件擴展中心 -> Envoy過濾器 -> 使用YAML創建;
對于用戶自定義的EnvoyFilter,支持用戶編輯、刪除以及基于當前EnvoyFilter創建Envoy過濾器模板的操作。