You are on page 1of 21

VMware vSphere

with Tanzu

www.indevops.com

e-Book - VMware vSphere wit Tanzu 1


Spis treści
01 Historia powstania kontenerów ................................................03

02 Co nowego wnoszą kontenery do branży IT?........................06

03 O co chodzi z tym Kubernetesem?...........................................09

- Jak wdrożyć Kubernetesa?........................................................................11

04 Zalety użytkowania VMware vSphere with Tanzu ...............13

- Zarządzanie VMware vSphere with Tanzu..................................................15

- Zarządzanie klastrami Kubernetes przy użyciu VMware Tanzu.....................17

- VMware vSphere Pods.............................................................................18

- Usługa maszyn wirtualnych w VMware vSphere with Tanzu .......................19

2
01
Historia
powstania
kontenerów

e-Book - VMware vSphere wit Tanzu 3


Historia powstania kontenerów

K onteneryzacja to obok chmury obliczeniowej jedno z najpopularniej-


szych słów w branży IT ostatniego czasu. Nie jest to zaskakujące,
w końcu obie wskazane technologie znacznie wpływają na sposób,
w jaki obecnie wdrażamy aplikacje biznesowe oraz planujemy ich archi-
tektury. Aby w pełni zrozumieć, dlaczego konteneryzacja zdobyła po-
pularność i stała się standardem w tak szybkim czasie, warto spojrzeć
wstecz na historię i ewolucję podejścia do obsługi aplikacji, gdzie wyróż-
nić można trzy znaczące fazy.

Początkowo aplikacje były uruchamiane wprost na fizycznych maszy-


nach, które nie dawały możliwości podziału i alokacji fragmentów za-
sobów poszczególnym z nich. Jeśli na jednym serwerze było urucho-
mione wiele aplikacji jednocześnie, duże obciążenie jednej z nich, mogło
znacznie wpłynąć na wydajność pozostałych. Mogły również je całko-
wicie zagłodzić, poprzez zawłaszczenie procesora, czy pamięci opera-
cyjnej. Przykrym skutkiem tych problemów było uruchomienie każdej
aplikacji na oddzielnym, dedykowanym jej serwerze. W wyniku czego,
bardzo duża część cennych zasobów była marnowana, zwłaszcza przy
bardzo małych aplikacjach, które tylko okazjonalnie wymagały większej
ich ilości.

Motywacją do znalezienia lepszego rozwiązania były przede wszyst-


kim brak możliwości pełnego wykorzystania dostępnych zasobów oraz
zaburzenia wydajnościowe względem aplikacji dostępnych na jednym
serwerze. Wraz ze wzrostem prędkości procesorów oraz ciągłe zwięk-
szanie pojemności pamięci operacyjnej zaowocował nastąpieniem nie-
małej rewolucji, dzięki wprowadzeniu konceptu wirtualizacji. Pozwoliło to
w efekcie na podzielenie fizycznych zasobów komputerów na mniejsze
części, które można następnie przypisać nowym, mniejszym maszynom
działającym w obrębie pojedynczego komputera. Obiekty te zostały na-
zwane “wirtualnymi maszynami”. Ich wykorzystanie zniwelowało proble-
my wynikające z uruchamiania wielu aplikacji na pojedynczym serwerze,

4
Historia powstania kontenerów

pozwalając na efektywniejszą alokację zasobów. Ponieważ każda ma-


szyna wirtualna działa jako oddzielne środowisko z własnym systemem
operacyjnym, nie mając odgórnej wiedzy ani dostępu do pozostałych,
znacząco zwiększyło się także bezpieczeństwo.

To spowodowało, że w dużych firmach z sektora enterprise ilość wy-


korzystywanych i obsługiwanych aplikacji ciągle narastała. Wokół wir-
tualizacji pojawiły się dodatkowe narzędzia, wspomagające pracę ad-
ministratorów przy utrzymywaniu rozległych środowisk. Na szczególną
uwagę, zasługują tutaj „managery maszyn wirtualnych”, czyli oprogra-
mowanie do zarządzania maszynami wirtualnymi, często na wielu ser-
werach jednocześnie. Najbardziej funkcjonalne to VMware vSphere,
które pozwalają nawet na zarządzanie wieloma serwerami jako jedną
pulą zasobów, umożliwiając chociażby przenoszenie maszyn między
nimi bez ich wyłączania. Również zmianę alokacji zasobów w locie, nie
powodując niedostępności aplikacji.

Mimo swoich znaczących plusów idea wirtualizacji posiada również kil-


ka niedoskonałości. Najbardziej odczuwalną z nich jest fakt, że każda
z wirtualnych maszyn musi mieć uruchomiony własny, oddzielny sys-
tem operacyjny. W skali enterprise, gdzie takich maszyn są setki tysięcy,
masa zasobów jest w ten sposób źle zagospodarowana.

W celu optymalizacji wykorzystania zasobów pojawiły się kontenery


będące lżejszym odpowiednikiem wirtualizacji. Nie skupiają się one na
izolowaniu całych systemów operacyjnych, lecz jedynie pojedynczych
procesów oraz ich środowiska uruchomieniowego w obrębie jednego
systemu - gospodarza. Podobnie jak w przypadku maszyn wirtualnych,
można ograniczać zasoby przypisane do pojedynczej instancji, takie jak
czas procesora, pamięć operacyjna czy dostęp do poszczególnych sie-
ci. Ponadto kontenery mają własny system plików, do którego można
również montować ścieżki z systemu nadrzędnego.

e-Book - VMware vSphere wit Tanzu 5


02
Co nowego
wnoszą
kontenery
do branży IT?

6
Co nowego wnoszą kontenery do branży IT?

P ierwszą korzyścią, która została już wskazana wcześniej, jest


możliwość współdzielenia systemu operacyjnego gospodarza
na wiele procesów. Wiele z nich ma również szereg dodatkowych
usprawnień.

Kolejną zaletą jest fakt, że do uruchomienia kontenera jest potrzeb-


ny jedynie jego obraz. Odpowiada on działaniu obrazów maszyn
wirtualnych, często określanych jako szablony. Taki obraz, powstaje
jednak nie z istniejącego „kontenera”, lecz w procesie zwanym bu-
dowaniem. Wykonuje się go na podstawie pliku w specjalnym for-
macie (dla kontenerów uruchomionych na oprogramowaniu Docker
lub kompatybilnych, wykorzystuje się format „dockerfile”) oraz jego
„kontekstu”, którym domyślnie są pliki przechowywane w tym sa-
mym folderze. Plik definiujący obraz przypomina listę kroków, któ-
rymi może być uruchomienie komendy, skopiowanie pliku z kon-
tekstu, czy określenie komendy służącej do uruchomienia procesu
stanowiącego kontener. W trakcie uruchomienia takiego kontenera
zazwyczaj trafiają pliki stanowiące daną aplikację, wykorzystywane

# Określenie obrazu kontenera, który będzie rozszerzany


FROM node:16
# Zmiana folderu roboczego
WORKDIR /usr/src/app
# Kopiowanie plików aplikacji z kontekstu
COPY package.json package-lock.json ./
COPY src ./src
# Instalacja bibliotek
RUN npm ci --production
# Oznaczenie portu, na którym aplikacja nasłuchuje
EXPOSE 8080
# Konfiguracja komendy uruchamiającej kontener
CMD [ „node”, „src/index.js” ]

Przykładowy opis obrazu w formacie Dockerfile

e-Book - VMware vSphere wit Tanzu 7


Co nowego wnoszą kontenery do branży IT?

przez nie biblioteki i inne stałe części jej otoczenia.

Umożliwia to przechowywanie definicji obrazu kontenera wraz z ko-


dem aplikacji w tym samym repozytorium kodu, np. Git, a zbudo-
wany obraz może być artefaktem procesów continuous integration/
delivery. Programiści wytwarzający aplikację mogą samodzielnie
umieszczać w jej obrazie kontenera nowe, potrzebne zależności,
bez tworzenia narzutu pracy dla zespołu zajmującego się jej utrzy-
maniem.

Uruchomienie kontenera sprowadza się zatem do określenia jego


obrazu oraz dodatkowych ustawień, którymi mogą być zmienne
środowiskowe dla uruchamianego procesu lub ścieżki do zamonto-
wania z systemu plików gospodarza.

Zawarcie otoczenia aplikacji w obrazie kontenera pozwala na unie-


zależnienie jej od infrastruktury, na której będzie uruchamiana. Ten
sam obraz kontenera będzie działał w taki sam sposób na laptopie,
w chmurze czy na fizycznym serwerze - uruchomienie kontenera
wymaga jedynie instalacji zgodnego silnika konteneryzacji (np. Doc-
ker) na systemie operacyjnym gospodarza. Dzięki temu kontenery
są uważane za uniwersalne i niezależne od dostawcy infrastruktury.

8
03
O co chodzi
z tym
Kubernetesem?

e-Book - VMware vSphere wit Tanzu 9


O co chodzi z tym Kubernetesem?

P rzy większych wdrożeniach, nawet rzędu kilkunastu kontene-


rów, odpowiednia konfiguracja każdego z nich, stawała się cza-
sochłonna. Tak samo w przypadku optymalnej alokacji zasobów
dyskowych, czy odpowiedniego rozłożenia ich pomiędzy poszcze-
gólnymi serwerami z uwzględnieniem limitów wykorzystania proce-
sora/pamięci. Brakowało więc odpowiednika managera maszyn wir-
tualnych.

Powyższą potrzebę zaadresowało wiele różnych narzędzi, ale próbę


czasu przetrwał Kubernetes (dalej: K8s), który stał się branżowym
standardem. Jest to narzędzie typu PaaS (Platform as a Service)
umożliwiające uruchamianie i zarządzanie kontenerami na wielu
węzłach według zadanych konfiguracji. Konfiguracja K8s jest dekla-
ratywna, a nie imperatywna. Co w praktyce oznacza, że operator
określa, jaki powinien być efekt końcowy, a nie w jaki sposób chce
go osiągnąć. W trakcie swojego działania mechanizmy K8s starają
się ciągle zapewnić, by stan rzeczywisty odpowiadał zadanym przez
użytkownika konfiguracjom. Aby tego dokonać kontenery są odpo-
wiednio powoływane oraz zarządzane na kontrolowanych przez K8s
maszynach. Na podstawie deklarowanych limitów czasu procesora
oraz pamięci kontenery są możliwie optymalnie rozkładane pomię-
dzy węzłami. W razie ich awarii zostaną uruchomione ponownie na
innych węzłach.

K8s składa się z modułów zapewniających dodatkowe funkcje zwią-


zane z obsługą kontenerów. Dzięki temu programiści mogą prak-
tycznie dowolnie rozszerzać jego możliwości o obsługę np. nie-
wspieranych domyślnie load balancerów (wykorzystywanych do
rozkładania ruchu do poszczególnych kontenerów danej aplikacji),
czy dostawców zasobów dyskowych. Często korzystają z tego do-
stawcy chmur integrując go z pozostałymi swoimi usługami/rozwią-
zaniami.

10
O co chodzi z tym Kubernetesem?

K8s posiada również mechanizmy wspierające aktualizację urucho-


mionych aplikacji poprzez zmianę obrazu kontenera. W przypadku,
gdy uruchomionych jest wiele instancji, obraz jest podmieniany po-
jedynczo na każdej z nich dopiero, gdy ostatnia podmiana zakończy
się sukcesem - jest to tzw. „rolling update”.
Nie brakuje również mechanizmów do przechowywania konfigu-
racji oraz sekretów (czyli np. tokenów, haseł, kluczy prywatnych),
które następnie mogą zostać przekazane do kontenerów w postaci
zmiennych środowiskowych.
Dzięki deklaratywności oraz sposobowi definicji konfiguracje K8s są
w znaczącej części uniwersalne i mogą być uruchamiane pomiędzy
różnymi dostawcami z minimalną liczbą zmian, które mogą wynikać
z braku kompatybilności dostarczanych przez dostawcę modułów.
Istnieją jednak dodatkowe narzędzia (np. Helm), które pozwalają na
generowanie konfiguracji na podstawie zadanych parametrów, po-
zwalając na ich pełną kompleksowość.

Jak wdrożyć Kubernetesa?

P omimo że K8s sam w sobie nie narzuca specjalnych ograniczeń


na system gospodarza, istnieje możliwość jego wdrożenia, za-
równo na fizycznych jak i wirtualnych maszynach, a w związku z tym
również w chmurze. Przygotowanie oraz utrzymanie takiego klastra
jest jednak bardzo czasochłonnym i skomplikowanym procesem.

Każde produkcyjne wdrożenie wymaga przygotowania serii odpo-


wiednio spreparowanych wirtualnych maszyn dla węzłów typu „ma-
ster” oraz „worker”. Węzły typu „master” wspólnie tworzą usługę
control plane, która zarządza klastrem. Przechowuje jego docelowy
stan oraz decyduje o wprowadzeniu zmian, by ten stan osiągnąć.
Z kolei węzły typu „worker” tworzą środowisko do uruchamiania
kontenerów obsługiwanych przez klaster.

e-Book - VMware vSphere wit Tanzu 11


O co chodzi z tym Kubernetesem?

Dodatkowo potrzebujemy wybrać, zainstalować oraz skonfigurować


dodatkowe moduły, których brakuje domyślnie w K8s - między inny-
mi do obsługi load balancingu kontenerów stanowiących aplikacje,
czy zasobów dyskowych.

Tak wdrożony klaster wymaga również utrzymania. W trakcie jego


życia może pojawić się potrzeba zwiększenia ilości węzłów typu
„worker”, wymagając ich stosownego przygotowania - zależnie od
zastosowanych modułów to zadanie może się okazać czasochłon-
ne. Kolejną kwestią jest aktualizacja takiego klastra, którą trzeba
przeprowadzić na każdym z węzłów oddzielnie.

Zarządzanie dostępem do klastra, również nie należy do najprost-


szych, ponieważ domyślnie wymaga zastosowania infrastruktu-
ry klucza publicznego. Administratorzy muszą ręcznie generować
i dystrybuować certyfikaty poświadczające dostęp oraz uprawnie-
nia i utrzymywać stosowne role użytkowników. Należy pamiętać
również o dostępach i bezpieczeństwie maszyn stanowiących wę-
zły klastra.

Interakcje z takim klastrem K8s odbywają się za pomocą wiersza linii


komend. Wymaga to od administratora dużej znajomości narzędzi -
wiele informacji jest ukrytych za złożonymi poleceniami. Wszystkie
te czynniki powodują, że zarządzanie klastrami K8s w dużych śro-
dowiskach, zwłaszcza na skalę rynku enterprise jest nieopłacalne
bez dodatkowego narzędzia pozwalającego na zautomatyzowanie
tych procesów.

12
04
Zalety
użytkowania
VMware vSphere
with Tanzu

e-Book - VMware vSphere wit Tanzu 13


Zalety użytkowania VMware vSphere with
Tanzu

VMware vSphere with Tanzu jest rozszerzeniem oprogramowania


VMware vSphere wprowadzającym klastry Kubernetesa oraz me-
chanizmy usprawniające zarządzanie nimi do istniejącej infrastruk-
tury.

Uruchomienie tego rozszerzenia skutkuje automatycznym wdroże-


niem nadrzędnego control plane K8s o nazwie „supervisor cluster”
na poziomie klastra vSphere. W panelu administracyjnym pojawiają
się nowe elementy o nazwie „namespace”, które odpowiadają obiek-
tom K8s o takiej samej nazwie.

Administrator może tworzyć nowe namespace’y, aby kreować w ten


sposób odrębne środowiska - na tym poziomie konfiguruje się m. in.
uprawnienia użytkowników, limity zasobów, czy dostępne szablo-
ny i rozmiary maszyn wirtualnych. W obrębie takiego namespace’u
mogą być uruchamiane: klastry K8s, vSphere Pods - czyli kontenery
uruchamiane wewnątrz tymczasowych, lekkich maszyn wirtualnych,
jak i same maszyny wirtualne.

Obiekt „Namespaces” zawierający maszyny wirtualne stanowiące


usługę control plane „supervisor cluster” oraz przykładowy name-
space o nazwie „demo-app-01”

14
Zalety użytkowania VMware vSphere with
Tanzu

VMware vSphere namespace w panelu administracyjnym vSphere

Zarządzanie VMware vSphere with Tanzu


Za pomocą panelu administracyjnego VMware vSphere administra-
torzy mogą tworzyć oraz zarządzać vSphere namespace’ami. Konfi-
guracja namespace pozwala na:
• nadanie uprawnień odczytu i edycji dla użytkowników vSphere,
• określenie polityk przechowywania w magazynach danych,
• zdefiniowanie limitów czasu procesora, zajętej pamięci oraz prze-
strzeni dyskowej,
• określenie content library z obrazami maszyn wirtualnych.

Wszystkie ustawienia na poziomie namespace są dziedziczone


przez obiekty, które się w nich znajdują. To pozwala administra-
torom vSphere na przygotowanie infrastruktury dla użytkowników
końcowych tej usługi.

e-Book - VMware vSphere wit Tanzu 15


Zalety użytkowania VMware vSphere with
Tanzu

Do zarządzania obiektami w obrębie vSphere namespace wykorzy-


stuje się narzędzie, które normalnie służy do zarządzania klastrami
K8s - „kubectl”. Jest to narzędzie wiersza poleceń dostępne zarów-
no na systemy operacyjne: Windows jak i Linux. Aby wykorzystywać
je z VMware vSphere with Tanzu wymagana jest instalacja wtyczki,
która umożliwia uwierzytelnianie użytkowników za pośrednictwem
kont vSphere. Tworzenie klastrów Kubernetes, vSphere Podów oraz
maszyn wirtualnych odbywa się poprzez definicję manifestów w taki
sam sposób, jak przy innych obiektach dostępnych w K8s.

Wykorzystanie tego samego narzędzia w obu przypadkach znacznie


upraszcza administrację takimi klastrami inżynierom oprogramowa-
nia oraz administratorom K8s. Są oni zazwyczaj bardzo dobrze z nim
obeznani oraz mogą wykorzystywać inne procesy, które już wspie-
rają kubectl - np. continuous deployment.kowników, limity zasobów,
czy dostępne szablony i rozmiary maszyn wirtualnych. W obrębie
takiego namespace’u mogą być uruchamiane: klastry K8s, vSphere
Pods - czyli kontenery uruchamiane wewnątrz tymczasowych, lek-
kich maszyn wirtualnych, jak i same maszyny wirtualne.

16
Zalety użytkowania VMware vSphere with
Tanzu

Zarządzanie klastrami Kubernetes przy uży-


ciu VMware Tanzu
VMware Tanzu Kubernetes Cluster to klaster K8s uruchomiony na
infrastrukturze vSphere i zarządzany przez VMware vSphere with
Tanzu. Jest w pełni kompatybilny z otwarto-źródłową wersją K8s,
zawiera jednak dodatkowe, preinstalowane moduły odpowiadające
za integrację z zasobami dyskowymi, sieciowymi oraz uwierzytel-
nieniem klastra vSphere.

Wdrożenie takiego klastra sprowadza się więc do przygotowania


i zaaplikowania przy użyciu kubectl manifestu zawierającego m. in.
nazwę, namespace, żądaną liczbę oraz klasę węzłów „master”/„wor-
ker”, wersję K8s oraz polityki przechowywania na dyskach.

apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TanzuKubernetesCluster
metadata:
name: demo-cluster-01
namespace: demo-app-01
spec:
distribution:
version: v1.20.7
topology:
controlPlane:
count: 3
class: best-effort-xsmall
storageClass: kubernetes-default
workers:
count: 4
class: best-effort-xsmall
storageClass: kubernetes-default

Manifest WMware Tanzu Kubernetes Cluster z 3 węzłami „master”


oraz 4 „worker”.

e-Book - VMware vSphere wit Tanzu 17


Zalety użytkowania VMware vSphere with
Tanzu

VMware Tanzu Kubernetes Cluster z 3 węzłami „master” oraz 4


„worker” widoczny w panelu administracyjnym vSphere.

Zmiana parametrów klastra, np. ilości węzłów „worker” lub wersji


K8s wymaga jedynie modyfikacji istniejącego manifestu i jego po-
nowne zastosowanie.

VMware vSphere Pods


W K8s istnieje obiekt o nazwie Pod, który reprezentuje grupę zawie-
rającą minimum jeden kontener. Wszystkie kontenery w grupie dzie-
lą zasoby dyskowe oraz sieciowe i są uruchamiane zawsze w obrę-
bie jednego węzła i w tym samym czasie.

W VMware vSphere with Tanzu istnieje odpowiednik Pod’ów, który


nazwano vSphere Pod. Umożliwia on tworzenie Podó’w wprost we-
wnątrz vSphere namespace (w przeciwieństwie do ich uruchamia-
nia na instancjach Tanzu Kubernes Cluster). Do uruchomienia takie-
go Pod’a jest tworzona nowa, „lekka” maszyna wirtualna z zasobami

18
Zalety użytkowania VMware vSphere with
Tanzu

odpowiadającymi limitom znajdującym się w manifeście.

W K8s na jednym węźle „worker” może być uruchomionych wiele


Pod’ów jednocześnie. Przy aplikacjach i modułach, które wymagają
podniesionych uprawnień (dostęp do modułów jądra lub urządzeń
gospodarza), mogą występować niepożądane oddziaływania mię-
dzy nimi. Dlatego uruchamianie Podów w oddzielnych wirtualnych
maszynach zapewnia większą izolację i bezpieczeństwo. Ponosimy
jednak koszt w postaci zasobów wykorzystywanych przez systemy
operacyjne tych maszyn.

Ze względu na to, że vSphere Pods są w rzeczywistości maszynami


wirtualnymi są one obsługiwane przez mechanizm DRS (Distribu-
ted Resource Scheduler), który zapewnia równomierne obciążenie
hostów ESXi poprzez ich migrację w obrębie klastra vSphere. To
umożliwia balansowanie na poziomie pod’ów, a nie całych węzłów
K8s.

Usługa maszyn wirtualnych w VMware


vSphere with Tanzu
VMware vSphere with Tanzu pozwala również na umieszczanie ma-
szyn wirtualnych w obrębie vSphere namespace. Takie maszyny,
analogicznie do innych obiektów VMware Tanzu dziedziczą upraw-
nienia, limity zasobów, dostępne klasy i obrazy maszyn oraz pozo-
stałe ustawienia z vSphere namespace.

Dzięki takiemu podejściu administratorzy K8s mogą tworzyć dodat-


kowe maszyny wirtualne w tym samym środowisku i przy użyciu tego
samego narzędzia, co vSphere Pods czy Vmware Tanzu Kubernetes

e-Book - VMware vSphere wit Tanzu 19


Zalety użytkowania VMware vSphere with
Tanzu

Cluster - czyli kubectl. Definicja maszyn odbywa się zatem, poprzez


przygotowanie stosownego manifestu w formacie YAML i jego za-
stosowanie.

apiVersion: vmoperator.vmware.com/v1alpha1
kind: VirtualMachine
metadata:
name: demo-vm-01
labels:
selector: ubuntu
spec:
className: best-effort-small
imageName: ubuntu-20-1621373774638
powerState: poweredOn
storageClass: kubernetes-default

Przykładowy manifest definiujący maszynę wirtualną

Przykładowa maszyna wirtualna w vSphere Namespace

Korzyścią tworzenia maszyn wirtualnych w ten sposób jest także


fakt, że odbywa się to w sposób deklaratywny, a więc użytkownik
określa jakiej maszyny wirtualnej potrzebuje zamiast ją konfiguro-
wać.

20
Dziękujemy
za uwagę!
Powyższy e-book przygotowaliśmy,
aby w pełni i w jasny sposób przekazać
korzyści z wykorzystywania kontenerów
i maszyn wirtualnych w branży IT.

Zainteresował Cię nasz e-book i jesteś głodny


poszerzania swojej wiedzy?

Świetnie, czekamy na Twój kontakt!


biuro@indevops.com lub tel: +48 22 100 44 68

www.indevops.com

e-Book - VMware vSphere wit Tanzu 21

You might also like