Облачная платформаAdvanced

Настройка выделенного балансировщика нагрузки

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

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

Обзор

Преимущества подключения к кластеру через выделенный балансировщик нагрузки:

  • Кластер без безопасности также может использовать возможности сервиса Elastic Load Balance (ELB).
  • Можно использовать пользовательские сертификаты для двусторонней аутентификации HTTPS.
  • Поддерживается мониторинг трафика на семи уровнях и настройка сигнализации, что позволяет внимательно отслеживать состояние кластера.

Существует восемь различных форм сервиса ELB для кластеров в разных режимах безопасности, позволяющих подключаться к выделенному балансировщику нагрузки. Table 1 описывает возможности ELB для различных конфигураций кластеров. Table 2 описывает конфигурации для различных форм сервиса ELB.

Table 1 возможности ELB для различных кластеров

Режим безопасности

Форма сервиса, предоставляемая ELB для внешних систем

ELB Load Balancing

ELB Traffic Monitoring

ELB Two-way Authentication

Без безопасности

Без аутентификации

Поддерживается

Поддерживается

Не поддерживается

Односторонняя аутентификация

Двусторонняя аутентификация

Поддерживается

Поддерживается

Поддерживается

Режим безопасности + HTTP

Парольная аутентификация

Поддерживается

Поддерживается

Не поддерживается

Односторонняя аутентификация + Парольная аутентификация

Двусторонняя аутентификация + аутентификация по паролю

Поддерживается

Поддерживается

Поддерживается

Режим безопасности + HTTPS

Односторонняя аутентификация + аутентификация по паролю

Двусторонняя аутентификация + аутентификация по паролю

Поддерживается

Поддерживается

Поддерживается

Table 2 Конфигурации для разных форм сервиса ELB в зависимости от кластера

Режим безопасности

Форма сервиса, предоставляемая ELB для внешних систем

ELB Listener

ELB Listener

ELB Listener

Backend Server Group

Backend Server Group

Backend Server Group

Frontend Protocol

Frontend Port

SSL Authentication

Backend Protocol

Health Check Port

Health Check Path

Non-security

No authentication

HTTP

9200

No authentication

HTTP

9200

/

One-way authentication

HTTPS

9200

One-way authentication

HTTP

9200

Two-way authentication

HTTPS

9200

Two-way authentication

HTTP

9200

Security mode + HTTP

Password authentication

HTTP

9200

No authentication

HTTP

9200

/_opendistro/_security/health

One-way authentication + Password authentication

HTTPS

9200

Односторонняя аутентификация

HTTP

9200

Двусторонняя аутентификация + аутентификация паролем

HTTPS

9200

Двусторонняя аутентификация

HTTP

9200

Режим безопасности + HTTPS

Односторонняя аутентификация + аутентификация паролем

HTTPS

9200

Односторонняя аутентификация

HTTPS

9200

Двусторонняя аутентификация + аутентификация паролем

HTTPS

9200

Двусторонняя аутентификация

HTTPS

9200

Ограничения

  • Не рекомендуется подключать load balancer, связанный с публичным IP-адресом, к кластеру без режима безопасности. Предоставление доступа через публичную сеть через такой load balancer может вызвать риски безопасности, поскольку кластер без режима безопасности может быть доступен по HTTP без аутентификации безопасности.
  • Кластеры в режиме безопасности с поддержкой HTTPS не поддерживают аутентификацию frontend на основе HTTP. Если frontend использует HTTP, сначала отключите режим безопасности для кластеров. Подробнее см. Changing the Security Mode. Перед изменением режима безопасности сначала отключите load balancing. После изменения режима безопасности включите load balancing снова.

Предварительные условия

  • Выделенный load balancer был создан. Подробнее см. . Этот load balancer должен соответствовать следующим требованиям:
    • Её VPC совпадает с VPC кластера CSS. Сеть между ними подключена.
    • IP as a Backend включён. Это необходимо для подключения выделенного load balancer к кластеру CSS.
    • Определите, необходимо ли настраивать EIP в зависимости от потребностей сервиса. Публичный IP-адрес отображается для load balancer, подключающего кластер CSS, только если настроен EIP. Это позволит обеспечить доступ через публичную сеть к кластеру через данный load balancer.
  • Если ELB listener использует HTTPS, загрузите server certificate или CA certificate в консоль ELB. Подробнее см. .
    • Если используется однонаправленная аутентификация, загрузите server certificate.
    • Если используется двунаправленная аутентификация, загрузите server certificate и CA certificate.

Подключение кластера к Load Balancer

  1. Войдите в консоль управления CSS.
  2. В панели навигации слева выберите Clusters > Elasticsearch.
  3. В списке cluster нажмите имя целевого cluster. Отобразится страница информации о cluster.
  4. Нажмите вкладку Cluster Access, затем нажмите вкладку Load Balancing. На вкладке Elasticsearch включите переключатель Load Balancing. В открывшемся диалоговом окне задайте параметры.
    Table 3 Настройка балансировки нагрузки

    Параметр

    Описание

    Load Balancer

    Выберите выделенный load balancer, созданный ранее.

    Чтобы создать выделенный load balancer, см. .

    Agency

    Для настройки load balancer необходимо иметь разрешение на доступ к ресурсам ELB. Настроив IAM agency, вы можете предоставить CSS доступ к его ресурсам ELB через связанную учётную запись.

    • Если вы настраиваете agency впервые, нажмите Automatically Create IAM Agency, чтобы создать css-elb-agency.
    • Если ранее был автоматически создан IAM agency, вы можете нажать One-click authorization, чтобы разрешения, связанные с ролью ELB Administrator или системной политикой ELB FullAccess, были удалены автоматически, а вместо этого автоматически добавлены следующие пользовательские политики для более тонкого управления разрешениями.
      "elb:loadbalancers:list",
      "elb:loadbalancers:get",
      "elb:certificates:list",
      "elb:healthmonitors:*",
      "elb:members:*",
      "elb:pools:*",
      "elb:listeners:*"
    • Для использования Automatically Create IAM Agency и One-click authorization требуются следующие минимальные разрешения:
      "iam:agencies:listAgencies",
      "iam:roles:listRoles",
      "iam:agencies:getAgency",
      "iam:agencies:createAgency",
      "iam:permissions:listRolesForAgency",
      "iam:permissions:grantRoleToAgency",
      "iam:permissions:listRolesForAgencyOnProject",
      "iam:permissions:revokeRoleFromAgency",
      "iam:roles:createRole"
    • Для использования IAM agency требуются следующие минимальные разрешения:
      "iam:agencies:listAgencies",
      "iam:agencies:getAgency",
      "iam:permissions:listRolesForAgencyOnProject",
      "iam:permissions:listRolesForAgency"

  5. Нажмите OK, чтобы включить балансировку нагрузки.

    Отображается информация о балансировщике нагрузки.

  6. В области Listener нажмите для настройки прослушивателя, чтобы обеспечить надлежащую доступность кластера CSS.
    Table 4 Конфигурация прослушивателя

    Параметр

    Описание

    Frontend Protocol

    Протокол, используемый клиентом и прослушивателем для распределения трафика.

    Выберите HTTP или HTTPS.

    Выберите этот протокол в соответствии с вашими потребностями в подключении.

    Frontend Port

    Порт, используемый клиентом и прослушивателем для распределения трафика.

    Установите этот параметр в соответствии с требованиями сайта.

    SSL Authentication

    Режим аутентификации для доступа клиента к серверу. Установите этот параметр только когда Frontend Protocol установлен в HTTPS.

    Поддерживается как односторонняя, так и двусторонняя аутентификация.

    Выберите режим аутентификации, который соответствует вашим требованиям.

    Server Certificate

    Серверный сертификат используется для SSL‑рукопожатия. Содержимое сертификата и закрытый ключ должны быть предоставлены. Требуется только когда Frontend Protocol установлен в HTTPS.

    Выберите серверный сертификат, созданный в ELB.

    CA Certificate

    Также называется публичным ключевым сертификатом клиентского CA. Он используется для проверки издателя клиентского сертификата. Требуется только когда SSL Authentication установлен в Two-way authentication.

    Выберите CA‑сертификат, созданный в ELB.

    Когда включена двухсторонняя аутентификация HTTPS, HTTPS‑соединение может быть установлено только при условии, что клиент предоставит сертификат, выданный доверенным CA.

  7. (Необязательно) В области Listener нажмите Configure рядом с Access Control, чтобы перейти к списку слушателей балансировщика нагрузки. Нажмите Configure в столбце Access Control слушателя, чтобы настроить контроль доступа для этого слушателя. Вы можете указать IP‑адреса, которым разрешён доступ к вашему кластеру, для повышения безопасности. Для получения дополнительной информации см. раздел "What Is Access Control?" в Elastic Load Balance User Guide.
    Warning

    Без политик контроля доступа все IP‑адреса могут получать доступ к кластеру CSS через этот балансировщик нагрузки, что может создать риски безопасности.

  8. В области Health Check вы можете проверить результаты проверки состояния для каждого IP‑адреса узла, обеспечивая корректную работу каждого узла в кластере.
    Table 5 Описание результата проверки состояния

    Результат проверки состояния

    Описание

    Нормально

    The node IP address is connected.

    Abnormal

    The node IP address is disconnected.

  9. Если кластер более не нуждается в выделенном балансировщике нагрузки, отсоедините его, чтобы освободить ресурсы.

    Выберите Load Balancing > Elasticsearch, отключите Load Balancing. В отображаемом диалоговом окне нажмите OK.

    Caution

    После отсоединения балансировщика нагрузки любые конфигурации listener или backend server group будут удалены без возможности восстановления.

Доступ к кластеру через балансировщик нагрузки с помощью команд cURL

  1. В панели навигации слева выберите Clusters.
  2. Войдите в консоль управления CSS.
  3. В панели навигации слева выберите Clusters > Elasticsearch.
  4. В списке кластеров нажмите название целевого кластера. Отобразится страница информации о кластере.
  5. Нажмите вкладку Cluster Access, затем нажмите вкладку Load Balancing. На вкладке Elasticsearch запишите частный или публичный IP-адрес или IPv6-адрес балансировщика нагрузки, а также протокол/порт фронтенда listener.
    Caution

    Не рекомендуется подключать балансировщик нагрузки, связанный с публичным IP-адресом, к кластеру в режиме без безопасности. Предоставление доступа из публичной сети через такой балансировщик нагрузки может создать риски безопасности, поскольку кластер в режиме без безопасности может быть доступен по HTTP без аутентификации безопасности.

  6. Выполните следующие команды cURL на ECS, чтобы проверить, может ли выделенный балансировщик нагрузки подключиться к кластеру.
    Table 6 Команды для доступа к различным типам кластеров

    Режим безопасности

    Форма сервиса, предоставляемая ELB для внешних систем

    Команда cURL для доступа к кластеру

    Без защиты

    Без аутентификации

    curl http://IP:port

    Односторонняя аутентификация

    curl --cacert ./ca.crt https://IP:port

    Двусторонняя аутентификация

    curl --cacert ./ca.crt --cert ./client.crt --key ./client.key https://IP:port

    Режим безопасности + HTTP

    Аутентификация по паролю

    curl http://IP:port -u user:pwd

    Односторонняя аутентификация + аутентификация по паролю

    curl --cacert ./ca.crt https://IP:port -u user:pwd

    Двусторонняя аутентификация + аутентификация по паролю

    curl --cacert ./ca.crt --cert ./client.crt --key ./client.key https://IP:port -u user:pwd

    Режим безопасности + HTTPS

    Односторонняя аутентификация + аутентификация по паролю

    curl --cacert ./ca.crt https://IP:port -u user:pwd

    Двусторонняя аутентификация + аутентификация по паролю

    curl --cacert ./ca.crt --cert ./client.crt --key ./client.key https://IP:port -u user:pwd
    Table 7 Переменные

    Переменная

    Описание

    IP

    IP-адрес экземпляра балансировщика нагрузки.

    порт

    Протокол и порт фронтенда, настроенные для прослушивателя.

    пользователь

    Имя пользователя кластера. Этот параметр требуется только для кластера в режиме безопасности.

    pwd

    Пароль указанного выше имени пользователя. Этот параметр требуется только для кластера в режиме безопасности.

    Если информация о кластере возвращается, соединение успешно.

См. также: Sample Code for ESSecuredClientWithCerDemo, Sample Code for SecuredHttpClientConfigCallback, и pom.xml Sample Code.