Параўнанне кошту на Managed Kubernetes (2020)

Заўв. перав.: Амерыканскі DevOps-інжынер Sid Palas, карыстаючыся нядаўнім анонсам Google Cloud як інфападставай, правёў параўнанне кошту паслугі Managed Kubernetes (у розных канфігурацыях) ад вядучых сусветных хмарных правайдэраў. Дадатковым плюсам яго працы стала публікацыя які адпавядае Jupyter Notebook, які дазваляе (пры наяўнасці мінімальных ведаў Python) падкарэктаваць вырабляныя разлікі пад свае патрэбы.

TL, д-р: 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

Каб спрасціць пошук самага выгаднага рашэння, я распрацаваў нататнік Jupyter, задзейнічаўшы ў ім 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 і/ці зэканоміць на хмарнай інфраструктуры, скарыстаўшыся зніжкамі і іншымі магчымасцямі.

PS ад перакладчыка

Чытайце таксама ў нашым блогу:

Крыніца: habr.com

Дадаць каментар