• Русский
  • Определение имени 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, используйте следующую команду:

    kubectl get istiorevisions

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

    NAME              NAMESPACE      PROFILE   READY   STATUS    IN USE   VERSION   AGE
    default-v1-28-6   istio-system             True    Healthy   False    v1.28.6   40s

    Включение инъекции sidecar с default revision

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

    ResourceВключающая меткаОтключающая метка
    Namespaceistio-injection=enabledistio-injection=disabled
    Podsidecar.istio.io/inject=truesidecar.istio.io/inject=false
    NOTE

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

    Включение инъекции sidecar с другими revision

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

    Например, если использовать revision default-v1-28-6 из примера выше, следующие метки включат инъекцию sidecar:

    ResourceВключающая меткаОтключающая метка
    Namespaceistio.io/rev=default-v1-28-6istio-injection=disabled
    Podistio.io/rev=default-v1-28-6sidecar.istio.io/inject=false
    NOTE

    Когда применены обе метки, istio-injection и istio.io/rev, метка istio-injection имеет приоритет и рассматривает namespace как часть default revision.

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

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