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).
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.
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:
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.