W tym artykule przedstawimy kilka niesamowitych narzędzi, które można połączyć z Kubernetes, aby dodać do niego więcej mocy.
Pracując w ekosystemie DevOps, zdasz sobie sprawę, jak ważne jest posiadanie niesamowitych narzędzi DevOps, aby ułatwić ręczne ładowanie. Mnóstwo narzędzi DevOps jest dostępnych dla każdego etapu DevOps i różnych funkcjonalności.
Kubernetes jest jednym z niezbędnych, jeśli pracujesz w domenie DevOps i uruchamiasz swoje aplikacje w kontenerach. Istnieją setki narzędzi, które współpracują z Kubernetes, aby dodać więcej funkcji. Mowa o narzędziach do lepszego zarządzania, bezpieczeństwa, dashboardu, monitorowania klastra Kubernetes.
Oto lista takich niesamowitych narzędzi, które dodają więcej mocy do Kubernetes.
Zacznijmy!
Spis treści:
Hełm
Hełm to menedżer pakietów dla Kubernetes, który ułatwia przyjmowanie aplikacji i usług, które są wysoce powtarzalne lub są używane w wielu różnych scenariuszach, co ułatwia ich wdrożenie w typowym klastrze Kubernetes. Używając Helm, możesz znajdować, udostępniać i używać oprogramowania stworzonego dla Kubernetes.
Wykorzystuje wykresy zwane Helm Charts do definiowania, instalowania i aktualizowania złożonych aplikacji Kubernetes.
Funkcje steru:
- Dba o całą złożoność aplikacji Kubernetes za pomocą wykresów
- Używa uaktualnień i niestandardowych haków, aby łatwo aktualizować rzeczy.
- Wykresy można łatwo udostępniać na serwerach publicznych lub prywatnych.
- Łatwe przywracanie za pomocą jednego polecenia
- Poprawia produktywność programistów i zwiększa gotowość operacyjną
Zgłaszający
Zgłaszający jest Progresywnym Operatorem Dostaw dla Kubernetes.
Automatyzuje promocję wdrożeń kanaryjskich za pomocą Istio, App Mesh, Nginx, Linkerd, Contour, Gloo, routingu Skippera do zmiany ruchu i Prometheusa do analizy kanarków. We wdrożeniu canary udostępniasz wersje małej grupie użytkowników, testujesz je, jeśli działa dobrze, udostępniasz je wszystkim.
Wykorzystuje siatkę usług działającą w klastrze do zarządzania ruchem między jednym wdrożeniem a drugim. W celu przeniesienia ruchu do Canary mierzy wskaźniki wydajności, takie jak średni czas trwania żądań, wskaźnik powodzenia żądań HTTP, stan pod itp.
Flagger może przeprowadzać zautomatyzowaną analizę, promocję i wycofywanie aplikacji dla kilku strategii wdrażania, takich jak Canary, testy A/B, wdrażanie Blue/Green.
Kubewatch
Kubewatch jest open-source’owym obserwatorem Kubernetes, który wysyła powiadomienie przez kanał Slack.
Jest napisany w programowaniu Go i opracowany przez Bitnami Labs. Służy do monitorowania zasobów Kubernetes i powiadamia o zmianach.
Możesz zainstalować Kubewatch za pomocą kubectl lub za pomocą wykresów steru. Jest łatwy do zrozumienia i ma bardzo łatwy w użyciu interfejs. Oprócz luzu obsługuje również HipChat, Mattermost, Flock, webhook i SMTP.
W zależności od tego, które Kubernetes chcesz monitorować, możesz ustawić wartość true lub false dla tych zasobów w pliku ConfigMap. Po ustawieniu konfiguracji kubewatch i uruchomieniu poda, zaczniesz otrzymywać powiadomienia o wydarzeniu Kubernetes, jak pokazano poniżej.
Gitkube
Gitkube to narzędzie, które wykorzystuje git push do tworzenia i wdrażania obrazów dockera na Kubernetes. Posiada trzy komponenty – Remote, gitkube-controller, gitkubed. Remote składa się z niestandardowych zasobów zarządzanych przez gitkube-controller. gitkube-controller wysyła zmiany do gitkubed, który następnie buduje obraz docker i wdraża go.
Funkcje Gitkube:
- Łatwy w instalacji, plug and play
- Zapewnia kontrolę dostępu opartą na rolach dla bezpieczeństwa
- Proste uwierzytelnianie za pomocą klucza publicznego
- Obsługiwana jest przestrzeń nazw dla wielu dzierżawców
- Żadnych dodatkowych zależności poza kubectl i git
Kube-state-metrics
Kube-state-metrics to usługa, która generuje metryki obiektów stanu, nasłuchując serwera API Kubernetes. Służy do sprawdzania kondycji różnych obiektów, takich jak węzły, zasobniki, przestrzenie nazw i wdrożenia. Dostarcza surowe, niezmodyfikowane dane z API Kubernetes.
Poniżej znajdują się informacje dostarczane przez kube-state-metrics:
- Zadania Cron i status pracy
- Status kapsuł (gotowy, uruchomiony itp.)
- Żądania zasobów i ich zakres
- Pojemność węzła i jego status
- Specyfikacja zestawów replik
Kamus
Kamus to narzędzie GitOps o otwartym kodzie źródłowym, które służy do szyfrowania i deszyfrowania sekretów dla aplikacji Kubernetes. Zaszyfrowane sekrety, które wykonuje Kamus, mogą być odszyfrowane tylko przez aplikacje działające w klastrze Kubernetes. Do szyfrowania sekretów wykorzystuje AES, Google Cloud KMS, Azure KeyVault. Możesz rozpocząć pracę z Kamusem, korzystając z wykresu steru.
Kamus jest dostarczany z dwoma narzędziami – Kamus CLI i Kamus init container. Kamus CLI służy do integracji z encrypt API, a kontener init Kamus służy do integracji z deszyfrowaniem API.
Zwykłe klucze tajne Kubernetes nie są szyfrowane; są zakodowane w base64. Nie możesz go zachować na Git takim, jakim jest; to nie jest bezpieczne. Każdy, kto ma dostęp do repozytorium, będzie mógł korzystać z tych sekretów. Dlatego potrzebne jest odpowiednie rozwiązanie do szyfrowania/odszyfrowywania, takie jak Kamus. Zapewnia również model zagrożeń, który zajmuje się zagrożeniami i zabezpiecza sekrety.
Untrak
Untrak to narzędzie o otwartym kodzie źródłowym używane w Kubernetes do wyszukiwania nieśledzonych zasobów i zbierania ich. Pomaga znaleźć i usunąć te pliki z klastra, które nie są śledzone.
Po wstrzyknięciu manifestów do potoku CI/CD przy użyciu aplikacji kubectl lub szablonu helm Kubernetes nie wie, kiedy obiekt zostanie usunięty z repozytorium. Po usunięciu obiektów nie są one śledzone w procesie dostarczania i nadal znajdują się w klastrze Kubernetes.
Wykonuje polecenie wewnętrznie za pomocą prostego pliku konfiguracyjnego untrak.yaml, aby znaleźć zasoby, które nie są już częścią zarządzania kodem źródłowym.
Zakres
Zakres splotu służy do wizualizacji, monitorowania i rozwiązywania problemów Docker i Kubernetes.
Pokazuje widok z góry na twoją skonteneryzowaną aplikację i całą infrastrukturę, za pomocą której możesz łatwo zidentyfikować problemy i je zdiagnozować.
Uruchamianie aplikacji architektury mikrousług w kontenerach dockera nie jest takie proste. Komponenty tutaj są bardzo dynamiczne i trudne do monitorowania. Dzięki zakresowi weave możesz łatwo rozwiązywać problemy z wyciekami pamięci i kontrolować zużycie procesora, wizualizować wąskie gardła w sieci.
Funkcje zakresu:
- Pomaga monitorować kontenery dockera w czasie rzeczywistym
- Zapewnia łatwą nawigację pomiędzy procesami uruchomionymi w kontenerach
- Pokazuje użycie procesora i pamięci pod kątem hosta lub usługi
- Restartuj, zatrzymuj lub wstrzymuj kontenery za pomocą interfejsu wiersza polecenia bez opuszczania okna przeglądarki zakresu.
- Obsługuje niestandardowe wtyczki, aby uzyskać więcej informacji na temat kontenerów, procesów i hostów
Pulpit nawigacyjny Kubernetes
Pulpit nawigacyjny Kubernetes to interfejs sieciowy dostarczany przez Kubernetes. Służy do wdrażania, rozwiązywania problemów i zarządzania aplikacją kontenerową w klastrze Kubernetes. Zawiera wszystkie informacje o klastrze, takie jak szczegóły dotyczące węzłów, przestrzeni nazw, ról, obciążeń itp.
Możesz użyć wykresów helm do wdrożenia pulpitu nawigacyjnego Kubernetes lub użyć prostego polecenia kubectl wymienionego poniżej:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
Kops
Kops oznacza operacje Kubernetes, projekt open-source używany do bardzo łatwego i szybkiego konfigurowania gotowych do produkcji klastrów Kubernetes. Kops może być używany do wdrażania klastrów Kubernetes głównie na AWS i GCE.
Niewielki klaster Kubernetes jest łatwy do utworzenia i utrzymania, ale podczas skalowania klastra dodawanych jest wiele konfiguracji i zarządzanie operacyjne staje się trudne. Kops to narzędzie, które pomaga rozwiązać takie problemy. Jest zgodny z podejściem opartym na konfiguracji, w którym klaster jest zawsze aktualny i bezpieczny.
Kops ma również wiele backendów sieciowych, a wybranie jednego z nich, w zależności od przypadku użycia, ułatwia konfigurowanie różnych typów klastrów.
cDoradca
cDoradca to narzędzie typu open source do monitorowania kontenera. Służy do zrozumienia charakterystyki wydajności i wykorzystania zasobów kontenerów działających w klastrze.
Działa na poziomie węzła i może automatycznie wykrywać wszystkie kontenery działające na określonym węźle i gromadzi statystyki dotyczące pamięci, systemu plików, procesora i sieci. Zapewnia interfejs sieciowy, który pokazuje aktualne dane wszystkich kontenerów w klastrze.
Aby rozpocząć pracę z cAdvisor, musisz uruchomić jego obraz dokowany google/cadvisor, a następnie możesz uzyskać do niego dostęp pod adresem http://localhost:8080 w przeglądarce internetowej.
Kubespray
Kubespray to darmowe narzędzie, które powstało z połączenia playbooków Ansible i Kubernetes. Służy do zarządzania cyklem życia klastra Kubernetes.
Korzystając z Kubespray, możesz szybko wdrożyć klaster i dostosować wszystkie parametry implementacji klastra, takie jak tryby wdrażania, wtyczki sieciowe, konfiguracja DNS, wersje komponentów, metody generowania certyfikatów itp.
Wystarczy uruchomić jeden prosty podręcznik ansible-playbook, aby Twój klaster był gotowy do pracy. Możesz łatwo skalować lub uaktualnić swój klaster Kubernetes.
K9s
K9s to narzędzie typu open source oparte na terminalu, a jego narzędzie do pulpitu nawigacyjnego może robić wszystko, co robi internetowy interfejs użytkownika Kubernetes. Służy do nawigacji, obserwowania i zarządzania aplikacją wdrożoną w klastrze Kubernetes.
Funkcje K9s:
- Śledź swój klaster w czasie rzeczywistym
- Dostosuj wyświetlanie na podstawie zasobów
- Powiększ, aby zobaczyć problemy z zasobami klastra
- Obsługuje kontrolę dostępu opartą na rolach
- Wbudowane testy porównawcze do sprawdzania wydajności zasobów
Kubetail
Kubetail to prosty skrypt bash, który służy do agregowania dzienników z wielu podów w jednym strumieniu.
Bardzo przydatne!
Pomaga w łatwym debugowaniu.
Najnowsza wersja Kubetail posiada również funkcje podświetlania i filtrowania. Ta funkcja umożliwia wykonanie kolorowania dziennika. Korzystając z homebrew, możesz zainstalować Kubetail za pomocą jednego polecenia. Możesz dodać wartości domyślne w zmiennych środowiskowych, które Kubetail może odczytać, np. KUBETAIL_NAMESPACE, KUBETAIL_TAIL, KUBETAIL_SKIP_COLORS itp.
Potężna pieczęć
Potężna pieczęć to open-source, potężne narzędzie do inżynierii chaosu napisane w Pythonie dla klastrów Kubernetes.
Inżynieria chaosu służy do uzyskania pewności systemu w celu sprawdzenia jego zdolności do radzenia sobie z problematycznymi sytuacjami w produkcji. Wstrzykuje awarię do klastra Kubernetes w celu jak najwcześniejszego zidentyfikowania w nim problemów.
Jest inspirowany Netflix Chaos Monkey i służy do poprawy odporności Kubernetes. Korzystając z PowerfulSeal, inżynierowie świadomie próbują zepsuć elementy klastra, aby sprawdzić, jak reaguje system.
PowerfulSeal działa w trzech trybach – Autonomous, Interactive, Label.
W trybie autonomicznym wykonuje scenariusze, odczytując podany plik strategii. W trybie interaktywnym informuje o składnikach klastra, które ręcznie próbujesz przerwać. W trybie etykiet zabijasz docelowe obiekty w klastrze, takie jak pody, używając etykiet.
Popeye
Popeye to narzędzie czyszczące, które działa jak środek odkażający 🧼 dla klastrów Kubernetes.
Skanuje cały klaster i zgłasza problemy związane z konfiguracjami i zasobami. Pomaga wykonać najlepsze praktyki w klastrze Kubernetes, aby uniknąć typowych problemów.
To narzędzie jest dostępne dla systemów Windows, Linux i macOS. Obecnie działa tylko z węzłami, podami, przestrzeniami nazw, usługami. Korzystając z Popeye, możesz łatwo zidentyfikować martwe i nieużywane zasoby, niezgodności portów, reguły RBAC, wykorzystanie metryk i wiele więcej.
Wniosek
Narzędzia DevOps odgrywają kluczową rolę w sukcesie i mam nadzieję, że powyższe pomoże Ci lepiej zarządzać Kubernetes.