Doładuj Kubernetes dzięki tym niesamowitym narzędziom

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!

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.