Определение имени revision
Метка, необходимая для включения инъекции sidecar, определяется конкретным экземпляром control plane, известным как revision.
Каждая revision управляется соответствующим ресурсом IstioRevision, который автоматически контролируется ресурсом Istio.
Соглашение об именовании IstioRevision основано на параметре spec.updateStrategy.type в ресурсе Istio:
InPlace: revision имеет то же имя, что и родительский ресурсIstio.RevisionBased: revision именуется в формате<istio-resource-name>-v<version>.
Обычно каждому ресурсу Istio соответствует один IstioRevision.
Однако во время обновления на основе revision может существовать несколько ресурсов IstioRevision, каждый из которых представляет отдельный control plane.
Чтобы вывести доступные revision, используйте следующую команду:
Пример вывода:
Содержание
Включение инъекции sidecar с default revisionВключение инъекции sidecar с другими revisionВключение инъекции sidecar с default revision
Когда имя IstioRevision равно default, можно использовать следующие метки в namespace или pod, чтобы включить инъекцию sidecar:
Также можно включить инъекцию, применив к namespace или pod метку istio.io/rev: default.
Включение инъекции sidecar с другими revision
Когда имя IstioRevision не равно default, необходимо использовать конкретное имя IstioRevision с меткой istio.io/rev.
Это привязывает pod к нужному control plane и включает инъекцию sidecar.
Например, если использовать revision default-v1-28-6 из примера выше, следующие метки включат инъекцию sidecar:
Когда применены обе метки, istio-injection и istio.io/rev, метка istio-injection имеет приоритет и рассматривает namespace как часть default revision.
Инъектор настроен на следующую логику:
- Если любая из меток (
istio-injectionилиsidecar.istio.io/inject) отключена, pod не инъектируется. - Если любая из меток (
istio-injectionилиsidecar.istio.io/injectилиistio.io/rev) включена, pod инъектируется.