Wprowadzono Polaris, aby utrzymać klastry Kubernetes w dobrym stanie

Notatka. przeł.: Oryginał tego tekstu został napisany przez Roba Scotta, czołowego inżyniera SRE w firmie ReactiveOps, która stoi za rozwojem zapowiadanego projektu. Idea scentralizowanej walidacji tego, co wdrażane jest na Kubernetesie, jest nam bardzo bliska, dlatego z zainteresowaniem śledzimy tego typu inicjatywy.

Wprowadzono Polaris, aby utrzymać klastry Kubernetes w dobrym stanie

Miło mi przedstawić Polaris to projekt typu open source, który pomaga utrzymać dobrą kondycję klastra Kubernetes. Stworzyliśmy Polaris, aby zautomatyzować niektóre najlepsze praktyki stosowane w ReactiveOps, aby zapewnić bezpieczne i niezawodne działanie klastrów wśród dużej liczby klientów. Czas otworzyć kod źródłowy.

Raz po raz widzieliśmy, że pozornie drobne błędy konfiguracyjne prowadzą do poważnych problemów, które nie pozwalają inżynierom spać po nocach. Coś bardzo prostego - na przykład konfiguracja żądań zasobów, które zostały zapomniane z powodu zapomnienia (żądania zasobów) — może przerwać automatyczne skalowanie, a nawet spowodować, że obciążenia pozostaną bez zasobów. Jeśli wcześniej drobne błędy w konfiguracji prowadziły do ​​przerw w produkcji, teraz Polaris pozwala całkowicie im zapobiec.

Polaris pomaga uniknąć problemów konfiguracyjnych, które wpływają na stabilność, niezawodność, skalowalność i bezpieczeństwo aplikacji. Ułatwia identyfikację błędów w konfiguracjach wdrożeniowych i zapobieganie przyszłym problemom. Dzięki Polaris możesz spać spokojnie, wiedząc, że Twoje aplikacje są wdrażane przy użyciu zestawu dobrze przetestowanych standardów.

Polaris składa się z dwóch kluczowych komponentów:

  1. panel monitorujący, który dostarcza informacji o tym, jak dobrze skonfigurowane są istniejące wdrożenia w klastrze;
  2. eksperymentalny testowy webhook, który zapobiega wdrażaniu wdrożeń, które nie spełniają przyjętego standardu.

Panel Polarisa

Pulpit nawigacyjny Polaris został stworzony, aby zapewnić prosty i wizualny sposób sprawdzenia bieżącego stanu wdrożeń Kubernetes i uzyskania rekomendacji ulepszeń. Zapewnia pełny przegląd klastra, a także dzieli wyniki według kategorii, przestrzeni nazw i wdrożenia.

Wprowadzono Polaris, aby utrzymać klastry Kubernetes w dobrym stanie

Domyślne standardy Polarisa są dość wysokie, więc nie zdziw się, jeśli Twój wynik będzie niższy, niż się spodziewałeś. Głównym celem Polarisa jest wyznaczanie wysokich standardów i dążenie do doskonałej konfiguracji domyślnej. Jeśli proponowana konfiguracja wydaje się zbyt sztywna, można ją poprawić w procesie konfiguracji wdrożenia, optymalizując ją pod kątem konkretnych obciążeń.

W ramach publikacji Polaris postanowiliśmy nie tylko zaprezentować samo narzędzie, ale także szczegółowo opisać testy, które się w nim znajdują. Każda recenzja zawiera link do powiązanej dokumentacji, która wyjaśnia, dlaczego uważamy, że jest ona ważna, i zawiera linki do dodatkowych zasobów na ten temat.

Webhook Polaris

Jeśli dashboard pomaga uzyskać przegląd bieżącej konfiguracji wdrożeń, to webhook zapewnia zgodność ze standardami dla wszystkich wdrożeń, które zostaną wdrożone w klastrze.

Po naprawieniu problemów zidentyfikowanych na pulpicie nawigacyjnym możesz użyć webhooka, aby mieć pewność, że konfiguracja nigdy więcej nie spadnie poniżej ustalonego standardu. Webhook nie pozwoli na wdrożenia w klastrze, którego konfiguracja zawiera istotne odchylenia (poziom „błędu”).

Potencjał tego webhooka jest ekscytujący, ale nadal będzie wymagał szeroko zakrojonych testów, aby można go było uznać za gotowy do produkcji. Jest to obecnie funkcja eksperymentalna i część zupełnie nowego projektu Open Source. Ponieważ może to zakłócać aktualizację wdrożeń, należy używać go ostrożnie.

Pierwsze kroki

Mam nadzieję, że skoro nadal czytasz to ogłoszenie, Polaris jest narzędziem, które może Ci się przydać. Chcesz sam wypróbować Dashboard? Wdrożenie panelu w klastrze jest bardzo łatwe. Jest instalowany z minimalnymi uprawnieniami (tylko do odczytu), a wszystkie dane pozostają w środku. Aby wdrożyć Dashboard za pomocą kubectl, uruchom:

kubectl apply -f https://raw.githubusercontent.com/reactiveops/polaris/master/deploy/dashboard.yaml

Teraz musisz skonfigurować przekierowanie portów, aby uzyskać dostęp do pulpitu nawigacyjnego przez lokalny port 8080:

kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80

Oczywiście istnieje wiele innych sposobów wykorzystania i wdrożenia Polaris, w tym za pomocą Helma. Możesz dowiedzieć się o tym i wiele więcej od Repozytorium Polaris na GitHubie.

To dopiero początek

Jesteśmy podekscytowani tym, co do tej pory zbudowało Polaris, ale na tym historia się nie kończy. Po drodze jest wiele nowych testów, które chcielibyśmy dodać, aby rozszerzyć funkcjonalność. Szukamy także lepszego sposobu na wdrożenie reguł sprawdzania wyjątków na poziomie przestrzeni nazw lub zasobów. Jeśli chcesz uzyskać więcej informacji na temat naszych planów, sprawdź mapa drogowa.

Jeśli masz wrażenie, że Polaris może być przydatny, poświęć trochę czasu i wypróbuj go. Chętnie przyjmiemy wszelkie pomysły, opinie, pytania lub prośby o ściągnięcie. Możesz się z nami skontaktować pod adresem strona projektuw GitHub lub Twitter.

PS od tłumacza

Przeczytaj także na naszym blogu:

Źródło: www.habr.com

Dodaj komentarz