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

Если имя вашей ревизии не default, вы всё равно можете использовать метку istio-injection=enabled. Для этого необходимо сначала создать ресурс IstioRevisionTag с именем default, который будет указывать на ваш ресурс Istio.

Содержание

Справка

Предварительные требования

  • Оператор Alauda Service Mesh v2 установлен, создан ресурс Istio, и Istio развернут оператором.
  • Создан ресурс IstioCNI, и необходимые поды IstioCNI развернуты оператором.
  • Существуют пространства имён, которые должны быть частью mesh, и они доступны для обнаружения управляющей плоскостью Istio.
  • Необязательно: рабочие нагрузки для mesh уже развернуты. В этих примерах приложение Bookinfo существует в пространстве имён bookinfo, но sidecar-инъекция (как описано в шаге 2) ещё не настроена. Дополнительную информацию см. в разделе "Deploying the Bookinfo application".

Процедура

  1. Чтобы узнать имя вашего ресурса Istio, выполните следующую команду:

    kubectl get istio

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

    NAME      NAMESPACE      PROFILE   REVISIONS   READY   IN USE   ACTIVE REVISION   STATUS    VERSION   AGE
    default   istio-system             1           1       0        default-v1-26-3   Healthy   v1.26.3   37s

    В данном случае ресурс Istio называется default, но его базовая ревизия — default-v1-26-3.

  2. Определите ресурс IstioRevisionTag в YAML-файле:

    Пример YAML ресурса IstioRevisionTag

    apiVersion: sailoperator.io/v1
    kind: IstioRevisionTag
    metadata:
      name: default
    spec:
      targetRef:
        kind: Istio
        name: default
  3. Примените ресурс IstioRevisionTag с помощью команды:

    kubectl apply -f istioRevisionTag.yaml
  4. Подтвердите успешное создание ресурса IstioRevisionTag следующей командой:

    kubectl get istiorevisiontags.sailoperator.io

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

    NAME      STATUS    IN USE   REVISION          AGE
    default   Healthy   True     default-v1-26-3   15s

    Как видно из примера, новый тег теперь ссылается на вашу активную ревизию default-v1-26-3. Теперь вы можете использовать метку istio-injection=enabled, как если бы ваша ревизия называлась default.

  5. Проверьте, что поды работают без sidecar, выполнив команду ниже. Все существующие рабочие нагрузки в целевом пространстве имён должны показывать 1/1 в столбце READY контейнеров.

    kubectl get pods -n bookinfo

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

    NAME                              READY   STATUS    RESTARTS   AGE
    details-v1-85c7fcfd5b-fdx4q       1/1     Running   0          5m48s
    productpage-v1-775ffc67d8-89n5c   1/1     Running   0          5m48s
    ratings-v1-6c79fdf684-cdkzc       1/1     Running   0          5m48s
    reviews-v1-685fb87cb6-pgzm5       1/1     Running   0          5m48s
    reviews-v2-76c4659bc6-lgtp4       1/1     Running   0          5m48s
    reviews-v3-f7b4c8678-x2hnp        1/1     Running   0          5m48s
  6. Добавьте метку инъекции в пространство имён bookinfo следующей командой:

    kubectl label namespace bookinfo istio-injection=enabled

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

    namespace/bookinfo labeled
  7. Чтобы активировать sidecar-инъекцию, инициируйте повторное развертывание рабочих нагрузок в пространстве имён bookinfo командой:

    kubectl -n bookinfo rollout restart deployments

Проверка

  1. Проверьте успешность развертывания, выполнив команду ниже и убедившись, что вновь созданные поды показывают 2/2 контейнеров в столбце READY:

    kubectl get pods -n bookinfo

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

    NAME                              READY   STATUS    RESTARTS   AGE
    details-v1-d964f49cb-bdlwn        2/2     Running   0          38s
    productpage-v1-79fbc54dfb-wbtf2   2/2     Running   0          38s
    ratings-v1-6f4bf85f96-glkg9       2/2     Running   0          38s
    reviews-v1-57d48b8c6b-hlfbt       2/2     Running   0          38s
    reviews-v2-6d65c788d4-q98pl       2/2     Running   0          38s
    reviews-v3-6cf5df6bb6-phnj9       2/2     Running   0          38s