Jak tworzyć CRD w Kubernetes

Jak tworzyć CRD w Kubernetes
Nauczmy się tworzyć CRD w Kubernetes w tym artykule. W tym samouczku poprowadzimy Cię, jak utworzyć CRD w Kubernetes, a następnie utworzyć kontroler Kubernetes, który zostanie użyty do obsługi żądań tworzenia instancji CRD. Demonstrowalibyśmy każdy krok za pomocą przykładów, aby pomóc Ci całkowicie zrozumieć działanie polegające na tworzeniu CRD wraz z obiektem kontrolera do obsługi CRD w Kubernetes. Więc zacznijmy!

Co jest CRD w Kubernetes?

CRD oznacza niestandardową definicję zasobów używaną dla nowych zasobów bez dodawania innego serwera API. Aby pracować z CRD, nie musisz rozumieć agregacji API. Jest to bardzo potężna funkcja wprowadzona w Kubernetes 1.7 do wysłania z różnymi wbudowanymi zasobami i obiektami API. Pozwala zdefiniować zasoby niestandardowe z wybranym schematem i nazwą.

CRD rozszerzają zdolności interfejsu API Kubernetes przekraczające domyślną instalację, wykorzystując niestandardowe definicje zasobów. Korzystając z CRD, możesz prowadzić Kubernetes w sposób, który może obsłużyć więcej niż tylko pojemniki. Możesz utworzyć niestandardowy zasób własnego wyboru i sprawić, by deklaracja za pomocą niestandardowych kontrolerów. Teraz dowiedzmy się, jak tworzyć niestandardową definicję zasobów, a następnie zaprojektuj niestandardowy kontroler do kontrolowania CRD. A następnie jak usunąć CDR, aby zobaczyć jego wpływ na Kubernetes.

Warunek wstępny

Zanim przejdziemy do etapów tworzenia i usunięcia CRD, upewnijmy się, że nasz system spełnia wszystkie potrzeby warunków wstępnych.

  • Ubuntu 20.04 lub jakakolwiek inna najnowsza wersja, która ma działać środowisko Linux/UNIX.
  • Kubernetes Cluster.
  • Kubectl CLI do korzystania z poleceń Kubectl, komunikacji klastra i zarządzania środowiskiem programistycznym.
  • Minikube lub jakikolwiek inny plac zabaw Kubernetes do tworzenia klastrów

Zainstaluj te narzędzia, jeśli jeszcze ich nie zainstalowałeś, przed przejściem do następnej sekcji.

Teraz przejdziemy do przewodnika krok po kroku, jak tworzyć CRD w Kubernetes.

Krok # 1: Rozpocznij Kubernetes

Aby pracować z CDRS, musisz mieć klaster z co najmniej dwoma węzłami Kubernetes, które nie działają jako hosty płaszczyzny sterowania. Używamy miniKube do tworzenia i używania klastra. Więc użyj polecenia podanego poniżej, aby uruchomić minikube:

> Minikube start

Po wykonaniu tego polecenia otrzymasz podobne dane wyjściowe do podanego poniżej:

Krok # 2: Otwórz lub utwórz plik konfiguracyjny

Teraz, gdy nasz minikube jest uruchomiony, otwórzmy plik konfiguracyjny. Polecenie „Nano” służy do otwarcia plików konfiguracyjnych. Wszystko, co musisz zrobić, to podać nazwę pliku obok polecenia Nano, a następnie rozszerzenie pliku i naciśnij Enter. Tutaj mamy „czerwony.plik YAML, który zawiera szczegóły konfiguracyjne do tworzenia CRD. Oto kompletne polecenie Nano, którego możesz użyć do otwarcia żądanego pliku:

> Nano Red.Yaml

Po wykonaniu tego polecenia w terminalu otworzy się następujący plik:

Krok # 3: Utwórz zasób punktu końcowego

Zasoby konfiguracyjne zostały zapisane na czerwono.Yaml. Będziemy używać tego do utworzenia nowego punktu końcowego API RESTFUL. Kubectl zapewnia polecenie „Zastosuj”, aby utworzyć punkt końcowy z pliku konfiguracyjnego. Oto pełne polecenie „Zastosuj” używane do utworzenia nowego API RESTFUL API:

> Kubectl Zastosuj -f czerwony.Yaml

Punkt końcowy utworzony przez to polecenie zostanie użyty do utworzenia niestandardowego obiektu, który będzie kontrolował CRD. Poniższe dane wyjściowe zostaną wygenerowane dla zasobu nazw

Krok # 4: Utwórz niestandardowy obiekt do sterowania CRD

CRD są kontrolowane przez niestandardowe obiekty. Możemy je utworzyć po utworzeniu niestandardowej definicji zasobów. Niestandardowe obiekty zawierają niestandardowe pola dowolnego JSON. Aby utworzyć niestandardowy obiekt, ponownie potrzebujemy pliku konfiguracyjnego YAML. Użyj polecenia „Nano”, aby utworzyć plik konfiguracyjny YAML:

> nano ct.Yaml

Zapisz wymagane pola z konkretnymi szczegółami w pliku YAML. Szczegóły konfiguracji próbki pokazano w poniższej próbce:

Teraz użyj tego samego pliku YAML, aby utworzyć niestandardowy obiekt. Użyj polecenia „Zastosuj”, aby utworzyć niestandardowy obiekt z określonego pliku YAML. Zobacz pełne polecenie podane poniżej:

> kubectl Zastosuj -f ct.Yaml

Po pomyślnym wykonaniu tego polecenia otrzymasz następujące dane wyjściowe:

Krok # 5: Zarządzaj CRD z obiektem niestandardowym

Niestandardowe obiekty służą do zarządzania CRD. Dowiedz się więc, w jaki sposób możemy wykorzystać niedawno utworzony obiekt niestandardowy do zarządzania już utworzonym CRD. Tutaj sprawdzimy szczegóły zawierające niestandardowy obiekt za pomocą polecenia „GET”. Zobacz polecenie podane w fragmencie kodu poniżej:

> kubectl zdobądź crontab

Po wykonaniu tego polecenia w terminalu minikube wygenerowane zostanie następujące dane wyjściowe:

Jeśli chcesz sprawdzić surowe dane zawarte w pliku YAML, możesz użyć tego polecenia:

> kubectl get ct -o yaml

Pokazuje to surowe dane w pliku YAML, jak podana poniżej próbka:

W ten sposób możemy stworzyć CRD i niestandardowy obiekt do zarządzania i kontrolowania utworzonego CRD. Teraz, jeśli chcesz usunąć utworzony CRD, możesz postępować zgodnie z podaną procedurą.

Jak usunąć CRD utworzone w Kubernetes?

Polecenia Kubectl pozwalają usunąć CRD w Kubernetes. Gdy próbujesz usunąć CRD w Kubernetes, powiązane z nim zasoby niestandardowe zostaną również usunięte. Kubectl zapewnia polecenie „Usuń” w celu usunięcia dowolnego zasobu. Polecenie podane poniżej służy do usunięcia CRD, który utworzyliśmy w powyższych krokach:

> kubectl usuń -f czerwony.Yaml

Po pomyślnym wykonaniu tego polecenia otrzymasz następujący wynik:

Teraz, gdy CRD i niestandardowe obiekty powiązane z nim zostały usunięte, otrzymasz błąd z serwera, jeśli spróbujesz uzyskać do niego dostęp. Zobacz polecenie podane poniżej, w którym staramy się uzyskać dostęp do API RESTFUL API:

> kubeclt zdobądź crontabs

Od czasu usunięcia „crontabs” serwer podnosi błąd tego działania. Zobacz dane wyjściowe tego polecenia podane poniżej:

Wniosek

Ten artykuł był szybkim przeglądem sposobu utworzenia niestandardowej definicji zasobów, sposobu utworzenia niestandardowego obiektu do kontrolowania CRD i sposobu usunięcia CRD z Kubernetes. Za pomocą przykładów przykładowych zademonstrowaliśmy każdy krok, aby pomóc Ci łatwo i szybko zrozumieć proces.