Czym jest platforma Kubernetes?

Autor: IBM Services

Harmonizacja i wdrażanie skonteneryzowanych aplikacji w dowolnym środowisku

Kubernetes to rozwiązanie Open Source, które automatyzuje wdrażanie, skalowanie i monitorowanie skonteneryzowanych aplikacji.

Kontener to oprogramowanie odseparowane od swojej bazowej infrastruktury. Dzięki kontenerom wszystko jest zwirtualizowane aż do poziomu systemu operacyjnego. Oznacza to, że aplikacje funkcjonują tak samo w każdym środowisku, w którym zostaną uruchomione.

Obecnie większość kontenerów działa na platformie Kubernetes. Jak twierdzą przedstawiciele organizacji, „Kubernetes to środowisko zarządzania zorientowane na kontenery. Umożliwia harmonizację infrastruktury obliczeniowej, sieciowej i pamięciowej na potrzeby obciążeń użytkowników. Pozwala też przenosić dane między infrastrukturami od różnych dostawców”⁽¹⁾.

Wszystko, co trzeba wiedzieć o Kubernetes

Początki platformy Kubernetes sięgają firmy Google, w której zespół inżynierów opracował system Borg służący do zarządzania klastrami. W 2014 roku przedsiębiorstwo zaprezentowało system Borg w wersji Open Source, nazwanej Kubernetes⁽²⁾.

Pierwszą wersję Kubernetes opublikowano w 2015 roku. System umożliwiał harmonizację kontenerów na potrzeby zarządzania aplikacjami rozproszonymi. W tym samym czasie firma Google nawiązała współpracę z organizacją Linux Foundation, tworząc Cloud Native Computing Foundation, i zaoferowała Kubernetes jako technologię dającą początek dalszym pracom deweloperskim⁽³⁾.

Od czasu premiery platforma Kubernetes stopniowo zyskiwała na popularności, głównie za sprawą możliwości przenoszenia aplikacji między systemami dzięki technologii kontenerów. Dzięki ponad 1400 kontrybutorom społeczność oprogramowania Open Source Kubernetes jest obecnie jedną z największych na świecie.

Najczęściej wykorzystywaną technologią kontenerów jest Docker, jednak Kubernetes obsługuje też wiele innych. Narzędzie Docker udostępnia szablony do umieszczania oprogramowania w zestandaryzowanych jednostkach, które zawierają wszystkie elementy niezbędne do uruchamiania aplikacji.

System Kubernetes harmonizuje środowisko kontenerów, a jednocześnie optymalizuje wykorzystanie mocy serwera i pamięci. Zarządza miejscem i sposobem wdrażania kontenerów za pomocą takich funkcji, jak inteligentne planowanie harmonogramów czy równoważenie obciążeń, mechanizmów skalowania i zarządzania pamięcią masową oraz opcji wykonywania plików wsadowych.

Najważniejsze założenia projektu:

  • Podstawową jednostką, którą zarządza system Kubernetes, jest pod lub też grupa kontenerów. Kontenery znajdujące się w jednym podzie współdzielą pamięć masową, zasoby i adres IP.
  • Klaster Kubernetes składa się z węzłów głównych (Master) i roboczych (Worker). Węzeł zaś to host lub serwer, na którym działa kontener — może nim być maszyna wirtualna albo fizyczna.
  • Węzeł główny zarządza obciążeniem kontenera i ukierunkowuje komunikację w całym systemie. Zawiera też program planujący, który nadzoruje wydajność, pojemność i dostępność.
  • Pody są obsługiwane przez węzły robocze pod kierunkiem węzła głównego.
  • Pliki konfiguracyjne pozwalają zespołom określać parametry operacyjne, takie jak maksymalna liczba podów uruchamianych jednocześnie. Platforma Kubernetes umożliwia zarządzanie zasobami z całego centrum przetwarzania danych tak, jakby znajdowały się one w pojedynczym systemie. 

Kubernetes kontra Docker: jedno nie wyklucza drugiego

Dlaczego platforma Kubernetes jest taka ważna

Duże aplikacje korporacyjne mogą zawierać ogromną liczbę kontenerów. Tego rodzaju architektura może szybko stać się niezwykle złożona.

Organizacje powinny być w stanie harmonizować wszystkie dynamiczne elementy obecne w środowisku kontenera — najlepiej z jednego, scentralizowanego miejsca. Wiele z nich wybiera w tym celu właśnie system Kubernetes.

Platforma Kubernetes zarządza ekosystemem i dostosowuje stopień wykorzystania zasobów obliczeniowych i pamięciowych, tak by kontenery były dostępne i wdrażane w efektywny sposób. Zespół programistów może w każdej chwili sprawdzać stan i status poszczególnych elementów.

Platforma Kubernetes pomaga organizacjom upraszczać wdrażanie nowych aplikacji, usprawniać zarządzanie kontenerami i zasobami, niwelować ryzyko towarzyszące aktualizacjom i unikać przestojów. Umożliwia skalowanie komponentów aplikacji — pojedynczo lub grupowo — i ułatwia tworzenie dających się przenosić aplikacji od początku działających w chmurze. 

Matt Johnsen na swoim blogu IBM omawia część dostępnych korzyści:

  • Oszczędności finansowe: klastry Kubernetes słyną z niskich wymogów w zakresie konserwacji. Zespoły nie muszą pisać własnych skryptów do automatyzacji kontenerów. Mogą pracować w oparciu o infrastrukturę współużytkowaną i ograniczać wydatki na sprzęt poprzez efektywniejsze wykorzystanie tego, który jest obecnie dostępny.
  • Szybsze wprowadzanie produktów i usług na rynek: Platforma Kubernetes sprzyja realizacji strategii tworzenia i eksploatacji oprogramowania. Skuteczne zarządzanie kontenerem oznacza, że tak długo, jak uruchomione jest oprogramowanie, wdrożenie będzie niemal zawsze przebiegać bezproblemowo.
  • Elastyczność IT: W nowoczesnym przedsiębiorstwie oprogramowanie może działać na dowolnej liczbie infrastruktur prywatnych i współużytkowanych. Dzięki rozwiązaniu do zarządzania kontenerami zespoły przenoszą aplikacje, nie rezygnując z wydajności ani nie wprowadzając w aplikacjach znaczących zmian. Mogą uruchamiać oprogramowanie wszędzie tam, gdzie wymaga tego działalność biznesowa.

Kolejną korzyścią zapewnianą przez system Kubernetes jest skalowanie wszerz, które pomaga odpowiadać na zmieniające się potrzeby w zakresie wydajności.

„Jeżeli do obsługi aplikacji wykorzystujecie już Dockera i kontenery, przeniesienie się na platformę Kubernetes zdecydowanie pomoże sprostać wielu zadaniom i problemom, które towarzyszą skalowaniu niemal każdej aplikacji”, mówi Sai Vennam, IBM Developer Advocate.

Platforma Kubernetes jako usługa

Organizacje mogą harmonizować wdrożone kontenery, wykorzystując własny system Kubernetes. W innym wypadku dostawca usług może zaproponować platformę lub infrastrukturę jako usługę oparte na technologii Kubernetes.

Klienci używają tych samych funkcji, tyle że prościej i wygodniej. Oddajmy głos Jasonowi McGee, wiceprezesowi i IBM Fellow ds. IBM Cloud:

„Zainstalowanie, połączenie i skonfigurowanie kolekcji zasobów w działający klaster kontenera to niełatwe zadanie. Wymaga sporo zachodu i wiedzy. A co, gdy trzeba zwiększyć lub zmniejszyć pojemność środowiska kontenera? Jak odzyskać sprawność operacyjną po wystąpieniu awarii? Poza tym kontenery i platforma Kubernetes błyskawicznie ewoluują.

Trudno za tym nadążyć bez niczyjej pomocy. Jedną z zalet usług zarządzanych jest to, że ktoś inny się tym wszystkim zajmuje, a Ty tylko skupiasz się na aplikacjach”⁽⁴⁾.

Dostawca usług zarządzanych taki jak IBM odpowiada za zasoby obliczeniowe, sieciowe i pamięciowe w każdym klastrze węzłów. Usługa IBM oferuje inteligentne planowanie harmonogramów, uproszczone zarządzanie klastrem, zabezpieczenia kontenerów i strategie izolowania oraz modernizację infrastruktury.

Ponadto klienci IBM mogą korzystać z usługi Kubernetes w infrastrukturze chmurowej utrzymywanej na serwerach fizycznych. Zwiększa to elastyczność i szybkość działania aplikacji wymagających ogromnej mocy obliczeniowej, takich jak bazujące na technologii uczenia maszynowego lub sztucznej inteligencji.

„Programiści mogą teraz wybierać konfiguracje serwerów fizycznych dopasowane do ich potrzeb — oferujące na przykład techniki izolacji, większą moc przetwarzania czy dodatkowe miejsce na dysku lokalnym — a jednocześnie korzystać z zalet kontenerów, takich jak bezproblemowe przenoszenie danych między systemami czy możliwość jednoczesnej pracy wielu członków zespołu nad wieloma aspektami aplikacji”, mówi McGee.

The Weather Company skaluje usługi WWW, aby zapewniać ludziom bezpieczeństwo

 

Zasoby na temat platformy Kubernetes

Czym są kontenery i dlaczego ich potrzebujesz?

Dowiedz się, czym są kontenery i dlaczego organizacje z nich korzystają

Implementacja systemu Kubernetes i istota zarządzania wydajnością aplikacji

Sprawdź, dlaczego środowisko chmurowe oparte na platformie Kubernetes pozwala odmienić oblicze wielu przedsiębiorstw

Kubernetes kontra Docker: A może jednego i drugiego?

Poznaj różnice między platformą Kubernetes a oprogramowaniem Docker

IBM ułatwia wykorzystywanie kontenerów na potrzeby zaawansowanych obciążeń dzięki zarządzanej platformie Kubernetes na serwerach fizycznych

Poznaj korzyści, jakie zapewniają kontenery Kubernetes oferowane jako usługa zarządzana w infrastrukturze chmurowej na serwerach fizycznych

Bierz przykład z Watsona: O tym, jak kontenery skalują technologię sztucznej inteligencji

Dowiedz się, dlaczego sztuczna inteligencja działa inaczej — i lepiej — w chmurze

Monitorowanie IBM Cloud Service z pomocą Outlyer

Poznaj korzyści, jakie płyną z używania platformy Outlyer do samodzielnego monitorowania usługi IBM Cloud Kubernetes Service

Wyróżniona usługa

IBM Kubernetes Cloud Service

 

1. https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

2. https://blog.risingstack.com/the-history-of-kubernetes/

3. https://en.wikipedia.org/wiki/Kubernetes

4. https://softwareengineeringdaily.com/2017/11/29/how-ibm-runs-its-cloud-with-jason-mcgee/