- Главная страница
- Kubernetes
Kubernetes на AWS
Решение с открытым исходным кодом для оркестрации контейнеров и управления ими
Обзор
Kubernetes – это программное обеспечение с открытым исходным кодом для развертывания приложений на основе контейнеров в любом масштабе, а также для управления ими. Kubernetes управляет кластерами вычислительных инстансов Amazon Elastic Compute Cloud (EC2) и запускает на них контейнеры, выполняя процедуры развертывания, обслуживания и масштабирования. Kubernetes позволяет запускать любые приложения на основе контейнеров с использованием одного и того же инструментария как локально, так и в облаке.
AWS упрощает использование Kubernetes в облаке. Для этого предлагается масштабируемая инфраструктура виртуальных машин с высоким уровнем доступности, разработанные сообществом средства интеграции с сервисами и управляемый сервис Amazon Elastic Kubernetes Service (EKS), сертифицированный на совместимость с 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 (IAM), обнаружение сервисов, а также безопасной и масштабируемой средой AWS с высоким уровнем доступности.
Рассмотрите возможность использования Amazon EC2
Применяйте Amazon EC2 только, если хотите полностью управлять развертыванием Kubernetes. Развертывайте и запускайте Kubernetes на мощных типах инстансов.
Рассмотрите возможность использования Amazon EKS
Применяйте Amazon EKS только, если хотите использовать Kubernetes без необходимости развертывать ведущие инстансы и etcd или управлять ими.
Рассмотрите возможность использования Amazon ECR
Применяйте Amazon ECR только, если хотите хранить и шифровать образы контейнеров для быстрого развертывания, а также управлять ими.
Сотрудничество AWS с сообществом Kubernetes
Вопросы и ответы по Kubernetes
Открыть всеКластер Kubernetes – это логическая группа вычислительных инстансов EC2, на которых запускаются контейнеры. Кластер состоит из плоскости управления (инстансов, которые управляют настройками, временем и местом запуска контейнеров) и плоскости данных (инстансов, на которых запускаются контейнеры). Прежде чем запускать контейнеры или сервисы с помощью Kubernetes, необходимо задать кластер.
Узел Kubernetes – это один вычислительный инстанс (виртуальная машина) в составе кластера Kubernetes. Существует два типа инстансов: ведущие и рабочие. Ведущие инстансы используются для размещения сервера API Kubernetes. Они определяют настройки, время и место запуска контейнеров. Рабочие инстансы – это вычислительные инстансы, на которых запускаются контейнеры и выполняется обработка данных.
Под Kubernetes – это способ запуска контейнеров на вычислительном инстансе. Под включает в себя контейнеры, настройки их запуска, сетевые ресурсы и ресурсы хранилища. Подом может являться как отдельный контейнер, так и группа контейнеров, которые всегда запускаются вместе. Если вы обычно запускаете отдельные контейнеры, можете считать, что под – это запущенный контейнер.
etcd – это распределенное хранилище пар «ключ-значение», позволяющее хранить данные в распределенном кластере машин и предоставлять к ним доступ. Kubernetes использует etcd для хранения данных о кластере и предоставления доступа к ним всей плоскости управления.
AWS упрощает использование Kubernetes. На данный момент у AWS больше всего клиентов, использующих Kubernetes в облаке. Согласно данным Федерации облачных вычислений (CNCF), большинство развертываний Kubernetes работает именно в AWS. AWS активно сотрудничает с сообществом Kubernetes и вносит свой вклад в разработку кода, чтобы клиентам было проще использовать Kubernetes на AWS.
AWS предлагает Amazon Elastic Kubernetes Service (EKS) — управляемый сервис, который позволяет просто запускать Kubernetes на AWS без необходимости устанавливать и обслуживать собственную плоскость управления Kubernetes.
Kubernetes на AWS можно использовать двумя способами: запускать ПО самостоятельно на инстансах виртуальных машин Amazon EC2 или работать с сервисом Amazon EKS. Подробнее о том, как самостоятельно запускать Kubernetes на EC2, см. в нашем семинаре на Github. Подробнее об использовании Amazon EKS см. на странице продукта.