Kubernetes на AWS

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

kuberneteslogo

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

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

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

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

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

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

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

100x100_benefit_scalable_100x100_benefit_scalable

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

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

100x100_benefit_migration

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

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

100x100_benefit_global_100x100_benefit_global

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

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

100x100_benefit_compatible

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

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

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

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

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

 

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

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

CNI_logo_120x100

Подключаемый модуль CNI

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

heptio-logo-news_1_120x100

IAM Authenticator

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

EKS_external-dns_120x100

External DNS

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

Kubernetes-detoure-titre-noir_120x100

SIG AWS

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

new_product_fargate

VIRTUAL KUBELET

Экспериментальный проект, позволяющий запускать на AWS Fargate контейнеры с использованием плоскости управления Kubernetes.

ВОПРОСЫ И ОТВЕТЫ ПО 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 Container Service for Kubernetes (EKS) – управляемый сервис, который позволяет просто запускать Kubernetes на AWS без необходимости устанавливать и обслуживать собственную плоскость управления Kubernetes.

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

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

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