Szacowanie rozmiaru klastra — węzły

Ukończone

Teraz musisz określić, jakiego rodzaju węzły maszyny wirtualnej są potrzebne i ile węzłów należy uruchomić.

Jakiego rozmiaru potrzebujesz maszyn wirtualnych?

W usłudze Azure Kubernetes Service (AKS) każdy węzeł w klastrze jest maszyną wirtualną platformy Azure. Maszyny wirtualne są dostępne w różnych specyfikacjach, aby ułatwić obsługę wymagań różnych typów aplikacji. Niektóre aplikacje mogą potrzebować większej mocy obliczeniowej lub pamięci lub szybszego miejsca do magazynowania. Musisz wybrać kategorię maszyny wirtualnej i wystąpienie spełniające potrzeby aplikacji.

Chcesz upewnić się, że typ ma wystarczającą ilość pamięci i mocy obliczeniowej dla aplikacji. Należy pamiętać, że nie wszystkie moce pamięci i przetwarzania są dostępne dla aplikacji. Niektóre z tych możliwości są potrzebne dla systemu operacyjnego i składników systemu Kubernetes. Usługa AKS automatycznie rezerwuje pewną ilość pamięci i mocy obliczeniowej, aby zapewnić, że te krytyczne składniki systemu mogą działać zgodnie z potrzebami.

Domyślnym typem maszyny wirtualnej wdrożonej w ramach klastra usługi AKS jest maszyna wirtualna ogólnego przeznaczenia D2 w wersji 3, dwurdzeniowa maszyna wirtualna z 8 gigabajtami pamięci. Usługa AKS rezerwuje 100 milisekund procesora i 3,55 GiB pamięci, pozostawiając 1900 milicores (1,9 rdzeni) i 5,45Gi wolnej pamięci dla aplikacji.

Napiwek

Ilość zarezerwowanego procesora i pamięci zależy od wybranego typu maszyny wirtualnej. Ta kwota staje się proporcjonalnie mniejsza w miarę wzrostu rozmiaru maszyny wirtualnej.

Innym zagadnieniem jest zasoby osierocone. Załóżmy, że wdrażasz trzy aplikacje w węźle D2 w wersji 3. Każda z tych aplikacji wymaga 600 milisekund procesora i 500Mi pamięci. Po wdrożeniu tych aplikacji pozostaje 100 milisekund procesora i około 2,05 GiB nieużywanej pamięci. W przypadku wdrożenia czwartego wystąpienia aplikacji należy wysłać go do nowego węzła, ponieważ pozostałe 100 milisekund nie są wystarczające. Jednak pozostawia to 2 GiB pamięci w węźle, którego nie można użyć. Ten zasób pamięci jest określany jako osierocony.

Idealny wybór maszyny wirtualnej to taki, który ma wystarczającą pojemność do uruchamiania obciążeń bez opuszczania zasobów osieroconych. Jeśli obciążenia są skalowane dynamicznie w górę i w dół, potrzebujesz wystarczającej ilości zasobów, aby obejmowały typowe scenariusze użycia, ale elastyczność skalowania w górę w razie potrzeby.

Ile węzłów potrzebujesz?

Aplikacja powinna być zawsze dostępna i może obsługiwać awarie węzłów bazowych. Odporność można zapewnić wielu replikom aplikacji rozmieszczonych w wielu węzłach.

Usługa AKS ma pule węzłów, które są grupami maszyn wirtualnych tego samego typu. Można mieć wiele pul węzłów. Można na przykład mieć pulę węzłów zawierającą maszyny wirtualne ogólnego przeznaczenia, pulę węzłów z maszynami wirtualnymi zoptymalizowanymi pod kątem pamięci oraz pulę węzłów z maszynami wirtualnymi wyposażonymi w procesor GPU. Następnie możesz użyć natywnej funkcji planowania kubernetes, aby upewnić się, że obciążenia są wdrażane w odpowiedniej puli węzłów i typie maszyny wirtualnej.

Pule węzłów mogą obsługiwać jeden z dwóch trybów: System lub Użytkownik. Pule węzłów systemu uruchamiają krytyczne zasobniki systemowe, które są niezbędne do działania klastra Kubernetes, w tym usług, takich jak sterowniki magazynu, system DNS lub serwery metryk. Pule węzłów użytkownika uruchamiają aplikacje.

W konfiguracji domyślnej klaster usługi AKS zawiera jedną pulę węzłów systemu, która służy do uruchamiania wszystkich elementów. Jeśli chcesz, możesz dodać dodatkowe pule węzłów systemu lub użytkownika i skonfigurować zasobniki aplikacji do uruchamiania wyłącznie w pulach węzłów użytkownika. Krytyczne zasobniki systemowe działają tylko w pulach węzłów systemowych. Korzystanie z pul węzłów systemowych i użytkownika może uniemożliwić niepoprawnie skonfigurowanym aplikacjom wpływ na działanie krytycznych usług systemowych i potencjalnie spowodować niepowodzenie klastra.

Platforma Kubernetes może również dodawać lub usuwać węzły w razie potrzeby. Jeśli planujesz używać tej funkcji, musisz zdefiniować górny limit maksymalnej liczby węzłów, do których platforma Kubernetes może skalować w górę. Następnie zaplanuj projekt sieci wokół tej maksymalnej liczby. Należy pamiętać, że musisz uwzględnić co najmniej jeden dodatkowy węzeł na klaster, aby umożliwić prawidłowe uruchomienie procesu aktualizacji.

Napiwek

Liczbę węzłów zaktualizowanych w danym momencie można skonfigurować przy użyciu jednej wartości domyślnej. Uaktualnienie więcej niż jednego węzła w danym momencie może skrócić całkowity czas potrzebny na uaktualnienie klastra. Musisz uwzględnić dodatkowe węzły w ramach planowania.

Ile węzłów należy uruchomić?

Aby określić liczbę węzłów do uruchomienia, należy zrozumieć wymagania dotyczące procesora i pamięci aplikacji. Zespół programistyczny dostarczył Ci wyniki testów wydajnościowych ze szczegółowymi informacjami na temat ilości procesora i pamięci potrzebnej usług. Wyniki obejmują wymagania bazowe wraz z maksymalnymi kwotami dla bardziej ruchliwych okresów:

Usługa Minimalna/maksymalna liczba procesorów Minimalna/maksymalna liczba pamięci
Fronton witryny internetowej 250 m/ 1000 m 250 Mi / 1 Gi
Interfejs API tożsamości 100 m/ 500 m 250 Mi / 500 Mi
Interfejs API wykazu 500 m – 1000 m 1 Gi / 1 Gi
Interfejs API zamówień 100 m – 1000 m 100 Mi / 1 Gi
Pomocnik zamówień 100 m – 1000 m 100 Mi / 1 Gi
Interfejs API koszyka 100 m – 1000 m 500 Mi / 500 Mi
Interfejs API marketingu 250 m - 750 m 500 Mi / 1 Gi
Interfejs API lokalizacji 100 m – 500 m 100 Mi / 500 Mi

Napiwek

  • Platforma Kubernetes mierzy użycie procesora w milisekundach lub tysiącach rdzenia. W związku z tym 100 m odpowiada dziesiątej części rdzenia, a 1000 m odpowiada jednemu rdzeniu procesora.
  • Pamięć można mierzyć na wiele sposobów. Przykłady na wykresie wyników testów wydajnościowych korzystają z rozwiązań Mi i Gi, które są potęgą dwóch odpowiedników megabajtów i gigabajtów. 500Mi jest zwykle określane jako 500 Megabajtów, a 1Gi jest zwykle określane jako 1 Gigabajt.

Ustalanie rozmiaru węzłów

Określono minimalną liczbę replik, które każda usługa powinna uruchomić, oraz minimalną liczbę rdzeni procesora i pamięci wymaganej przez każdą usługę. To obliczenie daje liczbę 1,5 rdzeni i 2,8Gi pamięci jako punkt początkowy. Gdy aplikacja skaluje w górę do maksymalnej liczby replik i używa maksymalnej liczby rdzeni procesora i ilości pamięci, potrzebuje 53 rdzeni i 50 GB pamięci.

W tym scenariuszu obciążenia intensywnie korzystają z procesora CPU. Jeśli używasz domyślnej maszyny wirtualnej ogólnego przeznaczenia D2 w wersji 3, wymagana będzie duża ich liczba, aby spełnić wymagania dotyczące procesora obciążenia. Ta konfiguracja spowoduje dużą ilość nieużywanej pamięci na maszynach wirtualnych. Rozważmy typ maszyny wirtualnej przeznaczony dla obciążeń intensywnie korzystających z obliczeń. Na przykład coś z serii Fsv2 wymagałoby mniejszej liczby maszyn wirtualnych, aby spełnić wymagania procesora i mieć niższą ilość nieużywanej pamięci.

Typ maszyny wirtualnej F8s v2 ma 8 rdzeni i 16 GB pamięci. W przypadku rezerwacji zasobów usługi AKS masz 7820 milicores i 12,65Gi dla każdego węzła. W przypadku działania na maksymalną skalę do obsługi obciążeń potrzebne jest siedem maszyn wirtualnych.

Teraz musisz przyjrzeć się sieci.