fbpx
goodfirms LOGO Created with Sketch.







    Kubeernetes – kompendium wiedzy

    02
    sierpień
    2022
    Karol Dobrakowski
    4 minuty czytania
    Udostępnij

    Frontend (Vue.js) Developer poszukiwany!

    Zobacz ofertę pracy na Frontend (Vue.js) Developera i aplikuj do naszej firmy już teraz! Pracuj gdzie chcesz i kiedy chcesz!

    Zobacz ofertę
     

    Nowoczesne aplikacje kontenerowe nie bez przyczyny powstają w architekturze mikroserwisów przy pomocy oprogramowania takiego jak Kubernetes. Zarządzanie, skalowanie i rozwijanie większej liczby aplikacji kontenerowych to tylko niektóre z wyzwań, z jakimi zmagać się musi współcześnie niemalże każdy frontendowy developer. Co to jest Kubernetes i jakie ma zalety? Jak działa Kubernetes i do czego się go wykorzystuje? W poniższym artykule postaramy się przybliżyć także kluczowe pojęcia i terminy niezbędne do zrozumienia tematu.   

    Co to jest Kubernetes?

    Kubernetes (K8s) jest odpowiedzią na problemy związane z zarządzeniem klasterami skonteneryzowanych aplikacji i usług. Rozwijany od 2014 roku i dystrybuowany jako platforma open source Kubernetes bardzo często nazywany jest systemem operacyjnym dla chmury. Związane jest to przede wszystkim z tym, iż powszechnie wykorzystuje się go do automatyzacji procesów uruchamiania, skalowania i zarządzania aplikacjami w kontenerach. Obecnie Kubernetes posiada wsparcie dla większości chmur publicznych oraz, co ważne, jest w pełni kompatybilny z wieloma narzędziami kontenerowymi (np. Dockerem). Stworzony początkowo przez inżynierów z Google Kubernetes zarządzany jest współcześnie przez będącą częścią Linux Foundation fundację Cloud Native Computing Foundation (CNCF). Z tego też powodu dostarczany może być on w usłudze PaaS (Platform as a Service), IaaS (Infrastructure as a Service) lub opracowanej na własne potrzeby dystrybucji pod inną nazwą.

    Jakie zalety ma Kubernetes dla programistów i organizacji?

    Z perspektywy nowoczesnego przedsiębiorstwa lub organizacji Kubernetes zapewnić może potencjalnie wiele korzyści, takich jak choćby większe bezpieczeństwo przetwarzanych danych (np. haseł, tokenów autoryzacyjnych i kluczy SSH) czy wysoka stabilność. Warto zaznaczyć też, że Kubernetes pozwala zautomatyzować wiele procesów (np. skalowanie, uruchamianie, resetowanie itp.), wyszukać skonteneryzowane usługi po IP lub przez DNS oraz zarządzać wersjami albo przechowywaniem (lokalnie lub w chmurze). Z drugiej strony Kubernetes dla programistów posiada też dużo udogodnień i funkcjonalności zaprojektowanych z myślą o elastyczności i architekturze mikroserwisów. Dostępne w systemie Kubernetes narzędzia umożliwiają automatyzację czasochłonnych i powtarzalnych zadań, które w innym przypadku wymagałyby manualnej interwencji. Rozwiązanie to cenione jest także ze względu na możliwości związane z deklaratywną konfiguracją API.

    Zastosowanie Kubernetesa

    W kwestii takiej jak zastosowanie Kubernetesa najczęściej wykorzystuje się go do hostowania, skalowania i zarządzania aplikacjami kontenerowymi w architekturze mikroserwisów. W wielu firmach i przedsiębiorstwach służy on także do:

    - detekcji nowych serwisów i balansowania ruchu sieciowego,

    - obsługi przechowywanych danych i montowania systemów składowania,

    - automatyzacji procesów wdrażania oraz cofania zmian w aplikacjach,

    - optymalizacji dostępnych zasobów (określenie mocy procesora i pamięci RAM dla każdego kontenera),

    - naprawiania i restartowania kontenerów, które przestały działać,

    - zabezpieczania poufnych informacji takich jak hasła, klucze SSH i tokeny OAuth.

    Jak działa Kubernetes?

    Starając się wyjaśnić, jak działa Kubernetes, wypada na wstępie zaznaczyć, iż funkcjonuje on w warstwie kontenerów, a nie sprzętu. W przeciwieństwie do bardziej tradycyjnych systemów PaaS charakteryzujących się monolityczną architekturą Kubernetes zalicza się do kategorii mikroserwisów. W praktyce oznacza to, że wszystkie dostępne w ramach platformy i ekosystemu rozwiązania są opcjonalne, dzięki czemu użytkownicy mogą elastycznie dobierać niezbędne elementy (np. w formie wtyczek). Kubernetes nie ogranicza typów obsługiwanych aplikacji ani nie wymusza używania konkretnych systemów ostrzegania, monitorowania, zbierania logów, eksportowania metryk czy gromadzenia danych. Dlatego, że został on zaprojektowany z myślą o możliwości obsługi różnorodnych zadań, można wykorzystywać go zarówno w przypadku aplikacji bezstanowych (ang. stateless), jak i też aplikacji ze stanem (ang. stateful). W środowisku Kubernetesa doskonale sprawdzą się również wszystkie aplikacje kontenerowe.

    Kubernetes dla programistów – jakie terminy trzeba znać by efektywnie korzystać K8s?

    Próbując zrozumieć, co to jest Kubernetes i jak go efektywnie wykorzystywać dobrze jest zapoznać się z kluczowymi terminami i pojęciami:

    - kontener – wykonywalny obraz oprogramowania spakowany wraz z bibliotekami i zależnościami,

    - pod – grupuje skonteneryzowane elementy i pomimo tego, iż składać może się z kilku kontenerów, jest zarazem najmniejszą możliwą do uruchomienia jednostką w Kubernetesie,

    - klaster – zestaw fizycznych lub wirtualnych maszyn, które służą m.in. do uruchamiania skonteneryzowanych aplikacji,

    - sekret – mechanizm odpowiedzialny za bezpieczne przechowywanie poufnych i wrażliwych danych,

    - usługa – zestaw współpracujących ze sobą podów definiowany przy pomocy selektora etykiet,

    - wolumin – miejsce, w którym przechowywane są dane przez cały okres eksploatacji poda.

    Kubernetes dla programistów – podsumowanie

    Starając się efektywnie zarządzać większą liczbą aplikacji komputerowych, trzeba wykorzystywać do tego odpowiednie oprogramowanie. Bardzo wiele firm i programistów korzysta obecnie jedynie z Dockera, ponieważ zastosowanie Kubernetesa może w pierwszej chwili wydawać się bardziej skomplikowane. W praktyce Kubernetes sprawdzony został już przez setki tysięcy większych i mniejszych firm na całym świecie, a o jego nieustanny rozwój dba już ponad 3200 współtwórców.

    Jak możemy Ci pomóc?
    Porozmawiaj z nami!







      Łukasz Świtek
      Customer Success Manager
      Wiktor Sobczyk
      Co-Founder, Key Account Manager