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