CRD maken in Kubernetes

Crd Maken In Kubernetes



Laten we in dit artikel leren hoe u de CRD in Kubernetes maakt. In deze zelfstudie laten we u zien hoe u CRD maakt in Kubernetes en vervolgens een Kubernetes-controller maakt die wordt gebruikt om de aanvragen voor het maken van instanties van CRD af te handelen. We zouden elke stap demonstreren met behulp van voorbeelden om u te helpen de werking van het maken van de CRD volledig te begrijpen, samen met het controller-object om CRD in Kubernetes af te handelen. Dus laten we beginnen!

Wat is CRD in Kubernetes?

CRD staat voor Custom Resource Definition die wordt gebruikt voor nieuwe bronnen zonder een andere API-server toe te voegen. Om met CRD's te werken, hoeft u API-aggregatie niet te begrijpen. Het is een zeer krachtige functie die is geïntroduceerd in Kubernetes 1.7 en wordt geleverd met verschillende ingebouwde bronnen en API-objecten. Hiermee kunt u aangepaste bronnen definiëren met een schema en naam naar keuze.

CRD's breiden de Kubernetes API-mogelijkheden verder uit dan de standaardinstallatie door gebruik te maken van de aangepaste resourcedefinities. Door gebruik te maken van CRD's kun je Kubernetes sturen op een manier die meer aankan dan alleen containers. U kunt een aangepaste bron naar eigen keuze maken en deze declaratief maken met behulp van de aangepaste controllers. Laten we nu leren hoe we een aangepaste resourcedefinitie kunnen maken en vervolgens een aangepaste controller kunnen ontwerpen om de CRD te besturen. En vervolgens hoe u CDR verwijdert om de impact ervan op Kubernetes te zien.







Eerste vereiste

Voordat we verder gaan met de stappen voor het maken en verwijderen van de CRD, moeten we ervoor zorgen dat ons systeem aan alle vereisten voldoet.



  • Ubuntu 20.04 of een andere nieuwste versie om een ​​Linux/Unix-omgeving te laten werken.
  • Kubernetes-cluster.
  • Kubectl CLI om kubectl-opdrachten te gebruiken, clustercommunicatie te gebruiken en de ontwikkelomgeving te beheren.
  • minikube of een andere Kubernetes-speeltuin voor het maken van de clusters

Installeer deze hulpprogramma's, als u ze nog niet hebt geïnstalleerd, voordat u doorgaat naar de volgende sectie.



Nu gaan we verder met de stapsgewijze handleiding voor het maken van CRD's in Kubernetes.





Stap #1: Start Kubernetes

Om met CDR's te werken, moet u een cluster hebben met ten minste twee Kubernetes-knooppunten die niet werken als hosts op het besturingsvlak. We gebruiken de minikube om het cluster te maken en te gebruiken. Gebruik dus de onderstaande opdracht om de minikube te starten:

> start minikube

Wanneer u deze opdracht uitvoert, krijgt u een vergelijkbare uitvoer als hieronder:



Stap # 2: Open of maak een configuratiebestand

Nu onze minikube actief is, kunnen we het configuratiebestand openen. De opdracht ‘nano’ wordt gebruikt om de configuratiebestanden te openen. Het enige dat u hoeft te doen, is de bestandsnaam naast het nano-commando op te geven, gevolgd door de bestandsextensie en op Enter te drukken. Hier hebben we het bestand 'red.yaml' dat de configuratiedetails bevat voor het maken van de CRD's. Hier is de volledige nano-opdracht die u kunt gebruiken om uw gewenste bestand te openen:

> nano rood.yaml

Wanneer u deze opdracht uitvoert, wordt het volgende bestand geopend in uw terminal:

Stap # 3: maak een eindpuntbron

De configuratiebronnen zijn opgeslagen in de red.yaml. We zullen dat gebruiken om het nieuwe RESTful API-eindpunt met naamruimte te maken. Kubectl biedt de opdracht 'apply' om een ​​eindpunt te maken op basis van een configuratiebestand. Hier is de volledige 'apply'-opdracht die wordt gebruikt om de nieuwe namespaced RESTful API te maken:

> kubectl toepassen -f rood.yaml

Het eindpunt dat met deze opdracht wordt gemaakt, wordt gebruikt om het aangepaste object te maken dat de CRD bestuurt. De volgende uitvoer wordt gegenereerd voor de resource met naamruimte:

Stap # 4: maak een aangepast object om de CRD te besturen

De CRD's worden bestuurd door de aangepaste objecten. We kunnen ze maken zodra de aangepaste resourcedefinitie is gemaakt. De aangepaste objecten bevatten de aangepaste velden van willekeurige JSON. Om het aangepaste object te maken, hebben we opnieuw een YAML-configuratiebestand nodig. Gebruik de opdracht 'nano' om het YAML-configuratiebestand te maken:

> nano ct.yaml

Sla de vereiste velden met de specifieke details op in het YAML-bestand. De details van de voorbeeldconfiguratie worden weergegeven in het onderstaande voorbeeld:

Gebruik nu datzelfde YAML-bestand om het aangepaste object te maken. Gebruik de opdracht 'apply' om het aangepaste object te maken van het opgegeven YAML-bestand. Zie de volledige opdracht hieronder:

> kubectl toepassen -f ct.yaml

Na succesvolle uitvoering van deze opdracht krijgt u de volgende uitvoer:

Stap # 5: beheer de CRD met een aangepast object

De aangepaste objecten worden gebruikt om de CRD's te beheren. Laten we dus leren hoe we het recent gemaakte aangepaste object kunnen gebruiken om de reeds gemaakte CRD te beheren. Hier gaan we de details van het aangepaste object controleren met behulp van de opdracht 'get'. Zie de opdracht in het onderstaande codefragment:

> kubectl krijgt crontab

Wanneer u deze opdracht uitvoert in de minikube-terminal, wordt de volgende uitvoer gegenereerd:

Als u de onbewerkte gegevens in het YAML-bestand wilt controleren, kunt u deze opdracht gebruiken:

> kubectl krijg ct -De yaml

Hierdoor worden de onbewerkte gegevens in het YAML-bestand weergegeven, zoals het onderstaande voorbeeld:

Dit is hoe we de CRD en een aangepast object kunnen maken om de gemaakte CRD te beheren en te controleren. Als u nu de gemaakte CRD wilt verwijderen, kunt u de onderstaande procedure volgen.

Hoe verwijder ik de CRD's die in Kubernetes zijn gemaakt?

Met de kubectl-opdrachten kunt u de CRD's in Kubernetes verwijderen. Wanneer u probeert de CRD in Kubernetes te verwijderen, worden de bijbehorende aangepaste resources ook verwijderd. De kubectl biedt de opdracht 'verwijderen' om een ​​bron te verwijderen. De onderstaande opdracht wordt gebruikt om de CRD te verwijderen die we in de bovenstaande stappen hebben gemaakt:

> kubectl verwijderen -f rood.yaml

Na succesvolle uitvoering van deze opdracht krijgt u het volgende resultaat:

Nu de CRD en de bijbehorende aangepaste objecten zijn verwijderd, krijgt u een foutmelding van de server als u probeert toegang te krijgen. Zie de onderstaande opdracht waar we proberen toegang te krijgen tot de namespaced RESTful API:

> kubeclt krijgt crontabs

Aangezien de 'crontabs' zijn verwijderd, zal de server de fout voor deze actie genereren. Zie de uitvoer van deze opdracht hieronder:

Gevolgtrekking

Dit artikel was een kort overzicht van het maken van de aangepaste resourcedefinitie, het maken van een aangepast object om de CRD's te beheren en het verwijderen van de CRD uit Kubernetes. Met behulp van voorbeeldvoorbeelden hebben we elke stap gedemonstreerd om u te helpen het proces gemakkelijk en snel te begrijpen.