Kubernetes(w skrócie K8s) to system typu open source używany do zarządzania i wdrażania aplikacji kontenerowych w sieci komputerowej. Kubernetes stała się popularną i zaawansowaną platformą do zarządzania kontenerami, pierwotnie opracowaną przez Google i obecnie obsługiwaną przez dużą społeczność programistów.
Główne funkcje Kubernetes obejmują
-
Zarządzanie kontenerami : Kubernetes umożliwia pakowanie aplikacji i ich zasobów w pliki containers. Containers zapewniają lekkie środowisko i zapewniają spójne działanie aplikacji w dowolnym systemie.
-
Zautomatyzowane wdrażanie : Kubernetes umożliwia automatyczne wdrażanie i łatwą skalowalność aplikacji i usług. Możesz określić wymagania dotyczące zasobów, liczbę instancji i Kubernetes automatycznie utrzymać żądany stan.
-
Zarządzanie zasobami : K8s zarządza zasobami serwera, takimi jak procesor, pamięć i pamięć masowa, aby mieć pewność, że aplikacje nie zużywają nadmiernych zasobów i nie zakłócają się nawzajem.
-
Automatyczne odzyskiwanie i tolerancja błędów : Kubernetes pomaga aplikacjom automatycznie odzyskiwać siły po awariach. Może automatycznie przywrócić poprzednią wersję aplikacji, jeśli w nowej wersji wystąpią problemy.
-
Równoważenie obciążenia i dystrybucja ruchu : Kubernetes zapewnia mechanizmy równomiernej dystrybucji ruchu pomiędzy instancjami aplikacji na różnych serwerach nodes. Poprawia to wydajność i zapewnia skalowalność.
-
Zarządzanie konfiguracją i sekretami : Kubernetes umożliwia bezpieczne zarządzanie konfiguracją aplikacji i sekretami za pomocą funkcji takich jak K8s Secrets i ConfigMaps.
Mechanizmy działania Kubernetes obejmują
-
Nodes: Serwery lub poszczególne komputery w sieci nazywane są „ nodes ”. Istnieją dwa typy nodes wejść Kubernetes: węzeł główny i węzeł roboczy. Węzeł główny zarządza i kontroluje cały system, podczas gdy węzeł roboczy wykonuje containers i aplikacje.
-
Pods: Kapsuła to najmniejsza jednostka, którą można rozstawić Kubernetes. Pod może zawierać jeden lub wiele plików containers, ale mają one tę samą pamięć sieciową i cykl życia. Ułatwia to komunikację pomiędzy containers kapsułami.
-
Controller: Kontrolery to komponenty zarządzające i utrzymujące repliki plików pods. Typy kontrolerów obejmują ReplicaSet(zapewnianie prawidłowej liczby pods i ponowne uruchamianie w razie potrzeby), wdrażanie(zarządzanie wersjami i aktualizacjami aplikacji) oraz StatefulSet(do wdrażania aplikacji stanowych).
-
Service: Usługi to mechanizm równoważenia obciążenia i dystrybucji ruchu do pods. Usługi ułatwiają aplikacjom dostęp do nich pods bez konieczności znajomości ich konkretnych lokalizacji.
-
Kubelet oraz Kube Proxy: Kubelet to komponent działający w każdym węźle roboczym, odpowiedzialny za zarządzanie pods w tym węźle. Kube Proxy to sieciowy serwer proxy umożliwiający połączenie z pods.
W rezultacie Kubernetes automatyzuje wdrażanie i zarządzanie skonteneryzowanymi aplikacjami, redukując czas i wysiłek wymagany do utrzymania złożonych systemów.