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過濾器。在Service Mesh進行版本升級時,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 Filter。
建立完成後,您可以在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過濾器。