Porównanie kosztów zarządzanego Kubernetes (2020)

Notatka. przeł.: Amerykański inżynier DevOps Sid Palas, używający niedawne ogłoszenie Google Cloud W celach informacyjnych porównałem koszty usługi Managed Kubernetes (w różnych konfiguracjach) u wiodących na świecie dostawców usług chmurowych. Dodatkowym atutem jego pracy była publikacja odpowiedniego Jupyter Notebook, który pozwala (przy minimalnej znajomości Pythona) dostosować wykonywane obliczenia do własnych potrzeb.

TL; DR: Platformy Azure i Digital Ocean nie pobierają opłat za zasoby obliczeniowe wykorzystywane w płaszczyźnie sterowania, co czyni je dobrym wyborem w przypadku wdrażania wielu małych klastrów. Do obsługi niewielkiej liczby dużych klastrów najlepiej nadaje się GKE. Dodatkowo można znacząco obniżyć koszty wykorzystując węzły typu spot/wywłaszczającego/o niskim priorytecie lub „subskrybując” długoterminowe korzystanie z tych samych węzłów (dotyczy to wszystkich platform).

Porównanie kosztów zarządzanego Kubernetes (2020)
Rozmiar klastra (liczba pracowników)

Ogólne infomracje

Najnowsze ogłoszenie Google Cloud Ogłoszenie firmy GKE o rozpoczęciu pobierania opłat w wysokości 10 centów za godzinę klastra za każdą godzinę klastra skłoniło mnie do rozpoczęcia analizy cen głównych ofert zarządzanych rozwiązań Kubernetes.

Porównanie kosztów zarządzanego Kubernetes (2020)
Ta wiadomość bardzo zdenerwowała niektórych...

Głównymi bohaterami artykułu są:

Zestawienie kosztów

Całkowity koszt korzystania z Kubernetes na każdej z tych platform składa się z następujących elementów:

  • Opłata za zarządzanie klastrem;
  • Równoważenie obciążenia (dla Ingress);
  • Zasoby obliczeniowe (vCPU i pamięć) pracowników;
  • Ruch wyjściowy;
  • Stałe składowanie;
  • Przetwarzanie danych przez moduł równoważenia obciążenia.

Dodatkowo dostawcy usług w chmurze oferują znaczne rabaty, jeśli klient chce/może skorzystać z opcji z wywłaszczaniem miejsce lub węzły o niskim priorytecie LUB zobowiązuje się do korzystania z tych samych węzłów przez 1-3 lata.

Warto podkreślić, że choć koszt jest dobrą podstawą do porównywania i oceny usługodawców, to należy wziąć pod uwagę inne czynniki:

  • Czas pracy (umowa dotycząca poziomu usług);
  • Otaczający ekosystem chmur;
  • Dostępne wersje K8s;
  • Jakość dokumentacji/zestawu narzędzi.

Czynniki te wykraczają jednak poza zakres tego artykułu/badania. W Lutowy post na blogu StackRox Szczegółowo omówiono czynniki pozacenowe dla EKS, AKS i GKE.

Notatnik Jupytera

Aby ułatwić znalezienie najbardziej opłacalnego rozwiązania, opracowałem Notatnik Jupytera, używając w nim plotly + ipywidgets. Umożliwia porównanie ofert dostawców dla różnych rozmiarów klastrów i zestawów usług.

Możesz ćwiczyć z aktywną wersją notatnika w Binderze:

Porównanie kosztów zarządzanego Kubernetes (2020)
zarządzane-kubernetes-price-exploration.ipynb na mybinder.org

Daj mi znać, jeśli obliczenia lub pierwotna cena są nieprawidłowe (można to zrobić poprzez zgłoszenie problemu lub żądanie ściągnięcia w GitHub — tutaj jest repozytorium).

odkrycia

Niestety, niuansów jest zbyt wiele, aby podać bardziej szczegółowe zalecenia niż te zawarte w akapicie TL;DR na samym początku. Jednak nadal można wyciągnąć pewne wnioski:

  • W przeciwieństwie do GKE i EKS, AKS i Digital Ocean nie pobierają opłat za zasoby warstwy kontrolnej. AKS i DO są bardziej opłacalne, jeśli architektura obejmuje wiele małych klastrów (na przykład jeden klaster na każdy). każdego dewelopera lub każdego klienta).
  • Nieco tańsze zasoby obliczeniowe GKE sprawiają, że jest ono bardziej opłacalne w miarę wzrostu rozmiarów klastrów*.
  • Korzystanie z węzłów z możliwością wywłaszczania lub długoterminowego powinowactwa węzłów może obniżyć koszty o ponad 50%. Uwaga: Digital Ocean nie oferuje tych zniżek.
  • Opłaty wychodzące Google są wyższe, ale koszt zasobów obliczeniowych jest czynnikiem decydującym w obliczeniach (chyba że Twój klaster generuje znaczną ilość danych wychodzących).
  • Wybór typów maszyn w oparciu o wymagania dotyczące procesora i pamięci dla obciążeń pomoże Ci uniknąć dodatkowych opłat za niewykorzystane zasoby.
  • Digital Ocean pobiera mniej opłat za vCPU i więcej za pamięć w porównaniu z innymi platformami – może to być decydujący czynnik w przypadku niektórych typów obciążeń obliczeniowych.

*Uwaga: Analiza wykorzystuje dane dotyczące węzłów obliczeniowych ogólnego przeznaczenia (ogólny cel). Są to instancje n1 GCP Compute Engine, instancje m5 AWS ec2, maszyny wirtualne Azure D2v3 i kropelki DO z dedykowanymi procesorami. Z kolei możliwe jest prowadzenie badań wśród innych typów maszyn wirtualnych (burstable, basic). Na pierwszy rzut oka koszt maszyn wirtualnych zależy liniowo od liczby vCPU i ilości pamięci, ale nie jestem pewien, czy to założenie sprawdzi się w przypadku bardzo niestandardowych proporcji pamięć/CPU.

Artykuł Przewodnik po kosztach Kubernetesa: AWS vs GCP vs Azure vs Digital Ocean, opublikowany w 2018 r., wykorzystywał klaster referencyjny ze 100 rdzeniami vCPU i 400 GB pamięci. Dla porównania, według moich wyliczeń, podobny klaster na każdej z tych platform (dla instancji on-demand) będzie kosztował następującą kwotę:

  • AKS: 51465 USD/rok
  • EKS: 43138 USD/rok
  • GKE: 30870 USD/rok
  • DO: 36131 USD/rok

Mam nadzieję, że ten artykuł wraz z notatnikiem pomoże Ci ocenić główne oferty zarządzanych rozwiązań Kubernetes i/lub zaoszczędzić pieniądze na infrastrukturze chmurowej, korzystając ze zniżek i innych możliwości.

PS od tłumacza

Przeczytaj także na naszym blogu:

Źródło: www.habr.com

Dodaj komentarz