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.
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.