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

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

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

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

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

Контролируемая плоскость управления

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

Возможности интеграции

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

Размещенная консоль Kubernetes

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

Дополнения EKS

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

Управляемые группы узлов

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

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

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

Поддержка Windows

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

Поддержка ARM

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

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

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

Обнаружение сервиса

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

Сетка сервиса

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

Встроенное сетевое взаимодействие VPC

Кластеры EKS работают в сервисе Amazon VPC, благодаря чему вы можете использовать собственные группы безопасности VPC и списки контроля доступа к сети. Ваши вычислительные ресурсы не предоставляются для совместного использования другим пользователям. Это обеспечивает высокий уровень изоляции и позволяет создавать с помощью сервиса Amazon EKS безопасные и надежные приложения. В сервисе EKS используется интерфейс CNI Amazon VPC, благодаря чему поды Kubernetes могут получать IP-адреса этого VPC.

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

AWS IAM Authenticator

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

IAM для сервисных аккаунтов

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

Соответствие требованиям

Сервис Amazon EKS сертифицирован в рамках нескольких программ соответствия требованиям для регулируемых и конфиденциальных приложений. Сервис Amazon EKS отвечает стандартам SOC, PCI, ISO, FedRAMP-Moderate, IRAP, C5, K-ISMS, ENS High, OSPAR, HITRUST CSF и HIPAA.

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

Amazon EKS поддерживает использование Elastic Load Balancing, включая Application Load Balancer (ALB), Network Load Balancer (NLB) и Classic Load Balancer.

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

Вычисления без использования серверов

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

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

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

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

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

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

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

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

Сертификат совместимости

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

Обновления управляемых кластеров

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

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

Поддержка расширенных рабочих нагрузок

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

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

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

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

Готовы приступить к разработке?
Начать работу с Amazon EKS
Есть вопросы?
Свяжитесь с нами