Kubernetes - architektura

W tym rozdziale omówimy podstawową architekturę Kubernetes.

Kubernetes - architektura klastra

Jak widać na poniższym diagramie, Kubernetes jest zgodny z architekturą klient-serwer. W tym przypadku mamy master zainstalowany na jednej maszynie, a węzeł na osobnych maszynach z Linuksem.

Kluczowe komponenty mastera i node są zdefiniowane w następnej sekcji.

Kubernetes - główne komponenty maszyn

Poniżej znajdują się komponenty Kubernetes Master Machine.

etcd

Przechowuje informacje o konfiguracji, które mogą być używane przez każdy z węzłów w klastrze. Jest to magazyn wartości kluczy o wysokiej dostępności, który można rozdzielić na wiele węzłów. Jest dostępny tylko dla serwera Kubernetes API, ponieważ może zawierać poufne informacje. Jest to rozproszony magazyn wartości kluczy, który jest dostępny dla wszystkich.

Serwer API

Kubernetes to serwer API, który zapewnia całą operację na klastrze za pomocą API. Serwer API implementuje interfejs, co oznacza, że ​​różne narzędzia i biblioteki mogą się z nim łatwo komunikować.Kubeconfigto pakiet wraz z narzędziami po stronie serwera, których można używać do komunikacji. Udostępnia Kubernetes API.

Kierownik Kontrolera

Ten komponent jest odpowiedzialny za większość kolektorów, które regulują stan klastra i wykonują zadanie. Ogólnie można go uznać za demona działającego w pętli nie kończącej się i odpowiedzialnego za zbieranie i wysyłanie informacji do serwera API. Działa w kierunku uzyskania udostępnionego stanu klastra, a następnie wprowadzenia zmian w celu przywrócenia bieżącego stanu serwera do pożądanego stanu. Kluczowymi kontrolerami są kontroler replikacji, kontroler punktu końcowego, kontroler przestrzeni nazw i kontroler konta usługi. Menedżer kontrolerów obsługuje różnego rodzaju kontrolery do obsługi węzłów, punktów końcowych itp.

Planista

Jest to jeden z kluczowych elementów mastera Kubernetes. Jest to usługa master odpowiedzialna za dystrybucję obciążenia. Odpowiada za śledzenie wykorzystania obciążenia roboczego w węzłach klastra, a następnie umieszczanie obciążenia, na którym zasoby są dostępne, i akceptowanie obciążenia. Innymi słowy, jest to mechanizm odpowiedzialny za przydzielanie zasobników do dostępnych węzłów. Harmonogram jest odpowiedzialny za wykorzystanie obciążenia i przydzielanie pod do nowego węzła.

Kubernetes - składniki węzłów

Poniżej znajdują się kluczowe komponenty serwera Node, które są niezbędne do komunikacji z masterem Kubernetes.

Doker

Pierwszym wymaganiem każdego węzła jest Docker, który pomaga w uruchamianiu hermetyzowanych kontenerów aplikacji w stosunkowo izolowanym, ale lekkim środowisku operacyjnym.

Usługa Kubelet

Jest to niewielka usługa w każdym węźle odpowiedzialna za przekazywanie informacji do i z usługi płaszczyzny kontroli. Współdziała zetcdstore, aby odczytać szczegóły konfiguracji i wartości wright. To komunikuje się z głównym komponentem w celu otrzymywania poleceń i pracy. Plikkubeletwtedy proces przejmuje odpowiedzialność za utrzymanie stanu pracy i serwera węzła. Zarządza regułami sieciowymi, przekierowaniem portów itp.

Usługa proxy Kubernetes

Jest to usługa proxy, która działa na każdym węźle i pomaga w udostępnianiu usług hostowi zewnętrznemu. Pomaga w przekazywaniu żądania do poprawnych kontenerów i jest w stanie wykonać podstawowe równoważenie obciążenia. Daje pewność, że środowisko sieciowe jest przewidywalne i dostępne, a jednocześnie jest izolowane. Zarządza zasobnikami w węźle, woluminach, sekretach, tworzy kontrolę stanu nowych kontenerów itp.

Kubernetes - struktura główna i węzłowa

Poniższe ilustracje przedstawiają strukturę Kubernetes Master i Node.