從Service Mesh (ASM)1.21.6.54版本起,支援配置ASMHeaderPropagation要求標頭透傳規則。在使用了Baggage透傳能力的前提下,您可以通過ASMHeaderPropagation流量規則來指定利用Baggage在鏈路上透傳自訂要求標頭。本文介紹ASMHeaderPropagation的配置樣本和欄位說明。
配置樣本
通過ASMHeaderPropagation在請求調用鏈路上傳遞指定要求標頭,可以實現靈活的全鏈路流量管理情境。以下配置表示為叢集中default命名空間下的所有注入Sidecar代理的工作負載增加在調用鏈路上透傳version要求標頭的能力。
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMHeaderPropagation
metadata:
name: version-propagation
namespace: default
spec:
headers:
- version要使version要求標頭透傳生效,需要先配置自動插裝,或進行代碼改造,使服務具備Baggage透傳能力。有關Baggage的具體配置方式以及ASMHeaderPropagation CRD的使用情境,請參見通過配置ASMHeaderPropagation實現寬鬆模式的流量泳道以及基於雜湊打標外掛程式的多標籤路由實現按使用者比例進行灰階發布。
欄位說明
spec
欄位 | 類型 | 是否必須 | 說明 |
workloadSelector | 否 | 通過一個或多個標籤,指明要求標頭透傳生效的一組特定的Pod。標籤搜尋的範圍限制在資源所在的配置命名空間。 若不指定,ASMHeaderPropagation的要求標頭透傳規則將生效到指定命名空間的所有工作負載上。 | |
headers | []string | 未配置headerPrefix時必填 | 需要在請求鏈路上透傳的要求標頭列表。當要求標頭是此項中指定的任意一個要求標頭時,要求標頭將會被透傳。 |
headerPrefix | []string | 未配置header時必填 | 匹配一系列需要在請求鏈路上透傳的要求標頭的首碼。當要求標頭包含其中指定的任意一項首碼時,要求標頭將會透傳。 |
WorkloadSelector
欄位 | 類型 | 是否必須 | 說明 |
labels | map<string, string> | 是 | 指定規則生效的Pod,至少需要包含一組標籤。 |