Kontenery: Recenzja Portainer

Menedżer open source dla kontenerów Docker i usług Swarm

Zdjęcie: Isaac Smith na Unsplash

Co to jest Portainer?

Portainer to lekki interfejs użytkownika do zarządzania, który umożliwia łatwe zarządzanie różnymi środowiskami Docker.

Portainer zapewnia łatwe i proste rozwiązanie do zarządzania kontenerami Docker i usługami Swarm za pośrednictwem interfejsu internetowego. Portainer obsługuje szeroką gamę funkcji do zarządzania kontenerami Dockera, takich jak zarządzanie tworzeniem i usuwaniem usług Swarm, uwierzytelnianie użytkowników, autoryzacje, łączenie, wykonywanie poleceń w konsoli uruchamiania kontenerów i przeglądanie dzienników kontenerów.

W tym artykule postaram się przedstawić przegląd i przegląd niektórych funkcji obsługiwanych przez Portainer.

Zainstaluj na Swarm

Aby móc uruchomić Portainer w klastrze Swarm, musisz wdrożyć dwie usługi. Pierwsza to usługa agenta, która powinna działać na każdym węźle w klastrze Swarm. Druga usługa to portainer-uii ta usługa musi zostać wdrożona tylko w węzłach menedżera, aby można było uruchomić Portainer zgodnie z oczekiwaniami. Fakt ten można uznać za wadę, ponieważ uniemożliwi uruchamianie menedżerów w DRAIN trybie zalecanym przez Swarm.

Powyższy plik jest docker-composeplikiem, którego można użyć do wdrożenia Portainera w klastrze Docker Swarm. Aby wykonać wdrożenie, upewnij się, że wszystkie uchwyty miejsc zostały zastąpione, a następnie wykonaj następujące polecenie.

$> docker stack deploy -c docker-compose.yml portainer

Poświadczenie

Portainer obsługuje trzy różne metody uwierzytelniania użytkowników. Pierwsza to internalmetoda, w której zarządzanie użytkownikami jest obsługiwane przez Portainer i przechowywane w folderze danych Portainer. Druga metoda polega na tym LDAP, że użytkownikami zarządza zewnętrzny serwer LDAP, taki jak ActiveDirectory. Jedyną wadą LDAPuwierzytelniania , jaką widzę, jest to, że nie można go skonfigurować za pomocą zmiennych środowiskowych. Ostatnią metodą uwierzytelniania jest OAuthwykonanie uwierzytelnienia. (Ta funkcja wymaga zakupu jednego z płatnych rozszerzeń).

Zarządzaj wieloma klastrami (punktami końcowymi)

Jak pokazano na poniższym obrazku, Portainer obsługuje zarządzanie wieloma klastrami Docker Swarm (zwanymi punktami końcowymi ) za pomocą interfejsu użytkownika. Ta funkcja jest bardzo pomocna w przypadku, gdy chcesz zarządzać klastrami dla różnych środowisk (takich jak testowanie, przemieszczanie i produkcja) w jednym interfejsie użytkownika.

Szablon

Portainer umożliwia użytkownikowi końcowemu wdrażanie typowych usług Docker Swarm lub kontenerów Docker z predefiniowanych szablonów. Szablony te są dostarczane z samym Portainerem lub mogą być definiowane przez samych użytkowników końcowych. Szablony zdefiniowane przez użytkownika mogą służyć do wdrażania usług w trzech trybach:

  • Pojedyncze kontenery Dockera - poprzez zdefiniowanie wszystkich potrzebnych konfiguracji do utworzenia kontenera
  • Usługi Docker Swarm - poprzez udostępnienie łącza do stosu lub pliku usługi
  • Kontenery Dockera - przy użyciu docker-composepliku

Inną ważną funkcją udostępnianą przez Portainer jest możliwość przeglądania, interakcji i zarządzania zasobami Docker Swarm, takimi jak usługa Swarm, sieci Docker, stosy Swarm, kontenery i obrazy Dockera.

Portainer umożliwia użytkownikowi końcowemu przeglądanie tych zasobów i interakcję z nimi w łatwy, intuicyjny i prosty sposób. W rezultacie użytkownik końcowy nie musi łączyć się z klastrami Swarm i przechodzić z jednego węzła do drugiego, aby zweryfikować i sprawdzić usługi i kontenery. Na przykład użytkownik końcowy może wyświetlić listę wszystkich usług wdrożonych w danym klastrze, zaktualizować elementy konfiguracji tych usług oraz zatrzymać i uruchomić usługi w razie potrzeby z poziomu interfejsu internetowego.

Wykonuj akcje na kontenerach

Ta funkcja jest silnie powiązana z poprzednią, ale ponieważ czynności, które można wykonać na kontenerach, są bardzo ważne i pomocne, chcę podkreślić te funkcje.

Zwykle w klastrach Docker Swarm, jeśli inżynier chciałby sprawdzić dany kontener, sprawdzić logi kontenera lub połączyć się z powłoką wewnątrz kontenera Docker, musi wykonać następujące czynności. Najpierw połącz się z węzłem menedżera. Następnie sprawdź, gdzie są wdrożone kontenery usługi (w którym węźle roboczym). Następnie połącz się z węzłem roboczym i wykonaj wymaganą akcję na kontenerze.

Wszystkie te czynności nie są potrzebne podczas hostowania Portainera. Ten sam cel można osiągnąć bezpośrednio z poziomu interfejsu internetowego i nie ma potrzeby łączenia się z żadnym węzłem klastra.

Jak pokazano na powyższym obrazku, użytkownik końcowy może wykonać następujące czynności na dowolnym kontenerze działającym w klastrach Swarm:

  • Wykonaj polecenia wdrażania (uruchom, zatrzymaj, zabij, uruchom ponownie)
  • Wyświetl dzienniki kontenera
  • Sprawdź konfiguracje kontenera
  • Wyświetl użycie zasobów kontenera, takie jak użycie procesora i użycie pamięci
  • Otwórz konsolę lub powłokę wewnątrz uruchomionego kontenera Docker (możesz określić niestandardowe polecenie)
  • Dołączony do działającego kontenera Docker i oglądaj na żywo podgląd dzienników

Portainer pozwala nam skonfigurować właścicieli każdego z zasobów zarządzanych przez Portainera, takich jak stosy, usługi Dockera i kontenery Dockera. Portainer udostępnia trzy opcje, których można użyć do wyboru właścicieli każdego z tych zasobów.

  • Pierwsza opcja to administrators, co oznacza, że ​​tylko administratorzy mogą zarządzać tym zasobem.
  • Druga to restrictedopcja. Ta opcja umożliwia ograniczenie zarządzania zasobem do określonej grupy użytkowników. Dozwolone jest przyznanie dostępu pojedynczemu użytkownikowi lub zespołom.
  • Trzecia opcja to public, co oznacza, że ​​każdy użytkownik mający dostęp do punktu końcowego Docker będzie mógł zarządzać zasobem.

Płatne rozszerzenia

Portainer można rozszerzyć, kupując i włączając dodatkowe wtyczki. Lista dostępnych wtyczek Portainer jest opisana poniżej.

Rozszerzenie Registry Manager

Ta wtyczka rozszerza Portainer i zapewnia użytkownikom końcowym możliwość przeglądania zdefiniowanych zewnętrznych rejestrów Dockera i zarządzania ich zasobami. Po zainstalowaniu i włączeniu wtyczki użytkownicy mogą przeglądać rejestry, przeglądać repozytoria i obrazy Dockera, manipulować tagami dołączonymi do repozytoriów i obrazów, dodawać nowe tagi, ponownie tagować obrazy i usuwać istniejące tagi.

Wtyczka Registry Manager ma prosty i intuicyjny interfejs graficzny, który ułatwia zarządzanie rejestrem Dockera i klastrami Swarm i można go wykonać z jednego interfejsu. Z drugiej strony nadal istnieje możliwość ulepszenia wtyczki. Na przykład wtyczka nie obsługuje automatyzacji czyszczenia rejestru Dockera i usuwania starych i niepotrzebnych obrazów Dockera. Ta funkcja jest bardzo ważna, jeśli rejestr Docker jest używany w procesie programowania, a inżynierowie budują obrazy platformy Docker z gałęzi funkcji aplikacji. W takim przypadku dobrze byłoby mieć we wtyczce funkcję usuwania wszystkich obrazów należących do gałęzi funkcji po 30 dniach.

Rozszerzenie kontroli dostępu opartej na rolach

Rozszerzenie kontroli dostępu opartej na rolach (RBAC) rozszerza funkcje autoryzacji Portainer i umożliwia użytkownikowi końcowemu przypisywanie ról użytkownikom lub zespołom w punkcie końcowym lub grupie punktów końcowych. Istnieje wiele różnych wstępnie zdefiniowanych ról, które są dostępne po zainstalowaniu i włączeniu wtyczki. Te role opisano poniżej.

  • Administrator punktu końcowego: ta rola zapewnia pełną kontrolę nad zasobami wdrożonymi w ramach danego punktu końcowego (nie obejmuje tylko zasobów i ustawień wewnętrznych Portainera).
  • Użytkownik standardowy: ta rola zapewnia pełną kontrolę nad zasobami wdrażanymi przez samego użytkownika lub jednego z członków zespołu, do którego należy użytkownik.
  • Helpdesk: ta rola zapewnia uprawnienia tylko do odczytu do wszystkich zasobów w wybranym punkcie końcowym.
  • Użytkownik tylko do odczytu: ta rola zapewnia uprawnienia tylko do odczytu dla podzbioru zasobów w wybranym punkcie końcowym.

Moim zdaniem ta wtyczka jest dobrym dodatkiem do interfejsu internetowego Portainer, brakuje mi jednak następujących funkcji, które mogłyby jeszcze bardziej ulepszyć tę wtyczkę.

  • Możliwość tworzenia ról niestandardowych
  • Możliwość nadawania użytkownikom uprawnień do zarządzania podzbiorem zasobów w punkcie końcowym

Ta wtyczka może służyć do rozszerzenia metod uwierzytelniania obsługiwanych przez Portainer. W przypadku, gdy wewnętrzne zarządzanie użytkownikami jest uważane za zbyt pracochłonne, a serwer LDAP jest niedostępny, tej wtyczki można użyć do zarządzania uwierzytelnianiem użytkowników za pomocą usługi OAuth.

Po zainstalowaniu i włączeniu wtyczki dostępna będzie dodatkowa opcja uwierzytelniania w ustawieniach Portainera. Opcja OAuth dodaje możliwość połączenia Portainer z Microsoft Azure AD, Google Suite / Cloud Authentication i GitHub Authentication. Ponadto wtyczka umożliwia korzystanie z opcji niestandardowej, w której można połączyć się z dowolnym dostawcą OAuth, wprowadzając prawidłowe pola URI.

Wniosek

Portainer to świetne narzędzie, które może być używane do zarządzania kontenerami Docker, usługami Swarm i innymi zasobami z prostego i intuicyjnego interfejsu użytkownika. Portainer zapewnia kilka bezpłatnych funkcji i płatnych wtyczek, które mogą zwiększyć wygodę użytkownika w zakresie zarządzania klastrami Docker. Z drugiej strony niektóre płatne wtyczki nadal mają pewne ograniczenia lub brakujące funkcje, które mogłyby ulepszyć produkt.

Dziękuje za przeczytanie!

Suggested posts

Wyszukiwanie informacji o nazwach domen

Fragment książki Small, Sharp Software Tools autorstwa Briana P. Hogana

Wyszukiwanie informacji o nazwach domen

Kiedy wysyłasz żądanie do facebook.com, Twój komputer wyszukuje nazwę domeny, aby przetłumaczyć tę nazwę domeny na adres IP, aby komputer mógł nawiązać to połączenie.

Darmowe programy techniczne, które pomogą Ci zdobyć role

Darmowe programy techniczne, które pomogą Ci zdobyć role

Kwestia cyberbezpieczeństwa jest problemem globalnym, a różne organizacje, rządy i organizacje pozarządowe zapewniają obecnie bezpłatne szkolenia i programy, aby zachęcić więcej osób do kontynuowania kariery w cyberbezpieczeństwie. Jako ktoś, kto skorzystał z bezpłatnych szkoleń i programów technicznych, przygotowałem listę bezpłatnych kursów, szkoleń, obozów szkoleniowych i staży, które mogą zainteresować innych.

Related posts

Serwery SSL odcisków palców przy użyciu JARM i Python

Przedstawiamy pyJARM, prosty sposób korzystania z JARM w Pythonie

Serwery SSL odcisków palców przy użyciu JARM i Python

Na początku listopada 2020 roku SalesForce ogłosił nowe aktywne narzędzie do pobierania odcisków palców TLS, o niewytłumaczalnej nazwie JARM. Założeniem JARM jest to, że jeśli serwer docelowy jest skanowany przy użyciu różnych niestandardowych pakietów TCP „Client hello”, otrzymane odpowiedzi można łączyć i mieszać w celu uzyskania odcisku palca wskazującego na udostępnioną lub podobną aplikację lub serwer stos.

3 cechy behawioralne wielkich programistów

3 cechy behawioralne wielkich programistów

Nietechniczne rzeczy, które sprawiają, że są świetnymi programistami. Odkładam pisanie tego artykułu przez jakiś czas - nigdy nie czułem się kwalifikowany, aby go napisać. Dziś pomyślałem, że czas to napisać.

Acing the Social Component of Technical Interviews

Wyzwania związane z programowaniem są stresujące, ale Twoja reakcja na stres przemawia głośniej niż kiedykolwiek potrafiłyby to Twoje umiejętności techniczne

Acing the Social Component of Technical Interviews

Podczas rozmowy kwalifikacyjnej na stanowisko w branży technologicznej zazwyczaj przechodzisz co najmniej trzy rundy rozmów kwalifikacyjnych, zanim jakakolwiek oferta zostanie rozpatrzona. Rundy zwykle wyglądają mniej więcej tak: Jeśli tak myślisz, to się mylisz.

5 najważniejszych wniosków z „Pragmatycznego programisty”

Kluczowe punkty z najlepiej sprzedającej się książki kodowania wszechczasów

5 najważniejszych wniosków z „Pragmatycznego programisty”

Pragmatic Programmer został opublikowany po raz pierwszy w 1999 roku i od tego czasu został uznany za najlepszą książkę o programowaniu wszechczasów. Autorzy Andy Hunt i David Thomas byli jednymi z oryginalnych autorów Manifestu Agile i mają poważne referencje.