Samouczek Kubernetes dla początkujących: podstawy, funkcje, Architektura
Zanim zaczniemy ten samouczek Kubernetes, nauczmy się:
Co to jest Kubernetes?
Kubernetes to system zarządzania kontenerami opracowany na platformie Google. Kubernetes pomaga zarządzać konteneryzowanymi aplikacjami w różnych typach środowisk fizycznych, wirtualnych i chmurowych. Google Kubernetes to wysoce elastyczne narzędzie kontenerowe do spójnego dostarczania złożonych aplikacji działających w klastrach składających się z setek do tysięcy pojedynczych serwerów.
Dlaczego potrzebujesz kontenerów?
Dzisiejszy użytkownik Internetu nigdy nie akceptuje przestojów. Dlatego programiści muszą znaleźć metodę konserwacji i aktualizacji bez zakłócania usług.
Dlatego kontener, czyli izolowane środowiska. Zawiera wszystko co potrzebne do działania aplikacji. Ułatwia programistom edytowanie i wdrażanie aplikacji. Co więcej, konteneryzacja stała się preferowaną metodą pakowania, wdrażania i aktualizowania aplikacji internetowych.
Jakie zadania realizuje Kubernetes?
Kubernetes to jądro Linuksa używane w systemach rozproszonych. Pomaga w abstrakcji podstawowego sprzętu węzłów (serwerów) i oferuje spójny interfejs dla aplikacji korzystających ze współdzielonej puli zasobów.
Dlaczego warto używać Kubernetesa?
Kubernetes pomaga kontrolować alokację zasobów i zarządzanie ruchem dla aplikacji chmurowych i mikrousług. Pomaga także uprościć różne aspekty infrastruktury zorientowanej na usługi. Kubernetes pozwala sprawdzić, gdzie i kiedy działają skonteneryzowane aplikacje, a także pomaga znaleźć zasoby i narzędzia, z którymi chcesz pracować.
Funkcje Kubernetes
Oto podstawowe funkcje Kubernetes:
- Automatyczne planowanie
- Możliwości samoleczenia
- Zautomatyzowane wdrażanie i wycofywanie
- Skalowanie poziome i równoważenie obciążenia
- Zapewnia spójność środowiska na potrzeby programowania, testowania i produkcji
- Infrastruktura jest luźno powiązana, każdy element może działać jako osobna jednostka
- Zapewnia większą gęstość wykorzystania zasobów
- Oferuje funkcje gotowe dla przedsiębiorstw
- Zarządzanie zorientowane na aplikacje
- Infrastruktura automatycznie skalowalna
- Możesz stworzyć przewidywalną infrastrukturę
Podstawy Kubernetesa
W tym samouczku dotyczącym Kubernetes nauczymy się kilku ważnych podstaw Kubernetes:
-
Cluster
Jest to zbiór hostów (serwerów), który pomaga agregować dostępne zasoby. Obejmuje to pamięć RAM, procesor, pamięć RAM, dysk i ich urządzenia w użytecznej puli.
-
Mistrz
Master to zbiór komponentów, które tworzą panel sterowania Kubernetes. Komponenty te są używane do wszystkich decyzji dotyczących klastra. Obejmuje on zarówno planowanie, jak i reagowanie na zdarzenia klastra.
-
Node
Jest to pojedynczy host, który może działać na dysku fizycznym lub Maszyna wirtualnaWęzeł powinien obsługiwać zarówno kube-proxy, minikube, jak i kubelet, które są uważane za część klastra.
-
Przestrzeń nazw
Jest to logiczny klaster lub środowisko. Jest to szeroko stosowana metoda, która jest używana do określania zakresu dostępu lub dzielenia klastra.
Kubernetes Architektura
Poniżej znajduje się szczegółowy diagram architektury Kubernetes:
węzeł główny
Węzeł główny jest pierwszym i najważniejszym komponentem odpowiedzialnym za zarządzanie klastrem Kubernetes. Jest punktem wejścia dla wszelkiego rodzaju zadań administracyjnych. W klastrze może być więcej niż jeden węzeł główny, aby sprawdzić tolerancję błędów.
Węzeł główny składa się z różnych komponentów, takich jak serwer API, menedżer kontrolerów, harmonogram i ETCD. Zobaczmy je wszystkie.
Serwer API: Serwer API pełni funkcję punktu wejścia dla wszystkich poleceń REST służących do sterowania klastrem.
Scheduler
Harmonogram planuje zadania dla węzła podrzędnego. Przechowuje informacje o wykorzystaniu zasobów dla każdego węzła podrzędnego. Odpowiada za rozkład obciążenia.
Pomaga również śledzić, jak obciążenie robocze jest wykorzystywane na węzłach klastra. Pomaga umieścić obciążenie robocze na zasobach, które są dostępne i akceptują obciążenie robocze.
itp.
Komponenty etcd przechowują szczegóły konfiguracji i wartości Wright. Komunikuje się z większością komponentów w celu otrzymywania poleceń i pracy. Zarządza także regułami sieciowymi i przekierowaniem portów.
Węzły robocze/podrzędne
Węzły robocze to kolejny istotny komponent, który zawiera wszystkie wymagane usługi do zarządzania siecią pomiędzy kontenerami, komunikacji z węzłem głównym, co pozwala na przydzielanie zasobów do zaplanowanych kontenerów.
- Kubelet: pobiera konfigurację Poda z serwera API i zapewnia, że opisane kontenery działają.
- Kontener Dockera: Doker kontener działa na każdym z węzłów roboczych, na którym działają skonfigurowane zasobniki
- Kube-proxy: Kube-proxy działa jako moduł równoważenia obciążenia i sieciowy serwer proxy do świadczenia usług na pojedynczym węźle roboczym
- Pody: Pod to kombinacja jednego lub wielu kontenerów, które logicznie działają razem w węzłach
Inne kluczowe terminologie
Kontrolery replikacji
Kontroler replikacji to obiekt definiujący szablon poda. Kontroluje także parametry skalowania identycznych replik Poda w poziomie, zwiększając lub zmniejszając liczbę działających kopii.
Zestawy replikacyjne
Zestawy replikacyjne stanowią interakcję z projektem kontrolera replikacji, zapewniając elastyczność w zakresie rozpoznawania zasobników, którymi kontroler ma zarządzać. Zastępuje kontrolery replikacji ze względu na ich większą możliwość wyboru replikacji.
Rozmieszczenia
Wdrożenie to typowe obciążenie, które można bezpośrednio utworzyć i zarządzać nim. Wdrożenie wykorzystuje zestaw replikacji jako element składowy, który dodaje funkcję zarządzania cyklem życia.
Zestawy stanowe
Jest to wyspecjalizowana kontrola strąków, która oferuje uporządkowanie i niepowtarzalność. Służy głównie do precyzyjnej kontroli, która jest szczególnie potrzebna w zakresie kolejności wdrażania, stabilnej sieci i trwałych danych.
Zestawy demonów
Zestawy demonów to kolejna wyspecjalizowana forma kontrolera podów, która uruchamia kopię poda na każdym węźle w klastrze. Ten typ kontrolera podów to skuteczna metoda wdrażania podów, która umożliwia wykonywanie konserwacji i oferuje usługi dla samych węzłów.
Kubernetes kontra rój Dockerów
Oto ważne różnice między Kubernetes kontra Docker.
Parametr | Rój dokerów | Kubernetes |
---|---|---|
Skalowanie | Brak automatycznego skalowania | Automatyczne skalowanie |
Równoważenie obciążenia | Czy automatyczne równoważenie obciążenia | Ręcznie skonfiguruj ustawienia równoważenia obciążenia |
Udostępnianie wolumenu pamięci | Udostępnia woluminy pamięci masowej innym kontenerom | Udostępnia woluminy pamięci masowej pomiędzy wieloma kontenerami w obrębie tego samego Podu |
Korzystanie z narzędzia do logowania i monitorowania | Użyj 3rd Narzędzie imprezowe, takie jak ELK | Zapewnij wbudowane narzędzie do rejestrowania i monitorowania. |
instalacja sprzętu | Łatwe i szybkie | Skomplikowane i czasochłonne |
GUI | Interfejs graficzny nie jest dostępny | Interfejs graficzny jest dostępny |
Skalowalność | Skalowanie jest szybsze niż w przypadku K8S, ale siła klastra nie jest tak solidna | Skalowanie jest wolniejsze w porównaniu do Swarm, ale gwarantuje silniejszy stan klastra. Równoważenie obciążenia wymaga ręcznej konfiguracji usługi. |
Równoważenie obciążenia | Zapewnia wbudowaną technikę równoważenia obciążenia | Planowanie procesów w celu utrzymania usług podczas aktualizacji |
Aktualizacje i wycofywanie wolumenów danych Rejestrowanie i monitorowanie | Progresywne aktualizacje i monitorowanie stanu usług. | Udostępniane tylko kontenerom w tym samym Pod Wbudowane narzędzia do rejestrowania i monitorowania. |
Zalety Kubernetesa
- Łatwa organizacja obsługi za pomocą kapsuł
- Jest rozwijany przez firmę Google, która wnosi lata cennego doświadczenia branżowego
- Największa społeczność wśród narzędzi do koordynacji kontenerów
- Oferuje różnorodne opcje przechowywania, w tym lokalne, sieci SAN i chmury publiczne
- Przestrzega zasad niezmiennej infrastruktury
- Kubernetes może uruchamiać lokalnie bare metal, OpenStack i chmury publiczne Google, Azure, AWS, itp.
- Pomaga uniknąć problemów z blokadą dostawcy, ponieważ może korzystać z dowolnych interfejsów API lub usług specyficznych dla dostawcy, z wyjątkiem sytuacji, gdy Kubernetes zapewnia abstrakcję, np. moduł równoważenia obciążenia i pamięć masową.
- Konteneryzacja przy użyciu kubernetes umożliwia oprogramowaniu pakietowemu realizację tych celów. Umożliwi to uruchamianie i aktualizowanie aplikacji bez żadnych przestojów.
- Kubernetes pozwala mieć pewność, że skonteneryzowane aplikacje będą działać tam, gdzie chcesz i kiedy chcesz, a także pomaga znaleźć zasoby i narzędzia, nad którymi chcesz pracować.
Wady Kubernetesa
- Panel Kubenetes nie jest tak przydatny, jak powinien
- Kubernetes jest trochę skomplikowany i niepotrzebny w środowiskach, w których cały rozwój odbywa się lokalnie.
- Bezpieczeństwo nie jest zbyt skuteczne.
Podsumowanie
- Kontener pomaga organizacji przeprowadzać konserwację i aktualizację bez przerywania usług
- Kubernetes to przykład systemu zarządzania kontenerami opracowanego na platformie Google.
- Największą zaletą korzystania z Kubernetesa jest to, że można na nim uruchomić lokalnie OpenStack, chmury publiczne Google, Azure, AWS itp.
- Kubernetes oferuje funkcje automatycznego planowania i samonaprawy.
- Cluster, master, węzeł i przestrzeń nazw to ważne podstawy Kubernetes
- Węzeł główny i węzeł roboczy są ważnymi komponentami architektury Kubernetes.
- Kontrolery replikacji, zestawy replikacji, wdrożenia, zestawy stanowe, zestawy demonów to inne ważne terminy używane w Kubernetes.
- Rój Dockerów nie pozwala na automatyczne skalowanie, podczas gdy Kubernetes umożliwia automatyczne skalowanie.
- Największą wadą Kubenetesa jest to, że jego dashboard jest mało użyteczny i efektywny