ASM支持通過Envoy過濾器模板創建Envoy過濾器。同一個Envoy過濾器模板可以被用來創建多個Envoy過濾器,應用于不同的工作負載和命名空間,從而提高配置的復用性和管理效率。在ASM進行版本升級時,Envoy過濾器模板可以自動創建或變更對應的Envoy過濾器,保證新舊版本之間的平滑過渡,減少手動維護的復雜性和潛在的錯誤。
前提條件
已添加集群到ASM實例,且ASM實例版本為1.12.4.0及以上。關于如何升級ASM實例,請參見升級ASM實例。
Envoy過濾器模板與Envoy過濾器關系
Envoy過濾器模板與Envoy過濾器之間是抽象與實例化的關系。Envoy過濾器模板充當一個藍圖或定義,規定了創建實際運行的Envoy過濾器時所需的配置信息和參數。
Envoy過濾器模板:一個預定義的配置結構,包含了創建Envoy過濾器所需要的所有規則和參數模板。模板定義了如何對通過Envoy代理的流量進行處理,但它本身并不直接應用于流量。
Envoy過濾器:根據模板創建的實際配置實體,它被應用于服務網格中的Envoy代理,以過濾和處理通過代理的流量。一個Envoy過濾器是模板的具體實例化,它將模板中的規則和參數應用于真實的服務流量中。
由于Envoy過濾器存在版本兼容性風險,自行創建Envoy過濾器對網格的升級與維護都造成了較大挑戰。從ASM自1.12.4.0版本起,支持通過管理Envoy過濾器模板來創建Envoy過濾器。在服務網格進行版本升級時,Envoy過濾器模板將根據適配的版本自動創建或變更對應的Envoy過濾器,從而控制Envoy過濾器的版本兼容風險,降低Envoy過濾器使用門檻。
創建Envoy過濾器模板后,您需要將Envoy過濾器模板綁定至指定的工作負載及命名空間,然后ASM會自動創建對應的Envoy過濾器。一個Envoy過濾器模板可以綁定多個工作負載和命名空間,您可以通過這種方式創建多個Envoy過濾器。
步驟一:創建Envoy過濾器模板
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 ,然后單擊創建Envoy過濾器模板。
在創建頁面的基本信息區域,輸入Envoy過濾器模板的名稱。
在多版本適配Envoy過濾器模板區域,單擊添加Envoy過濾器模板適配版本,選擇適配Istio版本,輸入適配該版本的Envoy過濾器內容,然后單擊創建。
說明如果您的ASM版本為1.18.0.146及以上,適配Istio版本區域默認選中無最小版本下限和無最大版本上限。若您需要自定義Isito版本區間,可以取消選中無最小版本下限或無最大版本上限,然后輸入自定義版本。
關于Envoy過濾器(Envoy Filter)的配置示例和字段說明,請參見Envoy過濾器(Envoy Filter)CRD說明。
創建完成后,您可以在Envoy過濾器模板頁面,查看已創建的Envoy過濾器模板。
步驟二:將Envoy過濾器模板綁定至工作負載或命名空間
Envoy過濾器模板創建成功后,您需要將Envoy過濾器模板綁定至指定的工作負載或命名空間,從而使Envoy過濾器僅在指定工作負載或命名空間上生效。綁定工作負載或命名空間后,將自動創建Envoy過濾器。請您按照實際版本選擇以下操作。
ASM版本為1.18.0.146以下
綁定Envoy過濾器模板與工作負載
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在Envoy過濾器模板頁面,單擊目標Envoy過濾器模板右側操作列下的編輯模板。
在編輯Envoy過濾器模板頁面,單擊綁定工作負載頁簽,然后單擊選定工作負載綁定。
在選定工作負載綁定對話框,選擇命名空間、工作負載類型,單擊未綁定區域目標工作負載右側的綁定,然后單擊確定。
在網格詳情頁面左側導航欄,選擇
。在Envoy過濾器頁面,可以看到自動創建的Envoy過濾器。
綁定Envoy過濾器模板與命名空間
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在Envoy過濾器模板頁面,單擊目標Envoy過濾器模板右側操作列下的編輯模板。
在編輯Envoy過濾器模板頁面,單擊綁定工作負載頁簽,然后單擊綁定命名空間。
在綁定命名空間對話框的未綁定區域,單擊目標命名空間的名稱,然后單擊確定。
說明如果您綁定的命名空間是istio-system,則會讓EnvoyFilter全局生效,您已經創建的其它綁定都將自動解綁,因此您需要二次確認是否綁定istio-system。
在網格詳情頁面左側導航欄,選擇
。在Envoy過濾器頁面,可以看到自動創建的Envoy過濾器。
ASM版本為1.18.0.146及以上
綁定Envoy過濾器模板與工作負載
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在Envoy過濾器模板頁面,單擊目標Envoy過濾器模板右側操作列下的編輯模板。
在編輯Envoy過濾器模板頁面下方,查看綁定工作負載區域。
如果頁面顯示模板已適配此版本,但還未創建應用于此版本數據面的Envoy過濾器,單擊右側的創建。
在綁定工作負載區域,單擊選定工作負載綁定,在選定工作負載綁定對話框,選擇命名空間和工作負載類型,在未綁定區域的操作列,單擊目標工作負載對應的綁定,然后單擊確定。
在網格詳情頁面左側導航欄,選擇
。在Envoy過濾器頁面,可以看到自動創建的Envoy過濾器。
綁定Envoy過濾器模板與命名空間
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在Envoy過濾器模板頁面,單擊目標Envoy過濾器模板右側操作列下的編輯模板。
在編輯Envoy過濾器模板頁面下方,查看綁定工作負載區域。
如果頁面顯示模板已適配此版本,但還未創建應用于此版本數據面的Envoy過濾器,單擊右側的創建。
在綁定工作負載區域,單擊綁定命名空間,在綁定命名空間對話框的未綁定區域,單擊目標命名空間的名稱,然后單擊確定。
說明如果您綁定的命名空間是istio-system,則會讓EnvoyFilter全局生效,您已經創建的其它綁定都將自動解綁,因此您需要二次確認是否綁定istio-system。
在網格詳情頁面左側導航欄,選擇
。在Envoy過濾器頁面,可以看到自動創建的Envoy過濾器。
相關操作
修改Envoy過濾器
僅支持修改通過自定義模板創建的Envoy過濾器,不支持修改通過預置模板創建的Envoy過濾器。在Envoy過濾器模板頁面中顯示為ASM插件的Envoy過濾器模板即為預置模板。
在Envoy過濾器模板頁面,單擊目標Envoy過濾器模板右側操作列下的編輯模板,修改配置參數,然后單擊變更模板內容。修改Envoy過濾器模板后,將自動更新Envoy過濾器。
刪除Envoy過濾器
通過解綁Envoy過濾器模板與工作負載的方式刪除Envoy過濾器
在Envoy過濾器模板頁面,單擊目標Envoy過濾器模板右側操作列下的編輯模板,單擊綁定工作負載頁簽,單擊選定工作負載綁定,在選定工作負載綁定對話框的已綁定區域中單擊解綁,然后單擊確定。解綁Envoy過濾器模板與工作負載后,將自動刪除對應的Envoy過濾器。
通過解綁Envoy過濾器模板與命名空間的方式刪除Envoy過濾器
在Envoy過濾器模板頁面,單擊目標Envoy過濾器模板右側操作列下的編輯模板,單擊綁定工作負載頁簽,單擊綁定命名空間,在綁定命名空間對話框的已綁定區域中單擊命名空間名稱,然后單擊確定。解綁Envoy過濾器模板與命名空間后,將自動刪除對應的Envoy過濾器。
通過刪除Envoy過濾器模板方式刪除Envoy過濾器
在Envoy過濾器模板頁面,單擊目標Envoy過濾器模板右側操作列下的刪除,在彈出的對話框中單擊確定。刪除Envoy過濾器模板后,將自動刪除Envoy過濾器。