Najlepsze pytania
Chronologia
Czat
Perspektywa
Kubernetes
oprogramowanie do zarządzanie klastrem kontenerów Z Wikipedii, wolnej encyklopedii
Remove ads
Kubernetes (stylizowany na K8s[2]) – otwartoźródłowa[3] platforma do zarządzania, automatyzacji i skalowania aplikacji kontenerowych. Jego pierwotna wersja została stworzona w 2014 roku przez Google, a obecnie rozwijany jest przez Cloud Native Computing Foundation. Kubernetes działa z wieloma bibliotekami uruchomieniowymi dla kontenerów (ang. container runtime), takimi jak containerd, CRI-O, Docker Engine lub Mirantis Container Runtime[4]. Jest również wspierany przez większość chmur publicznych i dostarczany w usłudze PaaS oraz IaaS. Wielu dostawców oferuje także własne dystrybucje Kubernetes pod inną nazwą.
Remove ads
Historia
Podsumowanie
Perspektywa

Pracę nad projektem Kubernetes (κυβερνήτης, gr. gubernator, kapitan) rozpoczęli trzej inżynierowie Google: Joe Beda, Brendan Burns i Craig McLuckie. Później dołączyli do nich inni pracownicy Google, w tym Brian Grant i Tim Hockin[5]. W połowie 2014 roku firma Google ogłosiła pierwsze wydanie platformy. Duży wpływ na rozwój projektu miał opracowany w Google system Borg[6][7]. Oryginalna nazwa kodowa Kubernetes w Google to Projekt Siedem z Dziewięciu (ang. Project Seven of Nine), co jest odniesieniem do fikcyjnej postaci z serialu Star Trek o tej samej nazwie, która jest „bardziej przyjaznym” Borgiem[8]. Siedem szprych na kole logo Kubernetes odnosi się właśnie do tego kryptonimu. Oryginalny projekt Borg został napisany w całości w języku C++, ale przepisany system Kubernetes jest zaimplementowany w Go.
Kubernetes v1.0 został wydany 21 lipca 2015 roku. W tym czasie przy współpracy z Linux Foundation powstała także organizacja Cloud Native Computing Foundation (CNCF)[9]. 6 marca 2018 roku projekt Kubernetes zajął dziewiąte miejsce w liczbie commitów na GitHub oraz drugie miejsce w liczbie kontrybutorów i otworzonych issues[10].
Remove ads
Obiekty Kubernetes
Podsumowanie
Perspektywa
Kubernetes udostępnia zestaw narzędzi, które zapewniają mechanizmy wdrażania, utrzymywania i skalowania aplikacji w oparciu o procesor, pamięć[11] lub niestandardowe parametry[12]. Kubernetes został zaprojektowany tak, aby był elastyczny w celu umożliwienia szerokiego wykorzystania. Ta elastyczność jest w dużej mierze zapewniana przez API Kubernetes, który jest wykorzystywany przez komponenty wewnętrzne, a także przez rozszerzenia i kontenery uruchomione przez Kubernetes[13]. Platforma kontroluje zasoby obliczeniowe i pamięciowe, definiując je jako obiekty, którymi następnie można zarządzać. Kluczowymi obiektami Kubernetes są:
Pody
W nomenklaturze projektu pod oznacza abstrakcję grupującą skonteneryzowane komponenty. Pod składa się z jednego lub kilku kontenerów znajdujących się na tym samym hoście, mogących współdzielić zasoby. Pod jest najmniejszą jednostką możliwą do uruchomienia w Kubernetes[14].
Usługi

Usługi (ang. services) Kubernetes to zestaw podów współpracujących ze sobą, tak jak jedna wielowarstwowa aplikacja. Zestaw podów stanowiących usługę jest definiowany przez selektor etykiet[13].
Wolumeny
Systemy plików w kontenerze Kubernetes domyślnie zapewniają efemeryczną pamięć masową. Oznacza to, że ponowne uruchomienie poda usuwa wszystkie dane z takich kontenerów, a zatem ta forma przechowywania jest dość ograniczająca. Wolumin (ang. volumes) Kubernetes zapewnia trwałe miejsce do przechowywania, które istnieje przez cały okres eksploatacji poda.
Przestrzenie nazw
Kubernetes udostępnia współdzielone zasoby przez udostępnienie na wyłączność przy pomocy przestrzeni nazw (ang. namespaces). Przestrzenie nazw są przeznaczone do użytku w środowiskach z wieloma użytkownikami w wielu zespołach lub projektach, a nawet w celu wydzielenia środowisk, takich jak deweloperskie, testowe i produkcyjne.
Sekrety
Częstym wyzwaniem dla twórców aplikacji jest decydowanie, gdzie przechowywać oraz jak zarządzać informacjami poufnymi, takimi jak hasła, tokeny OAuth i klucze SSH. Mechanizm dostarczony przez Kubernetes nazywa się „sekretami” (ang. secrets). Sekrety są bezpieczniejsze i bardziej elastyczne niż umieszczanie wrażliwych danych w definicji poda lub w obrazie kontenera.
Remove ads
Mikroserwisy
Kubernetes jest powszechnie używany jako sposób hostowania mikroserwisów, ponieważ wraz z ekosystemem powiązanych narzędzi zapewnia wszystkie możliwości niezbędne do budowania aplikacji zgodnie z architekturą mikroserwisów.
Zobacz też
Przypisy
Linki zewnętrzne
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads