识别 revision 名称
启用 sidecar 注入所需的标签由特定的控制平面实例决定,该实例称为 revision。
每个 revision 都由对应的 IstioRevision 资源管理,而该资源又由 Istio 资源自动管理。
IstioRevision 的命名约定基于 Istio 资源中的 spec.updateStrategy.type 设置:
InPlace:revision 与父级Istio资源共享相同的名称。RevisionBased:revision 采用<istio-resource-name>-v<version>这种格式命名。
通常,每个 Istio 资源对应一个 IstioRevision。
但是,在基于 revision 的升级过程中,可能会存在多个 IstioRevision 资源,每个资源代表一个不同的控制平面。
要列出可用的 revisions,请使用以下命令:
示例输出:
使用默认 revision 启用 sidecar 注入
当 IstioRevision 的名称为 default 时,可以在 namespace 或 pod 上使用以下标签来启用 sidecar 注入:
NOTE
你也可以通过将 istio.io/rev: default 标签应用到 namespace 或 pod 来启用注入。
使用其他 revisions 启用 sidecar 注入
当 IstioRevision 的名称不是 default 时,需要使用 istio.io/rev 标签指定具体的 IstioRevision 名称。
这会将 pod 关联到所需的控制平面,并启用 sidecar 注入。
例如,使用上面的示例 revision default-v1-28-6 时,以下标签将启用 sidecar 注入:
NOTE
当同时应用 istio-injection 和 istio.io/rev 标签时,istio-injection 标签优先,并将该 namespace 视为默认 revision 的一部分。
注入器按以下逻辑进行配置:
- 如果任一标签(
istio-injection或sidecar.istio.io/inject)被禁用,则不会为 pod 注入。 - 如果任一标签(
istio-injection、sidecar.istio.io/inject或istio.io/rev)被启用,则会为 pod 注入。