Konteneryzacja to pojęcie coraz częściej występujące w kontekście infrastruktury IT. Jednym z czołowych rozwiązań jest Kubernetes – oprogramowanie open source do zarządzania kontenerami. Co to konkretnie jest Kubernetes i jak działa?

Kubernetes wykorzystywany jest w 45% środowisk kontenerowych i niesamowicie rośnie dzięki implementacji go w chmurze Microsoftu, za co odpowiada usługa Azure Kubernetes Services. Oprogramowanie nieustannie się rozwija, oferując naprawę błędów, nowe funkcje i lepszą optymalizację. Jak konkretnie działa Kubernetes oraz czy warto wykorzystać go w swojej infrastrukturze?

fot. Praqma

 

Co to Kubernetes?

Warto zacząć od wytłumaczenia, czym tak naprawdę jest konteneryzacja. Posłużyć się można dość prostym przykładem. Wyobraźmy sobie regał z dużymi pudełkami. W nich są inne, mniejsze pudełka z określoną zawartością. Chcemy jedno z mniejszych pudełek przenieść w inne miejsce. Możemy zatem przenieść cały regał, ale nie będzie to zbyt wygodne. Możemy również przenieść duże pudełko, ale dlaczego to robić, kiedy możemy po prostu wyciągnąć małe pudełeczko i przenieść tylko je, nie naruszając reszty struktury?

W tym przykładzie naszym regałem był cały serwer, dużym pudełkiem maszyna wirtualna, a małym pudełkiem – kontener z aplikacją. Konteneryzacja pozwala zatem na łatwiejsze przenoszenie, szybkie uruchamianie i testowanie konkretnych aplikacji bez dużej ingerencji w całą infrastrukturę.

W skrócie, konteneryzacja to proces implementacji aplikacji w tzw. kontenerze, czyli ściśle wydzielonym obszarze np. na maszynie wirtualnej. Kontenery możemy dowolnie skalować oraz łatwo przenosić. Proste, szybkie, wygodne i schludne.

Kubernetes to z kolei specjalne oprogramowanie, pozwalające nam na łatwe wdrażanie, konfigurację oraz zarządzanie całą platformą kontenerów w naszej infrastrukturze. W tym celu tworzymy specjalne klastry, w których grupować możemy dostępne kontenery. Kubernetes idealnie sprawdza się zatem do obsługi aplikacji ulokowanych w chmurze.

Możemy więc powiedzieć w nawiązaniu do naszego przykładu, że Kubernetes to potężny magazyn, w którym możemy umieścić mnóstwo regałów z pudełkami, a dostępne narzędzia pozwalają na zautomatyzowanie jego obsługi.

 

Jak działa Kubernetes?

Kubernetes to przepotężne narzędzie, które pozwala spojrzeć nieco inaczej na proces wdrażania i zarządzania aplikacjami. W skali makro, pozwala on z wielu maszyn wirtualnych tworzyć klastry, w których umieszcza się kontenery. Podział na maszyny wirtualne przestaje mieć znaczenie, gdyż nawet posiadając wiele takich VM-ek, możemy je wszystkie błyskawicznie spiąć w klaster i korzystać z nich jak z pojedynczej platformy.

 

 

Kubernetes organizuje owe klastry i automatycznie planuje uruchamianie kontenerów na poszczególnych maszynach wirtualnych. Oprogramowanie wybiera maszyny na podstawie wymaganej mocy obliczeniowej aplikacji oraz tej dostępnej na danej VM-ce. Utworzone kontenery grupowane są w tzw. zasobniki, które można łatwo skalować.

Oprócz automatycznego wdrażania kontenerów, Kubernetes zarządza usługami, a także równoważy obciążenie oraz śledzi alokację zasobów w celu ograniczenia kosztów całej platformy. Automatyzuje również proces optymalizacji oraz aktualizacji aplikacji w zasobnikach.

 

Kubernetes – zalety

Najważniejszą korzyścią ze stosowania Kubernetes jest ogromne ułatwienie zarządzania infrastrukturą. Samodzielne zarządzanie kontenerami to dość trudny proces, zwłaszcza, kiedy mówimy o dziesiątkach, a nawet setkach aplikacji. Dzięki Kubernetesowi posiadasz pełną kontrolę nad całą platformą.

Oprócz ułatwienia zarządzania, kolejną ważną rzeczą jest automatyzacja. Kubernetes wykonać może za nas mnóstwo operacji, od optymalizacji całej platformy, przez szybkie aktualizacje aplikacji, po wdrażanie nowych i rozbudowę obecnych kontenerów.

Kolejną zaletą jest łatwość przenoszenia kontenerów. Każda aplikacja kontenerowa po uruchomieniu na platformie Kubernetes staje się automatycznie aplikacją przenośną. To z kolei umożliwia błyskawiczne przenoszenie kontenerów z maszyn lokalnych do tych w chmurze bez jakiegokolwiek naruszania spójności między środowiskami.

Podobnie jak w innych usługach chmurowych, Kubernetes również pozwala na łatwe skalowanie. Oprogramowanie nie tylko automatycznie wdroży kontenery, ale również przeskaluje je do odpowiedniej wielkości, aby zużywały tylko tyle zasobów, ile realnie potrzebują.

 

Azure Kubernetes Service

Na platformie Azure istnieje usługa Azure Kubernetes Service (AKS). Pozwala ona wykorzystać oprogramowanie Kubernetes w chmurze od Microsoft, a dodatkowo umożliwia łatwą integrację platformy z innymi usługami, dostępnymi w Azure. 

Azure Kubernetes Service to usługa, która może znacznie ułatwić zarządzanie całą platformą IT. Oferuje między innymi łatwą aprowizację z użyciem Container Instances, a także stworzenie pełnego środowiska deweloperskiego z użyciem Azure Dev Spaces i Visual Studio.

Przeczytaj również: dostępne usługi Microsoft Azure.

Oprócz tego, administrator może błyskawicznie wdrożyć proces zarządzania tożsamościami i dostępem do danych zasobów z wykorzystaniem Azure Active Directory, a także tworzenie określonych reguł w klastrach z Azure Policy.

 

 

AKS może doskonale spiąć wszystkie nasze wdrożone aplikacje kontenerowe, zaś dodatkowe usługi Azure znacznie zwiększają możliwości kontroli i skalowania całej platformy. Wszystko to przy zachowaniu jak najniższych kosztów dzięki optymalizacji mocy obliczeniowej chmury.

 

Realne przykłady zastosowania

Wśród różnych case studies warto wyróżnić przykład fintechu Finstra, który zajmuje się tworzeniem nowoczesnych rozwiązań dla branży finansowej. Azure Kubernetes Service stanowi tam serce całej infrastruktury. Deweloperzy mogą łatwo skalować tamtejsze aplikacje, a AKS pozwala także na automatyzację sporej części procesów bez udziału administratora.

Ciekawym przykładem użycia AKS jest również Bosch. W ich przypadku Kubernetes obsługuje platformę odpowiedzialną za rozpoznawanie poprawnego kierunku jazdy. Celem jest uniknięcie wypadków, spowodowanych przez np. jechanie pod prąd na autostradzie.

Aplikacja wykorzystuje dane lokalizacyjne dostarczane przez GPS urządzenia. Następnie są one przetwarzane w chmurze i wydawany jest komunikat, czy użytkownik jedzie zgodnie z kierunkiem jazdy, czy nie. Ponadto każdy inny kierowca w okolicy, korzystający z aplikacji, otrzyma alert w razie zagrożenia.

Wykorzystanie chmury w tym przypadku to myśl o przyszłości, kiedy sieć 5G oraz inteligentne pojazdy staną się czymś powszechnym.

“Użycie AKS było strategiczną decyzją. Szukaliśmy narzędzia do zarządzania konteneryzacją, aby odciążyć pracę w zakresie poprawiania błędów, wdrażania aktualizacji oraz usług na poziomie produkcyjnym. Właśnie dlatego wybraliśmy AKS – bardzo otwartą i elastyczną platformę” – mówi Hai Dang Le, technical lead w Bosch.

 

Podsumowanie

Kubernetes to oprogramowanie zdecydowanie warte uwagi. Zwłaszcza, jeżeli mówimy o przedsiębiorstwach z rozbudowaną infrastrukturą informatyczną. Praca na kontenerach z połączeniem chociażby usługi AKS pozwala nie tylko znacznie uprościć wdrażanie i zarządzanie aplikacjami, ale także znacznie przyspiesza pracę poprzez możliwość automatyzacji wielu zadań.

Jeżeli zatem planujesz przeniesienie swojej infrastruktury do chmury korzystanie z rozwiążań pokroju Azure Kubernetes Service może przynieść świetne rezulaty. Zarówno w aspekcie możliwości łatwego zarządzania i automatyzacji, ale również szerokiej możliwości skalowania oraz optymalizacji kosztów całej infrastruktury.