‫CRD i wzorzec operatora.
‫To właśnie w Kubernetes sprawy stają się
‫naprawdę interesujące. Ponieważ kiedy zaczynamy
‫dodawać wszystkie narzędzia innych firm, a wszystkie interfejsy API
‫są dostępne w Kubernetes, aby je rozszerzyć.
‫Sam Kubernetes staje się własną platformą do robienia rzeczy, do
‫których nigdy nie został zaprojektowany lub nigdy nie sądziłeś,
‫że może to zrobić.
‫Po pierwsze, jeśli do tej pory nie zdawałeś sobie
‫sprawy z tego kursu, możesz dodać rzeczy innych firm do Kubernetes.
‫Nie korzysta tylko z interfejsu API Kubernetes.
‫Teraz dzięki niestandardowym zasobom i niestandardowym kontrolerom możesz
‫zmienić interfejs API.
‫Możesz faktycznie użyć interfejsu API,
‫aby go rozszerzyć. Następnie nawet kubectl
‫w wierszu polecenia otrzymuje nowe polecenia i może zobaczyć nowe
‫typy zasobów i nowe kontrolery. Kilka lat temu
‫CoreOS opublikował fajny artykuł na temat
‫wzorca operatora, który był ich sposobem na
‫implementację niestandardowych zasobów i niestandardowych
‫kontrolerów w sposób, który pozwoliłby zasadniczo korzystać
‫z wcześniej skomplikowanego oprogramowania w Kubernetes,
‫ale że Kubernetes jest świadomy tego
‫oprogramowania. Być może,
‫jeśli masz złożony system monitorowania, taki
‫jak Prometheus, i chciałbyś go wdrożyć, uruchomić,
‫aktualizować i po prostu robić z
‫nim wszystkie rzeczy, niekoniecznie musisz nauczyć
‫się różnych części i jak działają w Kubernetes.
‫Niektóre z nich mogą wymagać StatefulSet.
‫Niektóre mogą wymagać wdrożeń i usług.
‫Niektórzy mogą potrzebować w tym jakiejś pracy crona.
‫Mam na myśli wszystkie te rodzaje zasobów, które mogą
‫być potrzebne do uzyskania w pełni funkcjonalnego rozwiązania
‫do monitorowania.
‫To tylko jeden przykład.
‫Zasadniczo jest teraz całe to oprogramowanie, które
‫przyjmuje ten wzorzec i implementuje własny kod w
‫Kubernetes, aby go rozszerzyć.
‫Zasadniczo daje ci polecenia kubectl do
‫obsługi tych narzędzi, tak jakby były
‫natywnie częścią samej Kubernetes.
‫Dzieje się tak w przypadku wszelkiego rodzaju rzeczy typu open source, ponieważ
‫można dodawać te rzeczy w ... w zasobach zobaczysz mnóstwo list
‫i różnych stron internetowych, w których możesz
‫znaleźć te rzeczy.
‫Myślicie o nich jako o naprawdę skomplikowanych
‫plikach YAML, które nie tylko pozwalają ci coś wdrożyć,
‫a potem po prostu działają, ale w rzeczywistości
‫otrzymują polecenia i inne API, które
‫wychodzą poza sam Kubernetes.
‫To dość ekscytujący obszar, ponieważ jest raczej
‫nowy i pokazuje, że Kubernetes przejmuje
‫wszystko. Nie ma ograniczeń
‫co do tego, czego nie może zarządzać i kontrolować.
‫Powiedziałbym, że oczywiście nie chcesz dodawać wszystkiego
‫tutaj, ponieważ każdy z nich
‫dodałby własne informacje do Kubernetes do bazy danych ETCD,
‫rozszerzył API i płaszczyznę sterowania i tak dalej.
‫Może to być potencjalny
‫obszar, w którym jeśli dodasz zbyt dużo, skończysz
‫ze zbyt dużą złożonością samego systemu.
‫W tej chwili, przynajmniej w odniesieniu do takich
‫rzeczy, jak monitorowanie, bazy danych, kopie zapasowe i rejestrowanie,
‫to są obszary, w których skupiłbym się na
‫szukaniu wdrożeń CRD i typu wzorca operatora,
‫a nie tylko na znalezieniu YAML, który widziałeś w Internecie
‫i mówiąc, chcę wdrożyć to
‫z tym plikiem YAML.
‫To daje mu więcej inteligencji.
‫Każdy z nich zawiera wiele zasobów
‫i oczywiście każdy z nich miałby inną
‫implementację i zastosowanie. Zdecydowanie polecam ich sprawdzenie teraz, gdy
‫już istnieją.