应用服务网格

注入策略配置

2025-08-13 06:49:17

应用服务网格基于K8s webhook技术,通过给业务pod内增加sidecar容器实现治理能力注入;sidecar注入策略受多种配置影响,包括pod所在命名空间的标签、pod注解、自动注入匹配、特殊匹配规则等,您可以在服务网格控制台sidecar管理->注入策略配置菜单配置,如下图所示:


只有当Pod所在的命名空间标签和Pod自身的标签/注解同时满足注入策略配置中的设置时,才能够实现Pod的sidecar注入。配置说明如下:

配置

说明

Pod所在命名空间的标签需要满足的条件

包含istio-inject:enabled:需要注入sidecar的Pod所在命名空间必须包含istio-inject:enabled标签。

不包含istio-inject:disabled:需要注入sidecar的Pod所在命名空间不能包含istio-inject:disabled标签。

Pod自身的标签/注解需要满足的条件

不包含sidecar.istio.io/inject:false:需要注入sidecar的Pod自身的标签/注解不能包含sidecar.istio.io/inject:false。

包含sidecar.istio.io/inject:true:需要注入sidecar的Pod自身的标签/注解必须包含sidecar.istio.io/inject:true。

AlwaysInjectSelector

注入sidecar的Pod标签选择器,多个标签是and关系;被选中的pod可以视为Pod包含sidecar.istio.io/inject:true标签或注解。

NeverInjectSelector

不注入sidecar的Pod标签选择器,多个标签是and关系;被选中的pod可以视为包含sidecar.istio.io/inject:false标签或注解;优先级高于AlwaysInjectSelector

 

注:AlwaysInjectSelectorNeverInjectSelector分别看作为匹配的Pod添加sidecar.istio.io/inject:true和sidecar.istio.io/inject:false,但是这个添加的标签优先级低于Pod原本的标签。也就是说,即使 Pod 匹配 NeverInjectSelector,但 Pod 本身具有 sidecar.istio.io/inject:true 标签时,仍然会被视为只包含 sidecar.istio.io/inject:true 标签。

 

在不同注入策略设置下,对于各种Pod所在命名空间标签以及Pod自身注解情况,Pod最终注入策略生效结果参考下表(表中的“Pod所在命名空间需要满足的条件”列中“包含标签”表示包含istio-inject:enabled设置;“不包含标签”表示不包含istio-inject:disabled设置。同理“Pod自身的注解/标签需要满足的条件”列中的“包含标签”表示包含sidecar.istio.io/inject:true设置;“不包含标签”表示不包含sidecar.istio.io/inject:false设置):

命名空间标签(istio-injection)

Pod自身注解(sidecar.istio.io/inject

Pod所在命名空间需要满足的条件

Pod自身的注解/标签需要满足的条件

AlwaysInjectSelector

NeverInjectSelector

结果

enabled

true

注入

enabled

false

 

不注入

enabled

未设置

匹配

匹配

不注入

enabled

未设置

匹配

不匹配

注入

enabled

未设置

不匹配

匹配

不注入

enabled

未设置

包含

不匹配

不匹配

不注入

enabled

未设置

不包含

不匹配

不匹配

注入

disabled

不注入

未设置

true

包含

不注入

未设置

true

不包含

注入

未设置

false

不注入

未设置

未设置

不注入


Mq6XEo6yKhoD