Сравнение на цените на 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 е по-висока, но определящият фактор при изчисленията е цената на компютърните ресурси (освен ако вашият клъстер не е източник на значителни количества изходящи данни).
  • Изборът на типовете машини в зависимост от нуждите на натоварването по процесор и памет ще помогне да се избегнат излишни разходи за неоползотворени ресурси.
  • Digital Ocean иска по-малко за vCPU и повече за памет в сравнение с другите платформи — това може да бъде определящ фактор за някои видове компютърни натоварвания.

* Забележка: в анализа се използват данни за компютърни възли от общо предназначение (general-purpose). Това са инстанции n1 GCP Compute Engine, m5 AWS ec2, виртуални машини D2v3 Azure и droplet-ите DO с отделени CPU. Освен това, може да се проведат изследвания и сред други типове виртуални машини (burstable, entry-level). На пръв поглед, цената на виртуалните машини линейно зависи от броя на vCPU и обема на паметта, но не съм сигурен, че това предположение ще остане валидно за силно нестандартни съотношения памет/CPU.

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

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

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

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

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

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

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