Kubernetes на AWS

Решение с открытым исходным кодом для оркестрации контейнеров и управления ими

Kubernetes – это программное обеспечение с открытым исходным кодом для развертывания приложений на основе контейнеров в любом масштабе и для управления ими. Kubernetes управляет кластерами вычислительных инстансов Amazon Elastic Compute Cloud (EC2) и запускает на них контейнеры, выполняя процедуры развертывания, обслуживания и масштабирования. Kubernetes позволяет запускать любые приложения на основе контейнеров с использованием одного и того же инструментария как локально, так и в облаке.

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

Kubernetes

КАК РАБОТАЕТ KUBERNETES

Kubernetes управляет кластером вычислительных инстансов и планирует запуск контейнеров в этом кластере в зависимости от доступных вычислительных ресурсов и требований каждого контейнера к ресурсам. Контейнеры объединяются в логические группы – так называемые «поды». В рамках пода можно запускать и масштабировать один или несколько контейнеров.

Программное обеспечение плоскости управления Kubernetes определяет время и место запуска подов, управляет маршрутизацией трафика и масштабирует поды в зависимости от нагрузки или других заданных метрик. Kubernetes автоматически запускает поды в кластере в зависимости от их требований к ресурсам и автоматически перезапускает поды в случае отказа самих подов или инстансов, на которых они запущены. Каждому поду Kubernetes присваивается IP-адрес и одно имя DNS, которое Kubernetes применяет для связи между сервисами и распределения внешнего трафика.

ПРЕИМУЩЕСТВА ИСПОЛЬЗОВАНИЯ KUBERNETES

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

Запуск приложений в любом масштабе

ЗАПУСК ПРИЛОЖЕНИЙ В ЛЮБОМ МАСШТАБЕ

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

Удобное перемещение приложений

УДОБНОЕ ПЕРЕМЕЩЕНИЕ ПРИЛОЖЕНИЙ

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

Запуск в любом месте

ЗАПУСК В ЛЮБОМ МЕСТЕ

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

Расширение функциональных возможностей

РАСШИРЕНИЕ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ

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

ИСПОЛЬЗОВАНИЕ KUBERNETES НА AWS

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

ЕСЛИ ВЫ ХОТИТЕ…
РЕКОМЕНДУЕМ ИСПОЛЬЗОВАТЬ
Полностью управлять развертыванием Kubernetes. Использовать для выделения ресурсов и запуска Kubernetes мощные типы инстансов по своему выбору. Amazon EC2
Использовать Kubernetes без необходимости выделять ведущие инстансы и etcd или управлять ими.
Amazon EKS
Хранить и шифровать образы контейнеров для быстрого развертывания, а также управлять ими.
Amazon ECR

 

Сотрудничество AWS с сообществом Kubernetes

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

Плагин CNI

Плагин CNI

Инструмент для подключения подов Kubernetes к сети с использованием эластичных сетевых интерфейсов на AWS.

CDK8S

CDK8s

Cdk8s позволяет определять приложения Kubernetes с помощью кода.

External DNS

External DNS

Инструмент, позволяющий настроить в Route 53 обнаружение сервисов для сервисов и объектов Ingress в Kubernetes.

Karpenter

Karpenter

Своевременные узлы для любого кластера Kubernetes.

Kubernetes

SIG AWS

Управляемая сообществом группа по интересам (SIG), работа которой посвящена интеграции сервисов AWS с API Kubernetes.

TorchServe

TorchServe

Модель PyTorch служит платформой для развертывания обученных моделей машинного обучения.

ВОПРОСЫ И ОТВЕТЫ ПО KUBERNETES

Вопрос: Что такое кластер Kubernetes?

Кластер Kubernetes – это логическая группа вычислительных инстансов EC2, на которых запускаются контейнеры. Кластер состоит из плоскости управления (инстансов, которые управляют настройками, временем и местом запуска контейнеров) и плоскости данных (инстансов, на которых запускаются контейнеры). Прежде чем запускать контейнеры или сервисы с помощью Kubernetes, необходимо задать кластер.

Вопрос: Что такое узел Kubernetes?

Узел Kubernetes – это один вычислительный инстанс (виртуальная машина) в составе кластера Kubernetes. Существует два типа инстансов: ведущие и рабочие. Ведущие инстансы используются для размещения сервера API Kubernetes. Они определяют настройки, время и место запуска контейнеров. Рабочие инстансы – это вычислительные инстансы, на которых запускаются контейнеры и выполняется обработка данных.

Вопрос: Что такое под Kubernetes?

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

Вопрос: Что такое etcd?

etcd – это распределенное хранилище пар «ключ-значение», позволяющее хранить данные в распределенном кластере машин и предоставлять к ним доступ. Kubernetes использует etcd для хранения данных о кластере и предоставления доступа к ним всей плоскости управления.

Вопрос: Поддерживается ли Kubernetes на AWS?

AWS упрощает использование Kubernetes. На данный момент у AWS больше всего клиентов, использующих Kubernetes в облаке. Согласно данным Федерации облачных вычислений (CNCF), большинство развертываний Kubernetes работает именно в AWS. AWS активно сотрудничает с сообществом Kubernetes и вносит свой вклад в разработку кода, чтобы клиентам было проще использовать Kubernetes на AWS.

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

Вопрос: Как использовать Kubernetes на AWS?

Kubernetes на AWS можно использовать двумя способами: запускать ПО самостоятельно на инстансах виртуальных машин Amazon EC2 или работать с сервисом Amazon EKS. Подробнее о том, как самостоятельно запускать Kubernetes на EC2, см. в нашем семинаре на Github. Подробнее об использовании Amazon EKS см. на странице продукта.

Подробнее о Kubernetes на AWS

Посетить страницу Amazon Elastic Kubernetes Service

Подробнее о контейнерах в AWS

Перейти на страницу контейнеров
Готовы приступить к разработке?
Создание аккаунта AWS
Есть вопросы?
Связаться с нами