| Аббревиатура | Полное название | Описание |
|---|---|---|
| eks-clb | Classic Load Balancer | Стандартный балансировщик нагрузки AWS. Имеет проблемы в некоторых ситуациях и не рекомендуется к использованию. |
| eks-nlb | Network Load Balancer | Балансировщик нагрузки AWS уровня 4, выполняющий балансировку на уровне TCP/UDP, подходит для сценариев, требующих более низкоуровневого сетевого контроля. |
| eks-alb | Application Load Balancer | Балансировщик нагрузки AWS уровня 7. По сравнению с eks-nlb, eks-alb может парсить HTTP/HTTPS протоколы и более интеллектуально распределять запросы, подходит для веб-приложений. |
| aws-lb | AWS Load Balancer | Балансировщик нагрузки, установленный в Kubernetes, который может автоматически создавать eks-nlb и eks-alb на основе LoadBalancer Services и Ingress в Kubernetes для удовлетворения потребностей балансировки нагрузки приложений. |
| Platform Load Balancer | - | Собственный балансировщик нагрузки платформы уровня 7. |
| Service Annotations | - | Метаданные, прикрепляемые к объектам в виде пар ключ-значение. Эта дополнительная информация может быть распознана и использована для улучшения и упрощения управления различными аспектами ресурсов Kubernetes. Аннотации могут быть пояснительным текстом без конкретной функциональности, задавать конфигурации или поведение облачного провайдера, либо определять параметры конфигурации и инструменты. Очень мощная функциональность. |
При создании балансировщиков нагрузки рекомендуется вручную настраивать service annotations, чтобы обеспечить корректное использование платформенным балансировщиком нагрузки aws-lb. Если соответствующие service annotations настроены некорректно, платформа по умолчанию будет использовать eks-clb, который имеет проблемы, связанные с UDP, что может привести к неожиданным ситуациям.
В соответствующем кластере выполните следующую команду с помощью kubectl для поиска всех Pod в namespace kube-system с именами, содержащими "aws-load":
Создайте балансировщик нагрузки; подробные шаги и параметры создания смотрите в разделе создания балансировщика нагрузки в AWS EKS Service Annotation Instructions.
Если команда выше не возвращает связанных Pod, значит в кластере не установлен AWS Load Balancer Controller. Service annotations не требуются; создавайте балансировщик нагрузки напрямую.
Если команда возвращает связанные Pod, значит в кластере установлен AWS Load Balancer Controller. При создании балансировщика нагрузки в соответствующем кластере добавьте следующие service annotations. Подробнее об аннотациях смотрите в AWS EKS Service Annotation Instructions:
service.beta.kubernetes.io/aws-load-balancer-type: external //Required
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip //Required
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing // Optional. Добавьте эту аннотацию, если требуется поддержка публичной сети.
При создании контейнерных сетевых балансировщиков нагрузки заполненные service annotations будут установлены на LoadBalancer Service, соответствующий платформенному балансировщику нагрузки.
В публичных облаках LoadBalancer Services с соответствующими service annotations будут распознаны облаком и получат назначенные адреса. Платформенный балансировщик нагрузки прочитает этот адрес и установит его в качестве собственного адреса доступа.