OpenShift - Architektura
OpenShift to system warstwowy, w którym każda warstwa jest ściśle powiązana z drugą warstwą za pomocą klastra Kubernetes i Docker. Architektura OpenShift jest zaprojektowana w taki sposób, że może obsługiwać i zarządzać kontenerami Docker, które są hostowane na wszystkich warstwach przy użyciu Kubernetes. W przeciwieństwie do wcześniejszej wersji OpenShift V2, nowa wersja OpenShift V3 obsługuje infrastrukturę kontenerową. W tym modelu Docker pomaga w tworzeniu lekkich kontenerów opartych na systemie Linux, a Kubernetes obsługuje zadanie organizowania i zarządzania kontenerami na wielu hostach.
Składniki OpenShift
Jednym z kluczowych elementów architektury OpenShift jest zarządzanie infrastrukturą kontenerową w Kubernetes. Kubernetes jest odpowiedzialny za wdrażanie i zarządzanie infrastrukturą. W każdym klastrze Kubernetes możemy mieć więcej niż jeden master i wiele węzłów, co gwarantuje, że instalacja nie będzie miała miejsca.
Kubernetes Master Machine Components
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. Powinien być dostępny tylko przez serwer Kubernetes API, ponieważ może zawierać poufne informacje. Jest to rozproszony magazyn wartości kluczy, który jest dostępny dla wszystkich.
API Server- Kubernetes to serwer API, który zapewnia wszystkie operacje na klastrze przy użyciu API. Serwer API implementuje interfejs, co oznacza, że różne narzędzia i biblioteki mogą się z nim łatwo komunikować. Kubeconfig to pakiet wraz z narzędziami po stronie serwera, których można używać do komunikacji. Udostępnia Kubernetes API ”.
Controller Manager- Ten komponent odpowiada za większość kolektorów, które regulują stan klastra i wykonują zadanie. Można go uważać za demona, który działa w pętli niezakończonej i jest odpowiedzialny za zbieranie i wysyłanie informacji do serwera API. Działa w kierunku uzyskania udostępnionego stanu klastra, a następnie wprowadza zmiany w celu doprowadzenia 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 kontrolera obsługuje różnego rodzaju kontrolery do obsługi węzłów, punktów końcowych itp.
Scheduler- Jest to kluczowy składnik mastera Kubernetes. Jest to usługa w master, która jest odpowiedzialna za dystrybucję obciążenia. Odpowiada za śledzenie wykorzystania obciążenia roboczego na 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 modułu do nowego węzła.
Komponenty węzła Kubernetes
Poniżej znajdują się kluczowe komponenty serwera Node, które są niezbędne do komunikacji z masterem Kubernetes.
Docker - 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.
Kubelet Service- Jest to mała usługa w każdym węźle, która jest odpowiedzialna za przekazywanie informacji do iz usługi płaszczyzny kontroli. Współdziała ze sklepem etcd, aby odczytać szczegóły konfiguracji i wartości Wrighta. To komunikuje się z głównym komponentem w celu otrzymywania poleceń i pracy. Proces kubelet przejmuje wtedy odpowiedzialność za utrzymanie stanu pracy i serwera węzła. Zarządza regułami sieciowymi, przekierowaniem portów itp.
Kubernetes Proxy Service- 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 poprawnych kontenerów. Usługa proxy Kubernetes może przeprowadzać proste równoważenie obciążenia. Daje pewność, że środowisko sieciowe jest przewidywalne i dostępne, ale jednocześnie jest izolowane. Zarządza podami w węźle, woluminach, sekretach, tworzy nowe sprawdzanie stanu kontenerów itp.
Zintegrowany rejestr kontenerów OpenShift
Rejestr kontenerów OpenShift to wbudowana jednostka pamięci firmy Red Hat, która służy do przechowywania obrazów Dockera. Wraz z najnowszą zintegrowaną wersją OpenShift pojawił się interfejs użytkownika do przeglądania obrazów w wewnętrznej pamięci OpenShift. Te rejestry są w stanie przechowywać obrazy z określonymi tagami, które są później używane do budowania z nich kontenerów.
Często używane terminy
Image- Obrazy Kubernetes (Docker) są kluczowymi elementami składowymi infrastruktury kontenerowej. Obecnie Kubernetes obsługuje tylko obrazy Dockera. Każdy kontener w kapsule ma uruchomiony obraz Dockera. Podczas konfigurowania poda właściwość obrazu w pliku konfiguracyjnym ma taką samą składnię jak polecenie Docker.
Project - Można je zdefiniować jako zmienioną nazwę domeny, która była obecna we wcześniejszej wersji OpenShift V2.
Container - Są to te, które są tworzone po wdrożeniu obrazu w węźle klastra Kubernetes.
Node- Węzeł to działająca maszyna w klastrze Kubernetes, która jest również znana jako sługa dla mistrza. Są to jednostki robocze, które mogą być instancją fizyczną, maszyną wirtualną lub chmurą.
Pod- Pod to zbiór kontenerów i ich miejsca przechowywania w węźle klastra Kubernetes. Możliwe jest utworzenie kapsuły z wieloma kontenerami w środku. Na przykład przechowywanie kontenera bazy danych i kontenera serwera internetowego wewnątrz kapsuły.