Определение имени ревизии

Метка, необходимая для включения sidecar-инъекции, определяется конкретным экземпляром контрольной плоскости, известным как ревизия.
Каждая ревизия управляется соответствующим ресурсом IstioRevision, который автоматически управляется ресурсом Istio.

Правила именования для IstioRevision основаны на настройке spec.updateStrategy.type в ресурсе Istio:

  • InPlace: ревизия имеет то же имя, что и родительский ресурс Istio.
  • RevisionBased: ревизия именуется по формату <istio-resource-name>-v<version>.

Обычно каждый ресурс Istio соответствует одной IstioRevision.
Однако во время обновления на основе ревизий может существовать несколько ресурсов IstioRevision, каждый из которых представляет отдельную контрольную плоскость.

Для вывода списка доступных ревизий используйте следующую команду:

kubectl get istiorevisions

Пример вывода:

NAME              NAMESPACE      PROFILE   READY   STATUS    IN USE   VERSION   AGE
default-v1-26-3   istio-system             True    Healthy   False    v1.26.3   40s

Содержание

Включение sidecar-инъекции с использованием ревизии по умолчанию

Если имя IstioRevision равно default, вы можете использовать следующие метки на namespace или pod для включения sidecar-инъекции:

РесурсМетка для включенияМетка для отключения
Namespaceistio-injection=enabledistio-injection=disabled
Podsidecar.istio.io/inject=truesidecar.istio.io/inject=false
NOTE

Также можно включить инъекцию, применив метку istio.io/rev: default к namespace или pod.

Включение sidecar-инъекции с использованием других ревизий

Если имя IstioRevision не равно default, необходимо использовать конкретное имя IstioRevision с меткой istio.io/rev.
Это связывает pod с нужной контрольной плоскостью и включает sidecar-инъекцию.

Например, используя ревизию default-v1-26-3 из приведённого выше примера, следующие метки включат sidecar-инъекцию:

РесурсМетка для включенияМетка для отключения
Namespaceistio.io/rev=default-v1-26-3istio-injection=disabled
Podistio.io/rev=default-v1-26-3sidecar.istio.io/inject=false
NOTE

Если применены обе метки istio-injection и istio.io/rev, приоритет имеет метка istio-injection, и namespace считается частью ревизии по умолчанию.

Инжектор настроен по следующей логике:

  1. Если любая из меток (istio-injection или sidecar.istio.io/inject) отключена, pod не инъецируется.
  2. Если любая из меток (istio-injection или sidecar.istio.io/inject или istio.io/rev) включена, pod инъецируется.