Перейти к содержимому
Последнее обновление

Развёртывание кластера Doris в AWS EKS

Обзор контейнерного сервиса AWS EKS​

AWS EKS поддерживает два режима работы:

РежимОписаниеСценарии использования
Неавтономный режим (рекомендуется)Стандартный режим EKS с полным контролем над базовыми экземплярами EC2Производственные среды, сервисы с сохранением состояния, кластеры Doris
Автономный режимВстроенный пул узлов с автоматическим эластичным масштабированием ресурсовСервисы без сохранения состояния, небольшие рабочие нагрузки
Совет

Использовать автономный режим не рекомендуется. В этом режиме вычислительные ресурсы динамически выделяются и освобождаются через встроенный пул узлов, что может приводить к перемещению узлов кластера Doris и создавать риски для безопасности в производственных средах.

Сценарий 1: Создание нового кластера​

Шаг 1: Создайте кластер EKS (неавтономный режим)​

При создании кластера в консоли EKS выберите неавтономный режим.

Рекомендуемая конфигурация:

  • Образ операционной системы: Amazon Linux 2
  • Группа узлов: используйте выделенную группу узлов для развёртывания Doris

Шаг 2: Настройте скрипт запуска группы узлов​

Настройте шаблон запуска для пула узлов в разделе EC2 > Шаблоны запуска > Создать шаблон запуска. Добавьте в шаблон следующий скрипт для автоматической настройки системных параметров:

#!/bin/bash
chmod +x /etc/rc.d/rc.local

# Disable the firewall
echo "sudo systemctl stop firewalld.service" >> /etc/rc.d/rc.local
echo "sudo systemctl disable firewalld.service" >> /etc/rc.d/rc.local

# Set the number of virtual memory areas
echo "sysctl -w vm.max_map_count=2000000" >> /etc/rc.d/rc.local

# Disable swap
echo "swapoff -a" >> /etc/rc.d/rc.local

# Set the file handle limit
current_limit=$(ulimit -n)
desired_limit=1000000
config_file="/etc/security/limits.conf"
if [ "$current_limit" -ne "$desired_limit" ]; then
echo "* soft nofile 1000000" >> "$config_file"
echo "* hard nofile 1000000" >> "$config_file"
fi

Настройки вступят в силу после перезапуска узла, выполненного после запуска кластера.

Шаг 3: Настройте разрешения роли IAM​

Убедитесь, что роль IAM узла EKS имеет следующие разрешения:

  • AmazonEC2FullAccess
  • AmazonEKSWorkerNodePolicy
  • AmazonEKS_CNI_Policy
  • AmazonSSMManagedInstanceCore

Шаг 4: Настройте хранилище​

Для производственных сред рекомендуется хранилище EBS. Добавьте плагин хранилища EBS в интерфейсе настройки кластера и убедитесь, что у плагина есть соответствующие разрешения роли.


Сценарий 2: Существующий кластер​

Шаг 1: Проверьте состояние swap​

swapon --show

Ожидаемый результат: вывод отсутствует (swap отключён). Если вывод указывает на то, что swap включён, выполните swapoff -a и перезагрузите узел.

Шаг 2: Проверьте максимальное количество файловых дескрипторов​

ulimit -n

Ожидаемый результат: не менее 65535. Если значение ниже, добавьте следующие записи в /etc/security/limits.conf:

* soft nofile 1000000
* hard nofile 1000000

Шаг 3: Проверьте количество областей виртуальной памяти​

sysctl vm.max_map_count

Ожидаемый результат: не менее 262144. Чтобы изменить значение, выполните sysctl -w vm.max_map_count=2000000.

Шаг 4: Проверьте прозрачные большие страницы памяти​

cat /sys/kernel/mm/transparent_hugepage/enabled

Ожидаемый результат: вывод содержит [never]. Если значение равно [always], выполните:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

Доступ к реестру образов​

Для доступа к общедоступному реестру образов DockerHub добавьте в кластер сетевые плагины, такие как Amazon VPC CNI, CoreDNS и kube-proxy, а при настройке VPC для кластера выберите подсеть с доступом к общедоступной сети.


Привилегированный режим​

В EKS экземпляры EC2 полностью принадлежат текущему пользователю EKS, поэтому кластеры разных пользователей не влияют друг на друга в общем пуле ресурсов.

  • Если в вашей среде EKS разрешён привилегированный режим (разрешён по умолчанию): вам не нужно беспокоиться о системных параметрах. По умолчанию Doris Operator автоматически настраивает системные параметры для Doris.
  • Если привилегированный режим запрещён: необходимо внести следующие изменения в системные параметры хоста:
ПараметрКомандаПроверка
Количество областей виртуальной памятиsysctl -w vm.max_map_count=2000000sysctl vm.max_map_count
Прозрачные большие страницы памятиОтключитьУбедитесь, что вывод содержит never
Максимальное количество файловых дескрипторовИзменить /etc/security/limits.confulimit -n
swapswapoff -aswapon --show (отсутствие вывода означает, что swap отключён)

Подробнее см. в разделе Проверка операционной системы.


Часто задаваемые вопросы​

Вопрос: Какие риски связаны с автономным режимом?​

В автономном режиме вычислительные ресурсы динамически выделяются и освобождаются через встроенный пул узлов, а существующие ресурсы перераспределяются при каждом выделении или освобождении. Для сервисов с сохранением состояния на базе StatefulSet, особенно сервисов с длительным запуском и таких сервисов, как Doris, со строгими требованиями к распределённой координации, это может вызывать нестабильность всех сервисов, использующих общий пул узлов, и приводить к перемещению всех узлов кластера Doris.

Вопрос: Как настроить новую группу узлов в существующем кластере?​

Для кластера Doris рекомендуется настроить выделенную группу узлов. Если требуется изменить системные настройки, связанные с работой BE, может потребоваться настройка системных параметров хоста. При создании группы узлов можно настроить её через EC2 > Шаблоны запуска > Создать шаблон запуска и использовать шаблон для добавления скриптов, автоматизирующих настройку системной среды экземпляров EC2.

Вопрос: Какие разрешения IAM нужны узлу EKS?​

Ему нужны разрешения AmazonEC2FullAccess, AmazonEKSWorkerNodePolicy, AmazonEKS_CNI_Policy и AmazonSSMManagedInstanceCore.

Вопрос: Как проверить правильность настройки системных параметров?​

Выполните проверки из сценария 2, чтобы убедиться, что состояние swap, количество файловых дескрипторов, количество областей виртуальной памяти и настройки прозрачных больших страниц памяти соответствуют требованиям.

На этой странице