Jak utworzyć CRD w Kubernetes

Jak Utworzyc Crd W Kubernetes



W tym artykule nauczymy się tworzyć CRD w Kubernetes. W tym samouczku poprowadzimy Cię, jak utworzyć CRD w Kubernetes, a następnie utworzyć kontroler Kubernetes, który będzie używany do obsługi żądań tworzenia instancji CRD. Zademonstrujemy każdy krok za pomocą przykładów, aby pomóc Ci w pełni zrozumieć działanie tworzenia CRD wraz z obiektem kontrolera do obsługi CRD w Kubernetes. Zacznijmy więc!

Co to jest CRD w Kubernetes?

CRD to skrót od Custom Resource Definition, używany do nowych zasobów bez dodawania kolejnego serwera API. Aby pracować z CRD, nie musisz rozumieć agregacji API. Jest to bardzo potężna funkcja wprowadzona w Kubernetes 1.7, która ma być dostarczana z różnymi wbudowanymi zasobami i obiektami API. Pozwala na zdefiniowanie niestandardowych zasobów z wybranym schematem i nazwą.

CRD rozszerzają możliwości Kubernetes API poza domyślną instalację, wykorzystując niestandardowe definicje zasobów. Korzystając z CRD, możesz poprowadzić Kubernetes w sposób, który poradzi sobie nie tylko z kontenerami. Możesz utworzyć niestandardowy zasób według własnego wyboru i uczynić go deklaratywnym przy użyciu niestandardowych kontrolerów. Teraz nauczmy się, jak utworzyć niestandardową definicję zasobu, a następnie zaprojektować niestandardowy kontroler do sterowania CRD. A następnie, jak usunąć CDR, aby zobaczyć jego wpływ na Kubernetes.







Warunek wstępny

Zanim przejdziemy do kroków tworzenia i usuwania CRD, upewnijmy się, że nasz system spełnia wszystkie wymagania wstępne.



  • Ubuntu 20.04 lub jakakolwiek inna najnowsza wersja do pracy w środowisku Linux/Unix.
  • Klaster Kubernetes.
  • Kubectl CLI do używania poleceń kubectl, komunikacji klastrowej 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: Uruchom Kubernetes

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

> uruchom minikuba

Po wykonaniu tego polecenia otrzymasz wynik podobny do tego podanego poniżej:



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

Teraz, gdy nasz minikube jest już uruchomiony, otwórzmy plik konfiguracyjny. Polecenie „nano” służy do otwierania plików konfiguracyjnych. Wszystko, co musisz zrobić, to podać nazwę pliku obok polecenia nano, a następnie rozszerzenie pliku i nacisnąć enter. Tutaj mamy plik „red.yaml”, który zawiera szczegóły konfiguracji do tworzenia CRD. Oto kompletne polecenie nano, którego możesz użyć do otwarcia żądanego pliku:

> nano czerwony.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 w pliku red.yaml. Będziemy go używać do tworzenia nowego punktu końcowego interfejsu API RESTful z przestrzenią nazw. Kubectl udostępnia polecenie „zastosuj”, aby utworzyć punkt końcowy z pliku konfiguracyjnego. Oto pełne polecenie „zastosuj”, które jest używane do tworzenia nowego interfejsu API RESTful z przestrzenią nazw:

> kubectl stosuje się -f czerwony.yaml

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

Krok # 4: Utwórz obiekt niestandardowy, aby kontrolować CRD

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

> nano ct.yaml

Zapisz wymagane pola z określonymi szczegółami w pliku YAML. Przykładowe szczegóły konfiguracji przedstawiono w poniższym przykładzie:

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

> kubectl stosuje się -f ct.yaml

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

Krok 5: Zarządzaj CRD za pomocą obiektu niestandardowego

Obiekty niestandardowe służą do zarządzania CRD. Nauczmy się więc, jak możemy wykorzystać niedawno utworzony obiekt niestandardowy do zarządzania już utworzonym CRD. Tutaj sprawdzimy szczegóły zawierające obiekt niestandardowy za pomocą polecenia „get”. Zobacz polecenie podane we fragmencie kodu poniżej:

> kubectl pobiera crontab

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

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

> kubectl pobierz ct -The yaml

Spowoduje to wyświetlenie nieprzetworzonych danych w pliku YAML, takich jak próbka podana poniżej:

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

Jak usunąć CRD utworzone w Kubernetes?

Polecenia kubectl umożliwiają usuwanie CRD w Kubernetes. Gdy spróbujesz usunąć CRD w Kubernetes, powiązane z nim zasoby niestandardowe również zostaną usunięte. Kubectl udostępnia polecenie „usuń”, aby usunąć dowolny zasób. 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 powiązane z nim obiekty niestandardowe zostały usunięte, przy próbie uzyskania do niego dostępu wystąpi błąd z serwera. Zobacz polecenie podane poniżej, w którym próbujemy uzyskać dostęp do interfejsu API RESTful z przestrzenią nazw:

> kubeclt pobiera crontaby

Ponieważ „crontabs” został usunięty, serwer zgłosi błąd dla tej akcji. Zobacz wynik tego polecenia podany poniżej:

Wniosek

Ten artykuł zawierał krótkie omówienie sposobu tworzenia niestandardowej definicji zasobu, tworzenia niestandardowego obiektu kontrolującego CRD oraz usuwania CRD z Kubernetes. Za pomocą przykładowych przykładów zademonstrowaliśmy każdy krok, aby pomóc Ci łatwo i szybko zrozumieć proces.