Деплой компонентов Istio#
Компонент Istio, поставляемый в составе дистрибутива, включает граничные прокси для обработки:
входящего трафика (
IngressGateway)исходящего трафика (
EgressGateway)
После развертывания в соответствующем namespace, для каждого из граничных прокси, будут созданы:
DeploymentServiceconfigMapс общей конфигурацией для обоих компонентов.
Развертывание компонента Istio возможно двумя способами:
С помощью
Platform V DevOps ToolsВручную с помощью
Helm Chart
Конфигурация#
Компонент Istio имеет собственный набор переменных: helm/application/istio/values.yaml
В конфигурации необходимо указать два HTTP-порта:
egress_http_port— используется для внутреннего трафика внутри Mesh (запросы от приложения кEgressGateway)ingress_https_port— используется для внешнего HTTPS-трафика, поступающего извнеnamespace.
Образец заполнения:
deployment:
# Порты прослушиваемые граничным прокси, заносятся в deployment и в service
ports:
# HTTP порт для работы по внутренней сети меша, с прикладом
egress_http_port: 11080
# HTTPS порт для приема входящих запросов
ingress_https_port: 11443
Подключение секретов в под граничного прокси#
Перед деплоем граничного прокси (ГП), необходимо сконфигурировать систему хранения секретов и описать перечень сертификатов (в переменных values.yaml), которые затем будут использоваться для шифрования трафика.
Общая информация о подключении секретов описана в соответствующем разделе.
В случае использования Hashicorp Vault имя каждого сертификата (ключа в KV секрете) нужно перечислить в списке, переменная secrets.secman.list_keys_certs. Если же используется манифест k8s, то монтируется все его содержимое, перечислять каждый ключ не нужно.
Образец заполнения блока с получением секретов из Hashicorp Vault, где явно прописаны названия ключей с сертификатами, которые необходимо скачать в под ГП:
secrets:
secman:
list_keys_certs:
- "cert1.crt"
- "cert2.crt"
- "cert3.crt"
В системе хранения, указанный секрет содержит соответствующие поля:
data:
cert1.crt: <Base64-содержимое сертификата>
cert2.crt: <Base64-содержимое сертификата>
cert3.crt: <Base64-содержимое сертификата>
Развертывание#
Перед деплоем необходимо заполнить переменные (helm/application/istio/values.yaml):
Обратите внимание на состав переменных !!!
Из-за того что вHelm Chartкомпоненты не имеют доступа к переменным других компонентов, некоторые данные приходится дублировать.
Например номера портов, используемых в конфигурировании маршрутов к внешним сервисам, в компоненте Istio их необходимо тоже прописать.
egress_route:
# Порт ("внутренний") для маршрутов к Kafka-logger (журналирование fluent-bit)
logger_internal_port:
Затем запустите процесс деплоя компонента Istio
При использовании
Platform V DevOps ToolsдляHelm Chartотсутствует отдельный параметр для деплоя компонентовIstio, поэтому установка произойдет вместе с основным приложением
Если вы не используете Platform V DevOps Tools то запустите обычную установку компонента helm/application/istio командой helm install
Проверьте что все поды граничных прокси успешно запустились, после чего можно приступать к развертыванию основного приложения.