Метка, необходимая для включения sidecar-инъекции, определяется конкретным экземпляром контрольной плоскости, известным как ревизия.
Каждая ревизия управляется соответствующим ресурсом IstioRevision
, который автоматически управляется ресурсом Istio
.
Правила именования для IstioRevision
основаны на настройке spec.updateStrategy.type
в ресурсе Istio
:
InPlace
: ревизия имеет то же имя, что и родительский ресурс Istio
.RevisionBased
: ревизия именуется по формату <istio-resource-name>-v<version>
.Обычно каждый ресурс Istio
соответствует одной IstioRevision
.
Однако во время обновления на основе ревизий может существовать несколько ресурсов IstioRevision
, каждый из которых представляет отдельную контрольную плоскость.
Для вывода списка доступных ревизий используйте следующую команду:
Пример вывода:
Если имя IstioRevision
равно default
, вы можете использовать следующие метки на namespace или pod для включения sidecar-инъекции:
Ресурс | Метка для включения | Метка для отключения |
---|---|---|
Namespace | istio-injection=enabled | istio-injection=disabled |
Pod | sidecar.istio.io/inject=true | sidecar.istio.io/inject=false |
Также можно включить инъекцию, применив метку istio.io/rev: default
к namespace или pod.
Если имя IstioRevision
не равно default
, необходимо использовать конкретное имя IstioRevision
с меткой istio.io/rev
.
Это связывает pod с нужной контрольной плоскостью и включает sidecar-инъекцию.
Например, используя ревизию default-v1-26-3
из приведённого выше примера, следующие метки включат sidecar-инъекцию:
Ресурс | Метка для включения | Метка для отключения |
---|---|---|
Namespace | istio.io/rev=default-v1-26-3 | istio-injection=disabled |
Pod | istio.io/rev=default-v1-26-3 | sidecar.istio.io/inject=false |
Если применены обе метки istio-injection
и istio.io/rev
, приоритет имеет метка istio-injection
, и namespace считается частью ревизии по умолчанию.
Инжектор настроен по следующей логике:
istio-injection
или sidecar.istio.io/inject
) отключена, pod не инъецируется.istio-injection
или sidecar.istio.io/inject
или istio.io/rev
) включена, pod инъецируется.