Включение инъекции сайдкара
В следующих процедурах используется приложение Bookinfo для иллюстрации различных методов настройки инъекции сайдкара.
Содержание
Предварительные требованияВключение инъекции сайдкара с помощью меток пространства имёнПроцедураПроверкаИсключение рабочей нагрузки из meshПроцедураПроверкаВключение инъекции сайдкара с помощью меток подаПроцедураПроверкаПредварительные требования
- Установлен оператор Alauda Service Mesh v2, создан ресурс
Istio, и оператор успешно развернул Istio. - Создан ресурс
IstioCNI, и оператор развернул необходимые подыIstioCNI. - Созданы пространства имён, предназначенные для mesh, и они доступны для управляющей плоскости Istio.
- Необязательно: рабочие нагрузки, которые должны быть включены в mesh, уже развернуты. В последующих примерах приложение Bookinfo развернуто в пространстве имён
bookinfo, но инъекция сайдкара (как описано в шаге 2) ещё не настроена. Подробнее см. "Deploying the Bookinfo application".
Включение инъекции сайдкара с помощью меток пространства имён
Этот метод внедряет прокси-сайдкар во все рабочие нагрузки в заданном пространстве имён. Это оптимальный подход, когда большинство рабочих нагрузок в этом пространстве имён должны быть частью mesh.
Процедура
-
Проверьте имя ревизии управляющей плоскости Istio с помощью следующей команды:
Вы должны увидеть вывод, похожий на следующий пример:
Пример вывода
Поскольку имя ревизии —
default, можно использовать стандартные метки инъекции без указания точной ревизии. -
Убедитесь, что существующие рабочие нагрузки в целевом пространстве имён показывают
1/1готовых контейнеров, выполнив команду ниже. Это подтверждает, что поды в данный момент работают без сайдкаров.Вы должны увидеть вывод, похожий на следующий пример:
Пример вывода
-
Примените метку инъекции к пространству имён
bookinfo, выполнив следующую команду:Пример вывода
-
Чтобы применить инъекцию сайдкара, повторно разверните рабочие нагрузки в пространстве имён
bookinfo. Запустите rolling update для всех деплойментов с помощью этой команды:
Проверка
-
Чтобы проверить развертывание, убедитесь, что новые поды показывают
2/2контейнеров в состоянииREADY, что подтверждает успешную инъекцию сайдкара. Используйте следующую команду:Вы должны увидеть вывод, похожий на следующий пример:
Пример вывода
Исключение рабочей нагрузки из mesh
Можно запретить инъекцию сайдкара для конкретной рабочей нагрузки, даже если инъекция включена для всего её пространства имён.
Этот пример служит только для демонстрации. Для корректной работы приложения Bookinfo все его рабочие нагрузки должны быть частью mesh.
Процедура
-
Отредактируйте ресурс
Deploymentприложения. В этом примере исключим сервисratings-v1. -
В разделе
spec.template.metadata.labelsресурсаDeploymentдобавьте меткуsidecar.istio.io/inject: "false", чтобы отключить инъекцию сайдкара.NOTEПроцесс инъекции сайдкара не затрагивается, если эта метка добавлена в верхний уровень раздела
labelsресурсаDeployment.При обновлении деплоймента запускается rollout, который создаёт новый ReplicaSet с изменёнными подами.
Проверка
-
Убедитесь, что обновлённые поды не содержат сайдкар-контейнер и показывают
1/1работающих контейнеров, выполнив команду:Вы должны увидеть вывод, похожий на следующий пример:
Пример вывода
Включение инъекции сайдкара с помощью меток пода
С помощью этого метода можно выбрать отдельные рабочие нагрузки для инъекции сайдкара, а не включать её для всего пространства имён. Это лучше всего подходит для случаев, когда в mesh нужно включить лишь небольшое количество рабочих нагрузок. В примере также показано, как использовать метку ревизии для инъекции сайдкара, где ресурс Istio называется my-mesh. Использование отдельного имени ресурса Istio необходимо, когда в кластере существует несколько управляющих плоскостей Istio или при обновлении управляющей плоскости на основе ревизий.
Процедура
-
Проверьте имя ревизии управляющей плоскости Istio, выполнив команду:
Вы должны увидеть вывод, похожий на следующий пример:
Пример вывода
Поскольку имя ревизии —
my-mesh, для активации инъекции сайдкара необходимо использовать метку ревизииistio.io/rev=my-mesh. -
Убедитесь, что существующие поды работают без сайдкаров, проверив, что они показывают
1/1контейнеров в состоянииREADY. Используйте эту команду:Вы должны увидеть вывод, похожий на следующий пример:
Пример вывода
-
Отредактируйте ресурс
Deploymentприложения. В этом примере измените сервисratings-v1. -
Измените раздел
spec.template.metadata.labelsресурсаDeployment, добавив необходимую метку инъекции пода или метку ревизии. Здесь этоistio.io/rev: my-mesh:NOTEРазмещение метки в верхнем уровне раздела
labelsресурсаDeploymentне повлияет на инъекцию сайдкара.Это обновление деплоймента инициирует rollout, который создаёт новый ReplicaSet с изменёнными подами.
Проверка
-
Убедитесь, что сайдкар был успешно внедрён, проверив, что только под
ratings-v1показывает2/2готовых контейнеров. Выполните следующую команду:Вы должны увидеть вывод, похожий на следующий пример:
Пример вывода
-
Повторите тот же процесс для любых других рабочих нагрузок, которые вы хотите добавить в mesh.