Прим. прев.: Американският DevOps инженер Sid Palas, използвайки , направи сравнение на цените за услуга Managed Kubernetes (в различни конфигурации) от водещите световни облачни доставчици. Допълнителен плюс на неговата работа е публикуването на съответния Jupyter Notebook, който позволява (при наличие на минимални знания по Python) да се коригират изчисленията според собствените нужди.
TL;DR: Azure и Digital Ocean не начисляват такса за изчислителните ресурси, използвани за управляващия слой (control plane), което ги прави подходящ избор за разгръщане на много малки клъстери. За стартиране на малък брой големи клъстери, GKE е най-добрият вариант. Освен това, разходите могат да бъдат значително намалени, с използване на спотови/вытесняеми/нископриоритетни узли или „подписване“ за дългосрочно използване на едни и същи узли (това важи за всички платформи).

Размерът на клъстера (броят worker-ы)
Обща информация
за започване на начисляване от 10 цента на час за работа на всеки клъстер в GKE ме подтикна да анализирам цените на основните предложения в областта на управляемия (managed) Kubernetes.

Това съобщение много разочарова някои…
Главните герои на статията са:
- Google Kubernetes Engine (GCP) – ;
- Elastic Kubernetes Service (AWS) – ;
- Azure Kubernetes Service (Azure) – ;
- Kubernetes on Digital Ocean – .
Разбивка на разходите
Общите разходи за използване на Kubernetes във всяка от тези платформи се състоят от следните компоненти:
- Такса за управление на клъстера;
- Балансировка на натоварването (за Ingress);
- Изчислителни ресурси (vCPU и памет) на worker-ите;
- Egress трафик;
- Постоянно хранилище;
- Обработка на данни от балансировача на натоварването.
Освен това, облачните доставчици предлагат значителни намаления, ако клиентът желае/може да използва вытесняеми (preemptible), или нископриоритетни (low-priority) узли ИЛИ се ангажира да използва едни и същи узли за период от 1-3 години.
Следва да се подчертае, че, макар цената да е добра основа за сравнение и оценка на доставчиците на услуги, трябва да се вземат предвид и други фактори:
- Управляемост на услугата (Service Level Agreement);
- Обединяваща облачна екосистема;
- Налични версии на K8s;
- Качество на документацията/инструментите.
Все пак, тези фактори излизат извън рамките на настоящата статия/изследване. В подробно се разглеждат неценовите фактори за EKS, AKS и GKE.
Jupyter Notebook
За да опростя търсенето на най-изгодното решение, разработих , използвайки plotly + ipywidgets. Той позволява да се сравняват предложенията на доставчиците за различни размери на клъстери и набори от услуги.
Можете да се запознаете с активната версия на бележника в Binder:
Уведомете ме, ако изчисленията или изходните цени са погрешни (можете да го направите чрез 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.
В статията , публикувана през 2018 г., беше използван еталонен клъстер с 100 ядра vCPU и 400 ГБ памет. За сравнение, според моите изчисления, подобен клъстер на всяка от тези платформи (за on-demand инстанции) ще струва следната сума:
- AKS: 51465 USD/година
- EKS: 43138 USD/година
- GKE: 30870 USD/година
- DO: 36131 USD/година
Надявам се, статията заедно с бележника ще ви помогнат да оцените основните предложения на managed Kubernetes и/или да спестите от облачната инфраструктура, като се възползвате от отстъпки и други възможности.
P.S. от преводача
Прочетете също в нашия блог:
- «»;
- «»;
- «»;
- «».
Източник: habr.com
