Został zaprezentowany Polaris, aby utrzymać klastry Kubernetes w dobrym stanie

Przyp. tłum.: Oryginał tego tekstu napisał Rob Scott — główny inżynier SRE w firmie ReactiveOps, która stoi za opracowaniem zapowiadanego projektu. Bliska jest nam idea centralizowanej walidacji tego, co jest wdrażane w Kubernetes, dlatego z zainteresowaniem obserwujemy podobne inicjatywy.

Został zaprezentowany Polaris, aby utrzymać klastry Kubernetes w dobrym stanie

Z przyjemnością przedstawiam Polaris — projekt z otwartym kodem źródłowym, który pomaga w utrzymaniu „zdrowia” klastra Kubernetes. Stworzyliśmy Polaris w celuautomatyzacji niektórych z najlepszych praktyk stosowanych w ReactiveOps do utrzymania bezpiecznej i niezawodnej pracy klastrów dla wielu klientów. Nadszedł czas na udostępnienie kodu źródłowego.

Powtórnie byliśmy świadkami tego, jak pozornie drobne błędy w konfiguracji prowadziły do poważnych problemów, które uniemożliwiały inżynierom spokojny sen. Coś zupełnie prostego — na przykład przeoczenie konfiguracji żądań zasobów (resource requests) — mogło złamać automatyczne skalowanie i nawet prowadzić do sytuacji, w której obciążenia pozostawały bez zasobów. Jeśli niegdyś drobne niedopatrzenia w konfiguracji prowadziły do problemów z działaniem production, to teraz Polaris pozwala całkowicie je wyeliminować.

Polaris pomaga uniknąć problemów z konfiguracją, które wpływają na stabilność, niezawodność, skalowalność i bezpieczeństwo Twoich aplikacji. Umożliwia łatwe identyfikowanie wad w konfiguracji wdrożeń i zapobieganie przyszłym problemom. Dzięki Polaris można bezpiecznie spać, wiedząc, że aplikacje są wdrażane według zestawu sprawdzonych standardów.

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

  1. panelu monitorowania, który dostarcza informacji o tym, jak poprawnie skonfigurowane są istniejące w klastrze wdrożenia;
  2. eksperymentalnego weryfikującego webhooka, zapobiegającego wdrażaniu deploymentów, które nie spełniają przyjętych standardów.

Polaris Dashboard

Panel w Polaris został stworzony, aby w prosty i przejrzysty sposób zobaczyć aktualny stan wdrożeń w Kubernetes i uzyskać rekomendacje dotyczące usprawnień. Zapewnia pełny przegląd klastra oraz segreguje wyniki według kategorii, przestrzeni nazw i wdrożeń.

Został zaprezentowany Polaris, aby utrzymać klastry Kubernetes w dobrym stanie

Domyślne standardy ustalone w Polaris są wystarczająco wysokie, więc nie zdziw się, jeśli ocena będzie niższa od oczekiwanej. Głównym celem Polaris jest ustalanie wysokich standardów i dążenie do doskonałej konfiguracji domyślnej. Jeśli proponowana konfiguracja wydaje się zbyt sztywna, można ją dostosować podczas konfigurowania wdrożenia, optymalizując pod kątem konkretnych obciążeń roboczych.

W ramach publikacji Polaris postanowiliśmy nie tylko zaprezentować same narzędzie, ale również szczegółowo opisać testy, które zostały w niego włączone. Każda kontrola zawiera link do odpowiedniej dokumentacji, w której wyjaśniamy, dlaczego uważamy to za istotne, oraz podajemy odnośniki do dodatkowych zasobów na ten temat.

Polaris Webhook

Podczas gdy panel monitorowania pomaga uzyskać przegląd bieżącej konfiguracji wdrożeń, webhook zapewnia przestrzeganie standardów dla wszystkich wdrożeń, które będą wprowadzone do klastra.

Po usunięciu problemów zidentyfikowanych przez panel monitorowania możesz skorzystać z webhooka, aby zapewnić, że konfiguracja nigdy więcej nie spadnie poniżej ustalonego standardu. Webhook nie pozwoli na wdrażanie w klastrze wdrożeń, których konfiguracja zawiera istotne odchylenia (na poziomie „błąd”).

Potencjał tego webhooka jest inspirujący, jednak aby uznać go za gotowy do produkcji, wymaga jeszcze dokładnego testowania. Obecnie jest to funkcjonalność eksperymentalna i część zupełnie nowego projektu Open Source. Ponieważ może to zakłócić aktualizację wdrożeń, używaj go ostrożnie.

Rozpoczęcie pracy

Mam nadzieję, że skoro nadal czytasz to ogłoszenie, Polaris to narzędzie, które może być dla Ciebie przydatne. Chcesz samodzielnie wypróbować Dashboard? Uruchomienie panelu w klastrze jest bardzo proste. Instalacja odbywa się z minimalnymi uprawnieniami (tylko do odczytu), a wszystkie dane pozostają wewnątrz. Aby uruchomić Dashboard za pomocą kubectl, wykonaj:

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

Teraz musisz skonfigurować przekierowanie portów, aby uzyskać dostęp do Dashboard 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 przy użyciu Helm. O tym i wielu innych rzeczach można się dowiedzieć z repozytorium Polaris na GitHubie.

To dopiero początek

Cieszymy się z tego, co udało nam się już wdrożyć w Polaris, ale to nie koniec tej historii. W kolejce czeka wiele nowych testów, które chcielibyśmy dodać, aby zwiększyć funkcjonalność. Szukamy również najlepszego sposobu implementacji zasad weryfikacji wyjątków na poziomie przestrzeni nazw lub zasobów. Jeśli chcesz uzyskać dodatkowe informacje na temat naszych planów, zapoznaj się z mapą drogową.

Jeśli masz wrażenie, że Polaris może być przydatny — prosimy, znajdź czas, aby go wypróbować. Chętnie przyjmiemy wszelkie pomysły, opinie, pytania lub zgłoszenia pull. Możesz się z nami skontaktować na stronie projektu, w GitHub lub na Twitter.

P.S. od tłumacza

Przeczytaj także na naszym blogu:

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster