Wprowadzenie

Po niedawnym dodaniu Kemp Ingress Controller for Kubernetes (dostępnego teraz w oprogramowaniu LoadMaster 7.2.53), chcemy przypomnieć, jaką rolę Kubernetes odgrywa w dostarczaniu aplikacji mikrousługowych. Kubernetes to platforma typu open source do zarządzania aplikacjami kontenerowymi na dużą skalę. Kubernetes wyrósł z wewnętrznego projektu mającego na celu usprawnienie zarządzania aplikacjami kontenerowymi w Google i został szybko i szeroko rozpowszechniony. Jest to obecnie jeden z najszybciej rozwijających się projektów open source w historii. Nazwa Kubernetes pochodzi od greckiego słowa oznaczającego sternika lub pilota. Kubernetes zapewnia usługi przewodnie, które pomagają poruszać się w coraz większej liczbie kontenerów. Wymawia się go „koo-ber-net-ees” i często skraca się do „k8s” lub „k-eights” w rozmowach i publikacjach.

Ścieżka do konteneryzacji

Rola, jaką pełni Kubernetes i potrzeba jej, wymaga zrozumienia kontenerów we wdrażaniu oprogramowania. Kontenery wyrosły z ery wdrażania wirtualizacji dla zarządzania infrastrukturą, która z kolei została zbudowana na tak zwanym tradycyjnym modelu wdrażania serwerów. Poniższy diagram przedstawia ścieżkę od tradycyjnego wdrożenia do wdrożenia zwirtualizowanego, i do konteneryzacji.

Czym właściwie jest Kubernetes i dlaczego muszę się tym przejmować?

Większość ludzi zna model wirtualizacji, w którym hipernadzorca umożliwia oddzielenie maszyn wirtualnych (VM) od podstawowego sprzętu. Każda maszyna wirtualna nadal ma oddzielną kopię systemu operacyjnego i innych zależności w obrębie maszyny wirtualnej niezależnie od innych maszyn wirtualnych.

Konteneryzacja przenosi poziom abstrakcji o krok dalej. Kontenery są podobne do maszyn wirtualnych, ale nie mają własnej kopii systemu operacyjnego do przenoszenia. W związku z tym są uważane za lżejsze niż maszyny wirtualne. Kontenery mają własny system plików, alokację procesora, pamięć i przestrzeń procesów. Wiele kontenerów działających na tym samym sprzęcie jest nadal niezależnych, podobnie jak maszyny wirtualne. Są również oddzielone od sprzętu, a także od bazowego systemu operacyjnego. Oznacza to, że ten sam kontener może być uruchamiany bez zmian na wielu systemach docelowych, takich jak Windows, Linux, Unix, macOS i u różnych dostawców chmury publicznej. Jest to bardzo przydatne w przypadku przepływów pracy związanych z programowaniem i wdrażaniem. Deweloperzy mogą pisać kod w kontenerze na swoim komputerze PC lub Mac, a ten sam kontener można następnie wdrożyć w dowolnym systemie operacyjnym klasy serwerowej lub w chmurze bez żadnych zmian.

Łatwość użycia i zalety lekkich kontenerów oznaczają, że mają one tendencję do mnożenia się. Kubernetes udostępnia narzędzia do oswajania i zarządzania kontenerami.

Mikrosuśługi

Mikrousługi opisują podejście do projektowania i programowania aplikacji, które dzieli aplikację na niezależne, luźno powiązane usługi, które mają jasno zdefiniowane interfejsy komunikacyjne. Dzięki temu poszczególne usługi mogą być skalowane, uaktualniane lub zmieniane bez wpływu na inne mikrousługi. Minimalizuje zależności kodu, zapewnia większą elastyczność w technologii i obsługuje zwiększone możliwości ponownego wykorzystania. Chociaż mikrousługi nie wymagają żadnego konkretnego modelu wdrażania (patrz powyżej), szczegółowy, niezależny charakter mikrousług sprawia, że ​​to podejście jest bardzo odpowiednie do konteneryzacji.

Co robi Kubernetes?

Niektóre organizacje, szczególnie te, które przyjmują podejście mikrousługowe do projektowania aplikacji, mogą mieć setki, a nawet tysiące kontenerów wdrożonych od rozwoju do produkcji. Kontenery te są często rozmieszczone w wielu usługach w chmurze, a także w prywatnych centrach danych i farmach serwerów. Zespoły operacyjne, które muszą utrzymać działanie i dostępność tych aplikacji, potrzebują narzędzi do efektywnego zarządzania tak dużą liczbą kontenerów. Jest to znane jako Container Orchestration i właśnie to ma zapewnić Kubernetes.

Zespoły operacyjne, programiści i zespoły DevOps nadal wdrażają platformę Kubernetes ze względu na jej wszechstronną funkcjonalność, dużą i stale powiększającą się gamę dostępnych narzędzi, które mogą ją uzupełniać, oraz jej zastosowanie przez wiodących dostawców usług w chmurze. Wielu dostawców chmury oferuje w pełni zarządzane usługi Kubernetes.

Kubernetes udostępnia następujące usługi ułatwiające organizację kontenerów:

  • Wdrożenia opisują docelowy krajobraz kontenerów, który jest potrzebny aplikacji i pozwalają Kubernetes obsługiwać proces, aby przejść do tego stanu. Obejmuje to nowe wdrożenia, zmianę istniejących wdrożonych kontenerów, a także wycofywanie w celu usunięcia wdrożeń, które nie są już potrzebne.
  • Odnajdywanie usług automatycznie udostępnia kontener w szerszej sieci lub w innych kontenerach przy użyciu nazwy DNS lub adresu IP.
  • Orkiestracja pamięci masowej umożliwia montowanie pamięci masowej z chmury lub zasobów lokalnych w razie potrzeby i tak długo, jak jest to wymagane.
  • Równoważenie obciążenia w ramach klastra zarządza obciążeniem w wielu kontenerach, dostarczając tę ​​samą aplikację, aby zapewnić stałą wydajność.
  • Samonaprawianie jest osiągane przez monitorowanie kontenerów pod kątem problemów i automatyczne ich ponowne uruchamianie, jeśli jest to wymagane.
  • Zarządzanie danymi tajnymi i konfiguracją umożliwia bezpieczne przechowywanie i zarządzanie poufnymi informacjami, takimi jak hasła, tokeny OAuth i klucze SSH. Wdrażanie i aktualizowanie tych kluczy tajnych i konfiguracji aplikacji, które ich używają, bez konieczności przebudowy kontenerów, jest możliwe bez ujawniania kluczy tajnych w sieci.

Architektura Kubernetes

Wdrożenia Kubernetes są budowane przy użyciu następujących składników logicznych i fizycznych:

  • Klastry – podstawowe elementy budulcowe architektury Kubernetes. Klastry składają się z węzłów (patrz poniżej). Każdy klaster ma wiele węzłów roboczych, które wdrażają, uruchamiają i zarządzają kontenerami, a także co najmniej jeden węzeł główny, który kontroluje i monitoruje węzły robocze.
  • Węzły – pojedynczy host obliczeniowy, który może być maszyną fizyczną, maszyną wirtualną lub instancją w chmurze. Węzły działają jako procesy robocze lub nadrzędne i muszą istnieć w klastrze węzłów (patrz powyżej). Węzły robocze obsługują i uruchamiają wdrożone kontenery, a węzeł główny w każdym klastrze zarządza węzłami roboczymi w tym samym klastrze. Każdy węzeł roboczy uruchamia agenta o nazwie Kubelet, którego węzeł główny używa do monitorowania i zarządzania nim.
  • Pody – grupy kontenerów, które współdzielą zasoby obliczeniowe i sieć. Zazwyczaj pojemniki, które są ciasno połączone, będą znajdować się w jednym zasobniku. Kubernetes skaluje zasoby na poziomie poda. Jeśli potrzebna jest dodatkowa pojemność, aby dostarczyć aplikację działającą w kontenerach w ramach pod’a, cały pod zostanie zreplikowany w celu zwiększenia pojemności.
  • Wdrożenie – kontroluje tworzenie aplikacji w kontenerze i utrzymuje ją w działaniu, monitorując jej stan w czasie rzeczywistym. Wdrożenie określa, ile replik poda powinno być uruchomionych w klastrze. Jeśli pod nie powiedzie się, wdrożenie utworzy go ponownie.

Podsumowanie

Przedstawiliśmy podstawowe koncepcje Kubernetes. W kolejnych odcinkach  przeanalizujemy wpływ Kubernetes na administratorów sieci oraz wyzwania, jakie niosą ze sobą aplikacje oparte na mikrousługach.

Jeśli obecnie szukasz możliwości wykorzystania Kubernetes i konteneryzowanych mikrousług, koniecznie wypróbuj Kemp Ingress Controller for Kubernetes

Oryginalna treść artykułu:  https://kemptechnologies.com/blog/what-is-kubernetes/

Informacja o autorze artykułu:

 

Barry Gleeson

Barry jest Product Manager’em w Kemp. Jego obszary odpowiedzialności obejmują zarządzanie dostępem, wykrywanie incydentów i rozwiązanie kontrolera ruchu przychodzącego (Ingress Controller). Wcześniej pracował jako kierownik zespołu ds. oprogramowania i inżynier wsparcia klienta w Kemp. Przed pracą w firmie Kemp, Barry pracował w dziale operacji sieciowych, wprowadzania produktów, doradztwa telekomunikacyjnego i szkoleń technicznych. Barry posiada stopień inżyniera komputerowego oraz tytuł magistra telekomunikacji bezprzewodowej.

.....................................................................................

Zainteresowały Cię rozwiązania Kemp Flowmon ?
Zapraszam do kontaktu

Marceli Matczak
Security / SDN Business Development Manager

+48 785 051 978
marceli.matczak@s4e.pl