Skupimy się tutaj na narzędziach Kubernetesa, które ułatwią deployment, zabezpieczanie i monitorowanie klastrów. Poprzednim razem pisałem o technologiach i narzędziach, które warto obserwować w 2021, co spotkało się z przychylnością ze strony społeczności DevOps i SRE. Dzisiaj więc skupię się na najlepszych, moim zdaniem, narzędziach do testów i developmentu.
Przez jakiś czas używałem tylko GKE - wydaje mi się, że rozpieściła mnie jego prostota i zarządzanie z poziomu konsoli GCP. Jeśli chodzi o lokalny development, to uruchamianie Kubernetes Dashboard zarządzanego przez społeczność zdawało się zadowalać większość moich potrzeb.
Ale w momencie, w którym zacząłem zarządzać środowiskami multi- i hybrid-cloud, to potrzebowałem jednego narzędzia do interakcji z GKE, EKS i z lokalnymi klastrami Minikube. Lens to otwarte IDE Kubernetesa, które sprawa, że przechodzenie pomiędzy wieloma klastrami oraz interakcja z aplikacjami po deploymencie jest niezwykle prosta.
Aqua Security również posiada rozszerzenie dla Starboard, które integruje szukanie luk w zabezpieczeniach - ułatwia to zarządzanie przepływem pracy DevSecOps.
Lens
Fairwinds i Aqua Security dostarczają kilka przydatnych narzędzi Kubernetesa do walidacji, skanowania i optymalizacji aplikacji:
Kyverno to projekt CNCF, którego celem jest uproszczenie zarządzania polityką Kubernetesa. Pomimo że Kubernetes ma PodSecurityPolicies i NetworkPolicies, które administratorzy i operatorzy mogą konfigurować, ciężko jest czasami poprawnie skonfigurować i przetestować politykę oraz zweryfikować zasoby.
Kyverno rozwiązuje powyższe problemy, tworząc ClusterPolicy CRD do walidacji i narzucenia pewnych zasad. Oto przykłady:
Istnieje naprawdę sporo narzędzi wiersza poleceń dla Kubernetesa, ale poniższe wydają mi się najlepsze:
Może się zdarzyć i tak, że w klastrze znajdą się bazy danych po deploymencie, których nie dostarcza Kubernetes service (np. NodePort, Ingress). Kubectl pozwala na port-forwarding do mapowania tych serwisów w localhost dla interakcji lokalnej. Ma to sens przy jednej, czy dwóch aplikacjach, ale gdy jest ich więcej, to Kube Forwarder staje się o wiele lepszy, niż używanie wielu zakładek terminala.
Obsługuje również auto-reconnect i multiklastry, co przydaje się przy przechodzeniu pomiędzy klastrami Dev i QA podczas testów.
Kube Forwarder
Uruchomienie Kubernetesa w AWS/GCP/Azure może szybko stać się kosztowne, podobnie zresztą, jak w przypadku jakiegokolwiek rodzaju cloud computingu.
Nawet po dostosowaniu klastra przy pomocy instancji spot/pre-emptible i korzystaniu z narzędzi do automatycznego skalowania w celu zredukowania ilości nieużywanych zasobów, łatwo jest pominąć zasoby bezczynne lub over-provisioned.
Kubecost monitoruje wydatki Kubernetesa i zapewnia ciągły raport na temat przydziału kosztów. Przy dużych projektach już pewnie pracuje zespół monitorujący koszty, ale w przypadku pracy w pojedynkę Kubecost pozwoli Ci uniknąć korzystania z narzędzi rozliczeniowych w chmurze.
Kubecost
Kubespy to narzędzie od Pulumi, które służy do obserwowania, jak zmieniają się zasoby używane przez Kubernetesa. Używa ono do tego Kubernetes API. Kubespy zapewnia bardziej szczegółowe informacje od kubectl get -w. Co więcej, wszystkie zmiany pokazują się w wierszu poleceń.
Okazało się, że narzędzie to przydaje się przy debugowaniu problemów z menedżerem certyfikatów i certyfikacją TLS. Jestem jednak pewny, że można go używać we wszystkich innych przypadkach debugowania w Kubernetesie.
Kubespy
Czy znacie jeszcze jakieś inne przydatne narzędzia? Dajcie znać w komentarzach.
Oryginał tekstu w języku angielskim możesz przeczytać tutaj.