11 narzędzi, dzięki którym Kubernetes jest lepszy

11 narzędzi, dzięki którym Kubernetes jest lepszy

Nie wszystkie platformy serwerowe, nawet te najbardziej wydajne i skalowalne, w obecnej postaci zaspokajają wszystkie potrzeby. Chociaż Kubernetes działa świetnie samodzielnie, może brakować odpowiednich elementów, aby był kompletny. Zawsze znajdziesz specjalny przypadek, który zignoruje Twoje potrzeby lub w którym Kubernetes nie będzie działał na domyślnej instalacji, takiej jak obsługa baz danych lub działanie CD.

Tutaj pojawiają się dodatki, rozszerzenia i inne gadżety dla tego orkiestratora kontenerów, wspierane przez najszerszą społeczność. W tym artykule będzie 11 najlepszych rzeczy, jakie znaleźliśmy. Sami w tym jesteśmy Southbridge są bardzo ciekawe i planujemy zająć się nimi praktycznie - rozebrać je na śrubki i nakrętki i zobaczyć co jest w środku. Niektóre z nich doskonale uzupełnią każdy klaster Kubernetes, inne natomiast pomogą rozwiązać konkretne zadania, które nie są realizowane w typowej dystrybucji Kubernetes.

Gatekeeper: zarządzanie polityką

Projekt Agent otwartej polityki (OPA) zapewnia możliwość tworzenia zasad na stosach aplikacji w chmurze w Kubernetes, od ruchu przychodzącego po siatkę usług. Portier zapewnia Kubernetes natywną możliwość automatycznego egzekwowania zasad w klastrze, a także zapewnia kontrolę pod kątem wszelkich zdarzeń lub zasobów naruszających zasady. Wszystkim tym zajmuje się stosunkowo nowy mechanizm Kubernetesa, menedżer przyjęć webhooks, który uruchamia się w przypadku zmiany zasobów. Dzięki Gatekeeper zasady OPA stają się kolejną częścią stanu klastra Kubernetes bez konieczności stałego nadzoru.

Grawitacja: przenośne klastry Kubernetes

Jeśli chcesz wdrożyć aplikację w Kubernetes, wiele aplikacji ma wykres Helm, który prowadzi i automatyzuje ten proces. Ale co, jeśli chcesz wziąć swój klaster Kubernetes „tak jak jest” i wdrożyć go gdzie indziej?

Powaga wykonuje migawki klastrów Kubernetes, ich rejestr obrazów kontenerów, a także uruchomionych aplikacji zwanych „pakietami aplikacji”. Taki pakiet, który jest zwykłym plikiem .tar, może replikować klaster wszędzie tam, gdzie można uruchomić Kubernetes.

Gravity sprawdza również, czy infrastruktura docelowa zachowuje się tak samo jak infrastruktura źródłowa, a także czy środowisko Kubernetes na obiekcie docelowym jest dostępne. Płatna wersja Gravity dodaje także funkcje bezpieczeństwa, w tym RBAC i możliwość synchronizowania ustawień zabezpieczeń w różnych wdrożeniach klastrów.

Najnowsza wersja główna, Gravity 7, może wypchnąć obraz Gravity do istniejącego klastra Kubernetes, zamiast tworzyć z obrazu zupełnie nowy klaster. Gravity 7 może również współpracować z klastrami zainstalowanymi bez użycia obrazu Gravity. Gravity obsługuje również SELinux i współpracuje natywnie z bramką Teleport SSH.

Kaniko: Budowanie kontenerów w klastrze Kubernetes

Większość obrazów kontenerów jest zbudowana w systemach znajdujących się poza stosem kontenerów. Czasami jednak trzeba zbudować obraz wewnątrz stosu kontenerów, na przykład gdzieś w działającym kontenerze lub w klastrze Kubernetes.

Kaniko buduje kontenery w środowisku kontenerowym, ale bez uzależnienia od usługi konteneryzacji, takiej jak Docker. Zamiast tego Kaniko wyodrębnia system plików z obrazu podstawowego, wykonuje wszystkie polecenia budowania w przestrzeni użytkownika na wyodrębnionym systemie plików, po każdym poleceniu wykonując migawkę systemu plików.

Uwaga: Kaniko jest obecnie (maj 2020 r., około. tłumacz) nie można budować kontenerów systemu Windows.

Kubecost: opcje kosztów uruchomienia Kubernetes

Większość narzędzi administracyjnych Kubernetes koncentruje się na łatwości użytkowania, monitorowaniu, zrozumieniu zachowania wewnątrz poda i tak dalej. Co jednak z monitorowaniem kosztów – w rublach i kopiejek – związanych z uruchomieniem Kubernetesa?

Kubecost przetwarza parametry Kubernetes w czasie rzeczywistym, co skutkuje aktualnymi informacjami o kosztach działających klastrów u głównych dostawców usług w chmurze, wyświetlanymi w panelu z miesięcznymi kosztami na klaster. Ceny pamięci RAM, czasu procesora, procesora graficznego i podsystemu dyskowego są podzielone na komponenty Kubernetes (kontener, pod, usługę itp.)

Kubecost śledzi również koszt zasobów spoza klastra, takich jak segmenty Amazon S3, chociaż jest to ograniczone przez AWS. Dane o kosztach można wysłać do firmy Prometheus, dzięki czemu można ich użyć do programowej zmiany zachowania klastra.

Kubecost jest darmowy, jeśli masz wystarczająco dużo danych dziennika z 15 dni. Ceny dodatkowych funkcji zaczynają się od 199 USD miesięcznie za monitorowanie 50 węzłów.

KubeDB: Uruchamianie baz danych bitewnych w Kubernetesie

Bazy danych też trudno spektakularnie uruchomić w Kubernetesie. Znajdziesz operatory Kubernetes dla MySQL, PostgreSQL, MongoDB i Redis, ale wszystkie mają wady. Ponadto typowy zestaw funkcji Kubernetes nie rozwiązuje bezpośrednio większości zdefiniowanych problemów z bazami danych.

KubeDB pomaga tworzyć instrukcje Kubernetes do zarządzania bazami danych. Uruchamianie kopii zapasowych, klonowanie, monitorowanie, migawki i deklaratywne tworzenie baz danych to jego części składowe. Należy pamiętać, że obsługa funkcji zależy od bazy danych. Na przykład utworzenie klastra działa w przypadku PostgreSQL, ale nie w przypadku MySQL (już istnieje, jak słusznie zauważono dnbstd, około. tłumacz).

Kube-monkey: Małpa Chaosu dla Kubernetesa

Za najbardziej bezbłędną metodę testów warunków skrajnych uważa się losowe awarie. Teoria ta leży u podstaw opracowanego przez Netflix rozwiązania Chaos Monkey — chaotycznego narzędzia inżynieryjnego, które losowo zamyka maszyny wirtualne i kontenery środowiska produkcyjnego, aby „zachęcić” programistów do tworzenia bardziej odpornych systemów. kube-małpa - wdrożenie tej samej podstawowej teorii testów warunków skrajnych dla klastrów Kubernetes. Działa poprzez losowe zabijanie modułów w wyznaczonym klastrze, a także można ustawić uruchamianie w określonych odstępach czasu.

Kontroler ruchu przychodzącego Kubernetes dla AWS

Kubernetes zapewnia zewnętrzny moduł równoważenia obciążenia i usługi sieci klastrowej za pośrednictwem usługi o nazwie Ingres AWS zapewnia funkcje równoważenia obciążenia, ale nie łączy ich automatycznie z tymi samymi funkcjami Kubernetes. Kontroler ruchu przychodzącego Kubernetes dla AWS zamyka tę lukę.

Automatycznie zarządza zasobami AWS dla każdego ruchu przychodzącego w klastrze, tworząc moduły równoważenia obciążenia dla nowych zasobów przychodzących i usuwając moduły równoważenia obciążenia po usunięciu zasobów. Używa CloudFormation, aby upewnić się, że stan klastra pozostaje spójny. Obsługuje także ustawienia CloudWatch Alarm i automatycznie zarządza innymi elementami używanymi w klastrze, takimi jak certyfikaty SSL i grupy automatycznego skalowania EC2.

Kubespray: Automatyczna instalacja Kubernetesa

Kubespray automatyzuje instalację gotowego do produkcji klastra Kubernetes, od instalacji na serwerach sprzętowych po główne chmury publiczne. Wykorzystuje Ansible (opcjonalnie Vagrant) do szybkiego rozpoczęcia wdrożenia i utworzenia od podstaw klastra o wysokiej dostępności z wybranymi dodatkami sieciowymi (takimi jak Flannel, Calico itp.) w wybranej przez Ciebie popularnej dystrybucji Linuksa zainstalowanej na serwerach sprzętowych.

Skaffold: Iteracyjny rozwój dla Kubernetes

Rusztowanie - jedno z narzędzi Google służących do porządkowania płyt CD z aplikacjami w Kubernetesie. Gdy tylko dokonasz zmian w kodzie źródłowym, skaffold automatycznie to wykryje, rozpocznie budowanie i wdrażanie oraz ostrzeże Cię, jeśli wystąpią jakieś błędy. Skaffold działa całkowicie po stronie klienta, więc podczas instalacji lub aktualizacji mogą wystąpić pewne niuanse. Można go używać z istniejącymi potokami CICD, a także współdziałać z niektórymi zewnętrznymi narzędziami do kompilacji, głównie Bazel firmy Google.

Teresa: Najprostszy PaaS na Kubernetesie

Teresa to system wdrażania aplikacji, który uruchamia prosty PaaS na platformie Kubernetes. Użytkownicy zespołowi mogą wdrażać własne aplikacje i zarządzać nimi. Ułatwia to nieco pracę osobom, które ufają tej aplikacji i nie chcą zajmować się Kubernetesem i wszystkimi jego zawiłościami.

Przechyl: przesyłaj strumieniowo aktualizacje kontenerów do klastrów Kubernetes

Przechylić, opracowany przez Windmill Engineering, monitoruje zmiany w różnych plikach Dockerfile, a następnie stopniowo wdraża odpowiednie kontenery w klastrze Kubernetes. Zasadniczo pozwala aktualizować klaster produkcyjny w czasie rzeczywistym, po prostu aktualizując pliki Dockerfile. Tilt buduje się wewnątrz klastra, kod źródłowy to wszystko, co należy zmienić. Możesz także wykonać migawkę stanu klastra i przechwycić warunki błędów bezpośrednio z Tilt, aby udostępnić je członkom zespołu w celu debugowania.

PS Wszystkie te narzędzia wielokrotnie powtarzaliśmy Southbridge sondowaliśmy naszymi ciekawskimi rękami. Aby zaprezentować prawdziwe praktyki już (miejmy nadzieję!) na intensywnych zajęciach offline w lutym. Baza Kubernetesa 8–10 lutego 2021 r. I Kubernetes Mega 12–14 lutego. Szczerze mówiąc, tęskniliśmy też za ciepłą i pełną energii atmosferą nauki offline. Bez względu na to, jak zaawansowane są technologie, nie zastąpią one komunikacji międzyludzkiej na żywo i szczególnej atmosfery, gdy gromadzą się ludzie o podobnych poglądach.

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

Dodaj komentarz