Ako vytvoriť CRD v Kubernetes

Ako Vytvorit Crd V Kubernetes



Naučme sa vytvárať CRD v Kubernetes v tomto článku. V tomto návode vás prevedieme, ako vytvoriť CRD v Kubernetes a potom vytvoriť ovládač Kubernetes, ktorý sa bude používať na spracovanie požiadaviek na vytvorenie inštancie CRD. Každý krok by sme demonštrovali pomocou príkladov, ktoré vám pomôžu úplne pochopiť fungovanie vytvárania CRD spolu s objektom regulátora na spracovanie CRD v Kubernetes. Tak začnime!

Čo je CRD v Kubernetes?

CRD znamená definíciu vlastného zdroja používanú pre nové zdroje bez pridania ďalšieho servera API. Ak chcete pracovať s CRD, nemusíte rozumieť agregácii API. Je to veľmi výkonná funkcia predstavená v Kubernetes 1.7, ktorá sa dodáva s rôznymi vstavanými zdrojmi a objektmi API. Umožňuje vám definovať vlastné zdroje so schémou a názvom podľa vášho výberu.

CRD rozširujú schopnosti Kubernetes API nad rámec predvolenej inštalácie využitím vlastných definícií prostriedkov. Použitím CRD môžete viesť Kubernetes spôsobom, ktorý zvládne viac než len kontajnery. Môžete si vytvoriť vlastný zdroj podľa vlastného výberu a urobiť ho deklaratívnym pomocou vlastných ovládačov. Teraz sa naučíme, ako vytvoriť vlastnú definíciu zdroja a potom navrhnúť vlastný ovládač na ovládanie CRD. A potom, ako odstrániť CDR, aby ste videli jeho vplyv na Kubernetes.







Predpoklad

Predtým, ako prejdeme ku krokom vytvárania a odstraňovania CRD, presvedčime sa, že náš systém spĺňa všetky požiadavky predpokladov.



  • Ubuntu 20.04 alebo akákoľvek iná najnovšia verzia, aby fungovalo prostredie Linux/Unix.
  • Klaster Kubernetes.
  • Kubectl CLI na používanie príkazov kubectl, klastrovú komunikáciu a správu vývojového prostredia.
  • minikube alebo akékoľvek iné ihrisko Kubernetes na vytváranie klastrov

Nainštalujte tieto nástroje, ak ste ich ešte nenainštalovali, skôr ako prejdete k ďalšej časti.



Teraz prejdeme k podrobnému sprievodcovi, ako vytvoriť CRD v Kubernetes.





Krok # 1: Spustite Kubernetes

Ak chcete pracovať s CDR, musíte mať klaster s aspoň dvoma uzlami Kubernetes, ktoré nepracujú ako hostitelia riadiacej roviny. Na vytvorenie a používanie klastra používame minikube. Na spustenie minikube teda použite príkaz uvedený nižšie:

> spustiť minikube

Po vykonaní tohto príkazu dostanete výstup podobný tomu uvedenému nižšie:



Krok č. 2: Otvorte alebo vytvorte konfiguračný súbor

Teraz, keď je náš minikube v prevádzke, otvorme konfiguračný súbor. Príkaz „nano“ sa používa na otvorenie konfiguračných súborov. Všetko, čo musíte urobiť, je zadať názov súboru vedľa príkazu nano, za ktorým nasleduje prípona súboru a stlačte kláves enter. Tu máme súbor „red.yaml“, ktorý obsahuje podrobnosti o konfigurácii na vytvorenie CRD. Tu je úplný príkaz nano, ktorý môžete použiť na otvorenie požadovaného súboru:

> nano red.yaml

Po vykonaní tohto príkazu sa vo vašom termináli otvorí nasledujúci súbor:

Krok č. 3: Vytvorte zdroj koncového bodu

Konfiguračné zdroje boli uložené v red.yaml. Použijeme to na vytvorenie nového koncového bodu RESTful API s menným priestorom. Kubectl poskytuje príkaz „apply“ na vytvorenie koncového bodu z konfiguračného súboru. Tu je úplný príkaz „použiť“, ktorý sa používa na vytvorenie nového RESTful API s menným priestorom:

> kubectl aplikovať -f red.yaml

Koncový bod vytvorený týmto príkazom sa použije na vytvorenie vlastného objektu, ktorý bude riadiť CRD. Pre zdroj s menným priestorom sa vygeneruje nasledujúci výstup:

Krok č. 4: Vytvorte si vlastný objekt na ovládanie CRD

CRD sú riadené vlastnými objektmi. Môžeme ich vytvoriť po vytvorení vlastnej definície zdroja. Vlastné objekty obsahujú vlastné polia ľubovoľného JSON. Na vytvorenie vlastného objektu opäť potrebujeme konfiguračný súbor YAML. Pomocou príkazu „nano“ vytvorte konfiguračný súbor YAML:

> nano ct.yaml

Uložte požadované polia so špecifickými podrobnosťami do súboru YAML. Podrobnosti o vzorovej konfigurácii sú uvedené v príklade nižšie:

Teraz použite ten istý súbor YAML na vytvorenie vlastného objektu. Pomocou príkazu „použiť“ vytvorte vlastný objekt zo zadaného súboru YAML. Pozrite si úplný príkaz uvedený nižšie:

> kubectl aplikovať -f ct.yaml

Po úspešnom vykonaní tohto príkazu dostanete nasledujúci výstup:

Krok č. 5: Spravujte CRD pomocou vlastného objektu

Vlastné objekty sa používajú na správu CRD. Poďme sa teda naučiť, ako môžeme využiť nedávno vytvorený vlastný objekt na správu už vytvoreného CRD. Tu skontrolujeme podrobnosti obsahujúce vlastný objekt pomocou príkazu „get“. Pozrite si príkaz uvedený v úryvku kódu nižšie:

> kubectl si crontab

Keď vykonáte tento príkaz v termináli minikube, vygeneruje sa nasledujúci výstup:

Ak chcete skontrolovať nespracované údaje obsiahnuté v súbore YAML, môžete použiť tento príkaz:

> kubectl dostať ct - yaml

Toto ukáže nespracované údaje v súbore YAML, ako je vzor uvedený nižšie:

Takto môžeme vytvoriť CRD a vlastný objekt na správu a kontrolu vytvoreného CRD. Teraz, ak chcete vymazať vytvorené CRD, môžete postupovať podľa nižšie uvedeného postupu.

Ako odstrániť CRD vytvorené v Kubernetes?

Príkazy kubectl vám umožňujú odstrániť CRD v Kubernetes. Keď sa pokúsite odstrániť CRD v Kubernetes, odstránia sa aj vlastné zdroje, ktoré sú s ním spojené. Kubectl poskytuje príkaz „delete“ na odstránenie akéhokoľvek prostriedku. Príkaz uvedený nižšie sa používa na odstránenie CRD, ktoré sme vytvorili v krokoch vyššie:

> kubectl zmazať -f red.yaml

Po úspešnom vykonaní tohto príkazu získate nasledujúci výsledok:

Teraz, keď boli CRD a s ním spojené vlastné objekty vymazané, pri pokuse o prístup k nemu server dostanete chybu. Pozrite si príkaz uvedený nižšie, kde sa pokúšame získať prístup k RESTful API v mennom priestore:

> kubeclt dostať crontabs

Keďže „crontabs“ boli vymazané, server zobrazí chybu pre túto akciu. Pozrite si výstup tohto príkazu uvedený nižšie:

Záver

Tento článok bol rýchlym prehľadom o tom, ako vytvoriť definíciu vlastného zdroja, ako vytvoriť vlastný objekt na ovládanie CRD a ako odstrániť CRD z Kubernetes. Pomocou vzorových príkladov sme demonštrovali každý krok, aby sme vám pomohli proces ľahko a rýchlo pochopiť.