Пользователи AWS сталкиваются с выбором при развертывании Kubernetes: запускать его самостоятельно на EC2 или позволить Amazon выполнять тяжелую работу с помощью EKS. Посмотрите, какой подход лучше всего соответствует потребностям вашей организации.
У пользователей AWS, которые хотят развернуть Kubernetes на AWS, есть два основных варианта: действовать в одиночку или позволить Amazon сделать всю тяжелую работу. Каждый подход имеет свои плюсы и минусы.
Kubernetes , оркестратор контейнеров с открытым исходным кодом, упрощает автоматизацию, развертывание, масштабирование и эксплуатацию контейнерных приложений. Это позволяет компаниям пользоваться преимуществами контейнеров, не сталкиваясь со сложностью и накладными расходами, которые раньше были связаны с ними.
У AWS есть довольно успешный собственный сервис оркестровки управляемых контейнеров — Amazon Elastic Container Service. В качестве альтернативы пользователи могут запускать свои собственные кластеры Kubernetes на EC2. В конце концов, однако, Amazon не смогла игнорировать спрос на управляемое предложение Kubernetes, и в конце 2017 года Amazon добавила Elastic Container Service для Kubernetes ( EKS ).
Чтобы выбрать между EKS и Kubernetes с самоуправлением, тщательно взвесьте преимущества и недостатки каждого варианта.
Kubernetes на AWS: знайте свои возможности
С помощью EKS Amazon полностью управляет плоскостью управления, включая такие компоненты, как etcd и сервер API Kubernetes, с интеграцией с другими сервисами AWS, такими как Identity and Access Management ( IAM ).
Вся инфраструктура управления работает за кулисами в нескольких зонах доступности. AWS автоматически заменяет любые неработоспособные узлы, чтобы поддерживать высокую доступность. Он также обрабатывает все обновления и исправления. Для пользователей плоскость управления EKS — это, по сути, черный ящик.
Для плоскости данных для пользователей EKS есть три варианта: узлы с самостоятельным управлением, группы узлов, управляемые EKS, и AWS Fargate.
Самоуправляемые узлы
При использовании самоуправляемых узлов пользователям необходимо создавать узлы и управлять ими с ручной настройкой или с помощью шаблонов AWS CloudFormation, предоставляемых EKS. Когда виртуальные машины EC2 запущены и работают, они присоединяются к плоскости управления Kubernetes. Затем плоскость управления Kubernetes назначает модули узлам и запускает контейнеры. Кроме того, пользователям необходимо выполнить обновление ОС и версии Kubernetes узлов плоскости данных.
Группы узлов, управляемые EKS
При использовании групп узлов, управляемых EKS, EKS автоматически создает и обновляет узлы плоскости данных. Пользователям нужно нажать всего пару кнопок в веб-консоли, чтобы добавить новые узлы и обновить версии ОС или Kubernetes.
АМС Фаргейт
AWS Fargate — это управляемый сервис для создания вычислительных ресурсов по запросу для контейнеров. С его помощью пользователи могут воспользоваться бессерверной платформой для своей плоскости данных Kubernetes. Когда плоскость управления Kubernetes создает новые модули, они будут работать как контейнеры в Fargate без создания и настройки узлов Kubernetes.
В качестве альтернативы ИТ-команды могут запустить самоуправляемую среду Kubernetes на экземпляре EC2. Выполняйте развертывание с помощью таких инструментов, как kops, которые помогают создавать кластер Kubernetes и управлять им . В этом случае плоскость управления видна и доступна пользователям, которые смогут видеть компоненты, работающие на выделенных экземплярах EC2. Администраторам также придется исправлять и поддерживать все вручную, что в некоторых случаях может быть неудобно.
Kubernetes на AWS: EKS против самостоятельного управления
Когда организация должна решить, как она будет развертывать Kubernetes на AWS, выбор правильного варианта зависит от варианта использования и конкретных требований к разработке. Доступные функции и простота — или их отсутствие — так или иначе будут подталкивать организации. Ключевыми характеристиками, которые следует учитывать, являются доступность, безопасность и стоимость.
Доступность и управление
Хотя EKS работает с Upstream Kubernetes и сертифицирован как совместимый с Kubernetes, у него есть некоторые недостатки. Он доступен не во всех регионах AWS, и скорость его выпуска низкая. На момент публикации EKS работает только до версии Kubernetes 1.22, хотя версия 1.24 уже вышла.
С другой стороны, EKS, безусловно, сокращает накладные расходы на развертывание и обслуживание Kubernetes. Это одно из его основных преимуществ. У многих компаний нет ресурсов или желания управлять самостоятельным кластером Kubernetes, поэтому интерес к запуску Kubernetes в облаке значительно вырос с выпуском EKS.
Хотя создать масштабируемый и высокодоступный самоуправляемый кластер Kubernetes непросто, EKS всегда гарантирует, что плоскость управления запущена и работает. Кроме того, EKS с Fargate помогает пользователям создать масштабируемую плоскость данных с минимальными затратами.
Безопасность и обновления
Безопасность и обновления плоскости управления и плоскости данных необходимы для безопасной и надежной установки Kubernetes. При неуправляемой установке Kubernetes пользователям необходимо обновить компоненты плоскости управления и узлы. При использовании управляемого сервиса EKS ответственность за плоскость управления будет возложена на AWS, в то время как для плоскости данных существуют разные подходы.
- Управляемые узлы EKS. Пользователи могут легко обновлять узлы одним щелчком мыши в консоли.
- Самоуправляемые узлы. Ответственность за безопасность и обновление узлов полностью лежит на пользователе.
- АВС Фаргейт. Fargate будет запускать контейнеры в актуальной и безопасной среде.
Расходы
Стоимость является еще одним фактором. EKS взимает 0,10 доллара США в час за каждый кластер Amazon EKS, что составляет 73 доллара США в месяц в регионе Восток США (Огайо). В дополнение к уровню управления организации дополнительно оплачивают рабочие узлы. Если пользователям требуется большое количество кластеров Kubernetes с меньшими средами разработки, затраты на плоскость управления могут возрасти до 73 долларов.
С другой стороны, эти затраты будут незначительными для более крупных производственных рабочих нагрузок, состоящих из узлов с огромными вычислительными ресурсами. Когда вы запускаете самоуправляемые кластеры Kubernetes, вы платите за рабочие узлы, а также за узлы уровня управления. Для надежного API Kubernetes используйте отдельные узлы плоскости управления. Общая стоимость также будет зависеть от типов инстансов и размера кластера.