Создание service mesh
В этом документе объясняется, как создать однокластерный service mesh. Перед продолжением убедитесь, что вы знакомы со следующими темами:
- Модели развертывания Mesh: выберите модель развертывания mesh, которая соответствует вашим требованиям.
- Описание компонентов Mesh: разберитесь в ролях компонентов mesh и подготовьте необходимые ресурсы CPU и памяти для service mesh.
Инструкции по созданию мультикластерного service mesh см. в документации Multi-Cluster Service Mesh.
Содержание
Ограничения и лимитыПредварительные условияШагиСледующие шагиОписание параметров MeshГлобальная конфигурацияКонфигурация на уровне кластераКонфигурация компонентовОграничения и лимиты
- В каждом кластере допускается только один service mesh.
- Если кластер является глобальным кластером и платформа находится в среде аварийного восстановления (то есть у глобального кластера есть основной кластер и кластер аварийного восстановления), в глобальном кластере нельзя развернуть service mesh.
- Если кластер использует двухстековую сеть IPv4/IPv6, service mesh развернуть нельзя.
Предварительные условия
-
Установлен Alauda Service Mesh Essentials Cluster Plugin.
-
Скачайте следующий установочный пакет, соответствующий архитектуре вашей платформы, и с помощью механизма Upload Packages загрузите пакет в глобальный кластер и целевой кластер (пожалуйста, не устанавливайте его вручную).
Alauda Service MeshOperatorFlaggerOperatorAlauda Build of JaegerOperatorAlauda Build of OpenTelemetryOperator
WARNINGПри загрузке операторов с помощью
violet pushне добавляйте параметр--target-catalog-source— используйте каталог источника по умолчанию, определенный внутри оператора. -
Убедитесь, что в кластере развернут плагин Prometheus или плагин VictoriaMetrics.
Примечание: если VictoriaMetrics развернут по мультикластерной архитектуре,
vmstorageможет находиться в другом кластере, отличном от service mesh. -
Убедитесь, что доступен Elasticsearch. Service mesh может взаимодействовать с плагином логирования Elasticsearch кластера или с вашим собственным Elasticsearch.
-
Если кластер является кластером OpenShift, также должны быть выполнены следующие предварительные условия:
- Создан namespace
istio-system. - Добавьте namespace
istio-systemв группуanyuidSCC (Security Context Constraints). Для этого войдите на bastion host кластера OpenShift и выполните команду:
- Создан namespace
Шаги
- В левой навигационной панели нажмите Service Mesh > Mesh.
- Нажмите Create Service Mesh.
- Выберите кластер и версию Istio для развертывания service mesh. В расширенной конфигурации убедитесь, что архитектура mesh является однокластерной, и заполните параметры интерфейса для Elasticsearch и системы мониторинга. Можно выбрать существующую системную платформу или внешнюю систему.
- Если высокая доступность строго обязательна, установите Pod anti-affinity в значение mandatory.
- Ресурсы компонентов можно оставить со значениями по умолчанию, но по мере роста масштаба сервисов в mesh компонентам потребуется увеличение ресурсов. Своевременно настройте политики оповещений для компонентов mesh, чтобы получать уведомления, когда потребуется масштабирование.
Для получения дополнительной информации см. Описание параметров Mesh
Примечание: если кластер является кластером OpenShift, mesh автоматически обнаружит и по умолчанию развернет компонент istio-cni.
Следующие шаги
- Включите Istio CNI, чтобы не требовались privileged init containers в каждом Pod.
- Включите Global Rate Limiting.
- Используйте инструмент Istioctl.
- Отслеживайте компоненты Mesh.
Описание параметров Mesh
Глобальная конфигурация
Глобальная конфигурация mesh будет применена ко всем кластерам, в которых развернут mesh.
Конфигурация на уровне кластера
Конфигурация на уровне кластера применяется только к выбранному кластеру.
Конфигурация компонентов
Примечание: компоненты Mesh развертываются в определенных namespace кластера в виде Deployment. После успешного создания mesh вы можете просмотреть состояние запуска компонентов на вкладке Components или нажать Component Name, чтобы перейти в namespace, где развернут компонент, на Container Platform, и просмотреть подробную информацию о Deployment работающего компонента.