Возможности Amazon EKS

Обзор

Эластичный сервис Amazon Kubernetes (Amazon EKS) – это управляемый сервис Kubernetes, который значительно упрощает запуск Kubernetes на AWS и в локальной среде. Kubernetes – это система с открытым исходным кодом для автоматизации развертывания и масштабирования контейнерных приложений, а также управления ими. Amazon EKS имеет сертификат совместимости с Kubernetes, поэтому существующие приложения, работающие на открытой версии Kubernetes, совместимы с Amazon EKS.

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

Amazon EKS позволяет вам выполнять приложения Kubernetes на Amazon Elastic Compute Cloud (Amazon EC2) и AWS Fargate. Сервис Amazon EKS позволяет использовать преимущества инфраструктуры AWS: производительность, масштабируемость, надежность и доступность, а также интеграцию с сетью AWS и сервисами обеспечения безопасности. В число таких сервисов входят балансировщики Application Load Balancer для распределения нагрузки, AWS Identity and Access Management (IAM) для интеграции с управлением доступом на основе ролей (RBAC) и AWS Virtual Private Cloud (VPC) для подключения подов к сети.

фотография компьютерных данных

Управляемые кластеры Kubernetes

Контроллеры AWS для Kubernetes (ACK) предоставляют вам прямой контроль над сервисами AWS из среды Kubernetes. Благодаря ACK упрощается создание масштабируемых и высокодоступных приложений Kubernetes, использующих сервисы AWS.

В EKS есть встроенная консоль для кластеров Kubernetes. Операторы кластеров и разработчики приложений могут использовать EKS в качестве центра организации, визуализации и устранения неполадок для своих приложений Kubernetes, выполняемых на Amazon EKS. Консоль EKS размещается на AWS, и доступ к ней предоставляется автоматически для всех кластеров EKS.

Дополнения EKS традиционно применяются как операционное программное обеспечение для расширения функциональности Kubernetes. Вы можете использовать EKS для установки и поддержания актуальности этого дополнения. Вы можете выбрать любые дополнения, которые будут выполняться в кластере Amazon EKS, в том числе инструменты Kubernetes для наблюдения, сетевого взаимодействия, автомасштабирования и интеграции с сервисами AWS.

С помощью сервиса Amazon EKS можно одной командой создавать, обновлять, масштабировать или уничтожать узлы для вашего кластера. Для снижения расходов эти узлы также могут использовать спотовые инстансы Amazon EC2. Управляемые группы узлов выполняют инстансы Amazon EC2 на основе новейших образов машин Amazon (AMI), пользовательских или оптимизированных для EKS, в вашем аккаунте AWS и сохраняют доступность приложения, корректно освобождая узлы для обновления и в случае сбоев.

Гибридные развертывания

Вы можете использовать сервис EKS для AWS Outposts для выполнения контейнерных приложений, для которых требуются особо малые задержки, в локальных системах. AWS Outposts – это полностью управляемый сервис, предоставляющий возможность использовать инфраструктуру AWS, сервисы AWS, API и инструменты практически в любой системе, подключенной к этому сервису. Благодаря сервису EKS для Outposts локальное управление контейнерами становится таким же простым, как и управление ими в облаке.

Вы можете присоединить к EKS узлы, запущенные в Локальных зонах AWS или AWS Wavelength, что даст вам дополнительные варианты для управляемой AWS инфраструктуры на периферийных устройствах.

Amazon EKS Distro содержит тот же дистрибутив Kubernetes с открытым исходным кодом, который используется в Amazon EKS на AWS для локальной среды. Кластерами EKS Distro можно управлять с помощью вашего собственного инструментария или с помощью Amazon EKS Anywhere.

Amazon EKS Anywhere позволяет с легкостью создавать и эксплуатировать кластеры Kubernetes в локальной среде (основанные на программном обеспечении из Amazon EKS Distro), в том числе на собственных виртуальных машинах и серверах без операционной системы. EKS Anywhere избавляет от сложностей, связанных с созданием и поддержкой собственного инструментария для управления кластерами Kubernetes. EKS Anywhere предоставляет инструменты автоматизации, которые упрощают создание кластеров, администрирование и операции с такой инфраструктурой, как инстансы без установленной операционной системы, VMware vSphere и облачные виртуальные машины. Сюда также входят облачные виртуальные машины с настройками по умолчанию ведения журнала, мониторинга, сети и хранилища. EKS Anywhere предоставляет дополнительные инструменты и компоненты, необходимые для запуска Kubernetes в производственной среде, такие как установка кластера и управление жизненным циклом, наблюдаемость, резервное копирование кластера и управление политиками.

Используйте eksctl для запуска узлов и централизованного управления

Используйте инструмент командной строки eksctl, чтобы начать работу с Amazon EKS за считанные минуты. Просто запустите команду eksctl create cluster, чтобы создать кластер EKS. eksctl поможет вам в эксплуатации кластера и управления им, в том числе в управлении узлами и дополнениями.

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

В инстансах EC2 на базе ARM используются процессоры AWS Graviton2, что обеспечивает серьезное повышение производительности и возможностей с одновременным снижением расходов. Повышение рентабельности приложений – основная цель работы с контейнерами. Комбинация этих факторов дает великолепное соотношение цены и производительности. Например, тестирование рабочих нагрузок демонстрирует, что типы инстансов на базе процессоров Graviton2 до 40 % более эффективны в отношении цены и производительности, чем эквивалентные им семейства M5, C5 и R5 на базе x86. Amazon EKS на AWS Graviton2 общедоступен в тех регионах, где доступны оба сервиса.

Сетевая конфигурация и безопасность

Amazon EKS упрощает обеспечение безопасности кластеров Kubernetes за счет использования расширенных возможностей сервисов AWS, интегрированных с ними инструментов и решений партнеров-технологов. Например, сервис IAM обеспечивает точную настройку доступа, а Amazon VPC изолирует кластеры Kubernetes от других клиентов.

Сервис Amazon Elastic Kubernetes Service (EKS) поддерживает IPv6, что позволяет клиентам масштабировать контейнерные приложения на Kubernetes далеко за пределы частного адресного пространства IPv4. Благодаря поддержке IPv6 в EKS подам назначается только глобально маршрутизируемый IPv6-адрес, что позволяет масштабировать приложения в кластере, не задействуя ограниченное частное адресное пространство IPv4. Этот глобально маршрутизируемый IPv6-адрес можно использовать для непосредственной коммуникации с любым адресом IPv6 в Amazon VPC, локальной сети или публичном Интернете. Кроме того, EKS настраивает сеть таким образом, чтобы поды по-прежнему могли взаимодействовать с адресами на основе IPv4 за пределами кластера, позволяя использовать преимущества IPv6 с Kubernetes и не перемещая все зависимые сервисы организации в IPv6.

Идентификация подов EKS упрощает клиентам настройку приложений в кластерах EKS для доступа к сервисам AWS. Для администраторов кластера EKS обеспечен упрощенный рабочий процесс получения учетных данных IAM, необходимых для аутентификации приложений Kubernetes, чтобы иметь доступ к ресурсам AWS, таким как корзины S3, таблицы DynamoDB и т. д. Идентификация подов EKS упрощает использование ролей IAM в нескольких кластерах и делает легче управление политиками IAM, поддерживая повторное использование политик в разных ролях IAM.

AWS Cloud Map – это сервис обнаружения облачных ресурсов. Cloud Map обеспечивает определение пользовательских имен для ресурсов приложения и сохранение сведений об обновленных расположениях этих динамически меняющихся ресурсов. Это повышает доступность приложения, так как веб-сервис всегда обнаруживает последние расположения его ресурсов. Cloud Map использует соединитель external-dns для Kubernetes с открытым исходным кодом, который автоматически передает информацию о расположении внутренних сервисов в реестр сервисов Cloud Map, когда запускаются сервисы Kubernetes, и удаляет их по завершении. Сервисы на основе Kubernetes обнаруживаются через Cloud Map, обеспечивающую объединенный реестр сервиса для всех контейнерных рабочих нагрузок.

Сетка сервисов стандартизирует способ взаимодействия каждого микросервиса в вашем приложении, что упрощает создание и запуск сложных приложений микросервисов. AWS App Mesh настраивает приложения для полной видимости и высокой доступности. Вы можете использовать контроллер AWS App Mesh для Kubernetes, чтобы создавать новые сервисы, подключенные к сетке, определять маршрутизацию трафика, настраивать шифрование и другие функции безопасности. Кроме того, App Mesh позволяет автоматически регистрировать поды Kubernetes в AWS Cloud Map для обнаружения сервисов. App Mesh экспортирует метрики, журналы и маршруты к адресам, указанным в предоставленной конфигурации загрузочного сценария Envoy. App Mesh предоставляет API для настройки маршрутов трафика, разрыва канала связи, повторных попыток и других элементов управления между микросервисами, которые включаются с помощью сетки. App Mesh Mutual TLS помогает шифровать все запросы между сервисами, даже если они выполняются в закрытых сетях. Кроме того, вы можете добавить элементы управления аутентификацией, чтобы разрешить обмен данными только между разрешенными вами службами.

Кластеры EKS работают в сервисе Amazon VPC, благодаря чему вы можете использовать собственные группы безопасности VPC и списки контроля доступа к сети. Вычислительные ресурсы не используются совместно с другими клиентами, что обеспечивает высокий уровень изоляции для создания безопасных и надежных приложений. В сервисе EKS используется сетевой интерфейс контейнера Amazon VPC, благодаря чему поды Kubernetes могут получать IP-адреса этого VPC. Сервис Amazon EKS работает с механизмом сетевых политик Project Calico и предоставляет возможности точной настройки сетевых политик для рабочих нагрузок Kubernetes. Используйте API сетевой политики Kubernetes для управления доступом каждой службы.

Amazon EKS интегрирует Kubernetes RBAC (встроенную в Kubernetes систему контроля доступа на основе ролей) с AWS IAM. Роли RBAC можно связать непосредственно с сущностями IAM, что предоставляет точный контроль прав доступа к узлам плоскости управления Kubernetes.

С помощью Amazon EKS можно назначать разрешения IAM для сервисных учетных записей Kubernetes. Используя роль IAM, вы можете управлять доступом к другим сервисам на основе контейнеров, внешним ресурсам кластера AWS, таким как базы данных и конфиденциальной информации, или сторонним сервисам и приложениям, работающим вне AWS. Вы также получаете возможность точного управления доступом на уровне пода при работе кластеров с несколькими совместно расположенными сервисами, что оптимизирует затраты и упрощает обеспечение доступности кластера.

Сервис Amazon EKS сертифицирован в рамках нескольких программ соответствия требованиям для регулируемых и конфиденциальных приложений. Сервис Amazon EKS отвечает стандартам SOCPCIISOFedRAMP-ModerateIRAPC5K-ISMSENS HighOSPARHITRUST CSF и HIPAA.

Amazon EKS совместим с проверкой подписи изображений контейнеров, что дает возможность развертывать их рабочие нагрузки с утвержденными изображениями и артефактами. Перед развертыванием образов в кластерах Amazon EKS можно проверить изображения (или любой другой артефакт OCI, например экспорт спецификаций программного обеспечения), подписанные AWS Signer, полностью управляемым решением для подписи. AWS поддерживает решения для подписи и проверки изображений с открытым исходным кодом, поэтому вы можете легко подписывать артефакты, хранящиеся в реестре, и проверять их с помощью политик с открытым исходным кодом в виде кода или контроллеров доступа.

Балансировка нагрузки

Amazon EKS поддерживает использование Эластичной балансировки нагрузки (ELB), включая Балансировщик нагрузки приложений, Балансировщик сетевой нагрузки и Классический балансировщик нагрузки.

С кластером Amazon EKS можно выполнять стандартную балансировку нагрузки кластера Kubernetes или любой поддерживаемый контроллер приема данных Kubernetes.

Мониторинг цен

Amazon EKS помогает лучше понимать затраты, связанные с использованием Kubernetes как на уровне кластера, так и на уровне отдельного приложения.

Amazon EKS автоматически добавляет тег распределения затрат AWS к каждому инстансу EC2, присоединяемому к кластеру. Вам не нужно применять собственную политику тегов в организации, чтобы получать данные о затратах на уровне кластера. После того как вы активируете тег распределения стоимости имени кластера EKS в Консоли оплаты AWS, вы сможете использовать отчеты о затратах и использовании AWS, чтобы отслеживать затраты EC2, связанные с кластерами EKS.

Ведение журналов

Amazon EKS интегрирован с AWS CloudTrail, что обеспечивает наглядное представление и отслеживание истории аудита для операций по управлению EKS. Для просмотра вызовов API Amazon EKS можно использовать CloudTrail. Amazon EKS также отправляет журналы плоскости управления Kubernetes в Amazon CloudWatch для последующего анализа, отладки и аудита.

Поддержка рабочей нагрузки продвинутого уровня

Amazon EKS предоставляет оптимизированный Образ машины Amazon (AMI), включающий настроенные драйверы NVIDIA для инстансов Amazon EC2 P2 и P3 с поддержкой GPU. Это упрощает использование Amazon EKS для выполнения расширенных вычислительных рабочих нагрузок, включая машинное обучение (ML), Kubeflow, контейнеры глубокого обучения (DL), высокопроизводительные вычисления (HPC), финансовую аналитику и перекодирование видео.

Совместимость с открытым исходным кодом

Сервис Amazon EKS полностью совместим с инструментами, разработанными сообществом Kubernetes, и поддерживает популярные надстройки Kubernetes. В число поддерживаемых надстроек входит средство CoreDNS, позволяющее создать службу DNS для кластера, а также веб-интерфейс пользователя Kubernetes Dashboard и инструмент командной строки kubectl, предоставляющие доступ к кластеру в Amazon EKS и возможность управления им.

Дополнительные сведения см. на странице инструментов от сообщества Kubernetes на сайте GitHub.