Сравнение на цените на Managed Kubernetes (2020)

Прим. прев.: Американският DevOps инженер Sid Palas, използвайки скорошното анонсиране на Google Cloud , направи сравнение на цените за услуга Managed Kubernetes (в различни конфигурации) от водещите световни облачни доставчици. Допълнителен плюс на неговата работа е публикуването на съответния Jupyter Notebook, който позволява (при наличие на минимални знания по Python) да се коригират изчисленията според собствените нужди.

TL;DR: Azure и Digital Ocean не начисляват такса за изчислителните ресурси, използвани за управляващия слой (control plane), което ги прави подходящ избор за разгръщане на много малки клъстери. За стартиране на малък брой големи клъстери, GKE е най-добрият вариант. Освен това, разходите могат да бъдат значително намалени, с използване на спотови/вытесняеми/нископриоритетни узли или „подписване“ за дългосрочно използване на едни и същи узли (това важи за всички платформи).

Сравнение на цените на Managed Kubernetes (2020)
Размерът на клъстера (броят worker-ы)

Обща информация

Скорошното съобщение на Google Cloud за започване на начисляване от 10 цента на час за работа на всеки клъстер в GKE ме подтикна да анализирам цените на основните предложения в областта на управляемия (managed) Kubernetes.

Сравнение на цените на Managed Kubernetes (2020)
Това съобщение много разочарова някои…

Главните герои на статията са:

Разбивка на разходите

Общите разходи за използване на Kubernetes във всяка от тези платформи се състоят от следните компоненти:

  • Такса за управление на клъстера;
  • Балансировка на натоварването (за Ingress);
  • Изчислителни ресурси (vCPU и памет) на worker-ите;
  • Egress трафик;
  • Постоянно хранилище;
  • Обработка на данни от балансировача на натоварването.

Освен това, облачните доставчици предлагат значителни намаления, ако клиентът желае/може да използва вытесняеми (preemptible), спотови или нископриоритетни (low-priority) узли ИЛИ се ангажира да използва едни и същи узли за период от 1-3 години.

Следва да се подчертае, че, макар цената да е добра основа за сравнение и оценка на доставчиците на услуги, трябва да се вземат предвид и други фактори:

  • Управляемост на услугата (Service Level Agreement);
  • Обединяваща облачна екосистема;
  • Налични версии на K8s;
  • Качество на документацията/инструментите.

Все пак, тези фактори излизат извън рамките на настоящата статия/изследване. В февруарския пост в блога StackRox подробно се разглеждат неценовите фактори за EKS, AKS и GKE.

Jupyter Notebook

За да опростя търсенето на най-изгодното решение, разработих Jupyter Notebook, използвайки plotly + ipywidgets. Той позволява да се сравняват предложенията на доставчиците за различни размери на клъстери и набори от услуги.

Можете да се запознаете с активната версия на бележника в Binder:

Сравнение на цените на Managed Kubernetes (2020)
managed-kubernetes-price-exploration.ipynb на mybinder.org

Уведомете ме, ако изчисленията или изходните цени са погрешни (можете да го направите чрез issue или pull request в GitHub — ето репозитория).

Изводи

За съжаление, нюансите са твърде много, за да предоставя по-конкретни препоръки, освен тези, включени в абзаца 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.

В статията The Ultimate Kubernetes Cost Guide: AWS vs GCP vs Azure vs Digital Ocean, публикувана през 2018 г., беше използван еталонен клъстер с 100 ядра vCPU и 400 ГБ памет. За сравнение, според моите изчисления, подобен клъстер на всяка от тези платформи (за on-demand инстанции) ще струва следната сума:

  • AKS: 51465 USD/година
  • EKS: 43138 USD/година
  • GKE: 30870 USD/година
  • DO: 36131 USD/година

Надявам се, статията заедно с бележника ще ви помогнат да оцените основните предложения на managed Kubernetes и/или да спестите от облачната инфраструктура, като се възползвате от отстъпки и други възможности.

P.S. от преводача

Прочетете също в нашия блог:

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster