- Регистрация
- 14.05.16
- Сообщения
- 11.398
- Реакции
- 501
- Репутация
- 0
Прим. перев.: Американский DevOps-инженер Sid Palas, пользуясь
TL;DR: Azure и Digital Ocean не взимают плату за вычислительные ресурсы, используемые для управляющего слоя (control plane), что делает их подходящим выбором для развертывания множества небольших кластеров. Для запуска малого количества крупных кластеров лучше всего подходит GKE. Кроме того, можно серьезно сократить затраты, используя спотовые/вытесняемые/низкоприоритетные узлы или «подписавшись» на длительное использование одних и тех же узлов (это касается всех платформ).
Размер кластера (количество worker'ов)
Общие сведения
Это объявление сильно расстроило некоторых…
Главными героями статьи выступают:
Разбивка расходов
Общие затраты на использование Kubernetes в каждой из этих платформ складываются из следующих компонентов:
Кроме того, облачные провайдеры предлагают значительные скидки, если клиент хочет/может использовать вытесняемые (preemptible),
Стоит подчеркнуть, что, хотя стоимость является хорошим базисом для сравнения и оценки поставщиков услуги, следует учитывать и другие факторы:
Однако эти факторы выходят за рамки данной статьи/исследования. В
Блокнот Jupyter
Чтобы упростить поиск самого выгодного решения, я разработал
Поупражняться с живой версией блокнота можно в Binder:
Дайте мне знать, если расчеты или исходные расценки неверны (это можно сделать с помощью issue или pull request'а в GitHub —
Выводы
Увы, нюансов слишком много, чтобы привести более конкретные рекомендации, нежели те, что включены в абзац TL;DR в самом начале. Впрочем, некоторые выводы все же можно сделать:
* Примечание: в анализе используются данные для вычислительных узлов общего назначения (general-purpose). Это экземпляры n1 GCP Compute Engine, m5 AWS ec2, виртуальные машины D2v3 Azure и droplet'ы DO с выделенными CPU. В свою очередь, можно провести и исследования среди других типов виртуальных машин (burstable, entry-level). На первый взгляд, стоимость виртуальных машин линейно зависит от числа vCPU и объема памяти, однако я не уверен, что это предположение останется справедливым для сильно нестандартных соотношений память/CPU.
В статье
Надеюсь, статья вместе с блокнотом помогут вам оценить основные предложения managed Kubernetes и/или сэкономить на облачной инфраструктуре, воспользовавшись скидками и другими возможностями.
P.S. от переводчика
Читайте также в нашем блоге:
You must be registered for see links
как инфоповодом, провёл сравнение стоимости услуги Managed Kubernetes (в разных конфигурациях) от ведущих мировых облачных провайдеров. Дополнительным плюсом его работы стала публикация соответствующего Jupyter Notebook, позволяющего (при наличии минимальных знаний Python) подкорректировать производимые расчёты под свои нужды.TL;DR: Azure и Digital Ocean не взимают плату за вычислительные ресурсы, используемые для управляющего слоя (control plane), что делает их подходящим выбором для развертывания множества небольших кластеров. Для запуска малого количества крупных кластеров лучше всего подходит GKE. Кроме того, можно серьезно сократить затраты, используя спотовые/вытесняемые/низкоприоритетные узлы или «подписавшись» на длительное использование одних и тех же узлов (это касается всех платформ).
Размер кластера (количество worker'ов)
Общие сведения
You must be registered for see links
о начале взимания 10 центов за час работы каждого кластера в GKE побудило меня заняться анализом цен на основные предложения в области управляемого (managed) Kubernetes.Это объявление сильно расстроило некоторых…
Главными героями статьи выступают:
- Google Kubernetes Engine (GCP) –
You must be registered for see links;
- Elastic Kubernetes Service (AWS) –
You must be registered for see links;
- Azure Kubernetes Service (Azure) –
You must be registered for see links;
- Kubernetes on Digital Ocean –
You must be registered for see links.
Разбивка расходов
Общие затраты на использование Kubernetes в каждой из этих платформ складываются из следующих компонентов:
- Сбор за управление кластером;
- Балансировка нагрузки (для Ingress);
- Вычислительные ресурсы (vCPU и память) worker'ов;
- Egress-трафик;
- Постоянное хранилище;
- Обработка данных балансировщиком нагрузки.
Кроме того, облачные провайдеры предлагают значительные скидки, если клиент хочет/может использовать вытесняемые (preemptible),
You must be registered for see links
или низкоприоритетные (low-priority) узлы ИЛИ обязуется использовать одни и те же узлы на протяжении 1-3 лет.Стоит подчеркнуть, что, хотя стоимость является хорошим базисом для сравнения и оценки поставщиков услуги, следует учитывать и другие факторы:
- Аптайм (Service Level Agreement);
- Окружающую облачную экосистему;
- Доступные версии K8s;
- Качество документации/инструментария.
Однако эти факторы выходят за рамки данной статьи/исследования. В
You must be registered for see links
подробно рассматриваются неценовые факторы для EKS, AKS и GKE.Блокнот Jupyter
Чтобы упростить поиск самого выгодного решения, я разработал
You must be registered for see links
, задействовав в нем plotly + ipywidgets. Он позволяет сравнивать предложения провайдеров для различных размеров кластера и наборов услуг.Поупражняться с живой версией блокнота можно в Binder:
You must be registered for see links
You must be registered for see links
Дайте мне знать, если расчеты или исходные расценки неверны (это можно сделать с помощью issue или pull request'а в GitHub —
You must be registered for see links
).Выводы
Увы, нюансов слишком много, чтобы привести более конкретные рекомендации, нежели те, что включены в абзац TL;DR в самом начале. Впрочем, некоторые выводы все же можно сделать:
- В отличие от GKE и EKS, AKS и Digital Ocean не взимают плату за ресурсы управляющего слоя. AKS и DO выгоднее, если архитектура включает множество мелких кластеров (например, по кластеру на каждого разработчика или каждого клиента).
- Чуть менее дорогие вычислительные ресурсы GKE делают его более выгодным с увеличением размера кластеров*.
- Использование вытесняемых узлов или долгосрочная привязка к узлам позволяют снизить расходы более, чем на 50%. Примечание: у Digital Ocean таких скидок нет.
- Плата за исходящий трафик в Google выше, однако определяющим фактором при расчете выступает стоимость вычислительных ресурсов (если только ваш кластер не является источником значительного объема исходящих данных).
- Выбор типов машин с учетом потребностей рабочих нагрузок по CPU и памяти позволит избежать лишней платы за невостребованные ресурсы.
- Digital Ocean просит меньше за vCPU и больше за память по сравнению с другими платформами — это может стать решающим фактором для некоторых типов вычислительных нагрузок.
* Примечание: в анализе используются данные для вычислительных узлов общего назначения (general-purpose). Это экземпляры n1 GCP Compute Engine, m5 AWS ec2, виртуальные машины D2v3 Azure и droplet'ы DO с выделенными CPU. В свою очередь, можно провести и исследования среди других типов виртуальных машин (burstable, entry-level). На первый взгляд, стоимость виртуальных машин линейно зависит от числа vCPU и объема памяти, однако я не уверен, что это предположение останется справедливым для сильно нестандартных соотношений память/CPU.
В статье
You must be registered for see links
, опубликованной в 2018 году, использовался эталонный кластер со 100 ядрами vCPU и 400 Гб памяти. Для сравнения, по моим расчетам, подобный кластер на каждой из этих платформ (для on-demand-экземпляров) обойдется в следующую сумму:- AKS: 51465 USD/год
- EKS: 43138 USD/год
- GKE: 30870 USD/год
- DO: 36131 USD/год
Надеюсь, статья вместе с блокнотом помогут вам оценить основные предложения managed Kubernetes и/или сэкономить на облачной инфраструктуре, воспользовавшись скидками и другими возможностями.
P.S. от переводчика
Читайте также в нашем блоге:
- «
You must be registered for see links»;
- «
You must be registered for see links»;
- «
You must be registered for see links»;
- «
You must be registered for see links».