Cum se creează CRD în Kubernetes

Cum Se Creeaza Crd In Kubernetes



Să învățăm să creăm CRD în Kubernetes în acest articol. În acest tutorial, vă vom ghida despre cum să creați CRD în Kubernetes și apoi să creați un controler Kubernetes care va fi folosit pentru a gestiona solicitările de creare a instanțelor CRD. Vom demonstra fiecare pas cu ajutorul exemplelor pentru a vă ajuta să înțelegeți complet funcționarea creării CRD împreună cu obiectul controler pentru a gestiona CRD în Kubernetes. Deci haideți să începem!

Ce este CRD în Kubernetes?

CRD reprezintă definiția personalizată a resurselor, utilizată pentru resurse noi fără a adăuga un alt server API. Pentru a lucra cu CRD-uri, nu trebuie să înțelegeți agregarea API. Este o caracteristică foarte puternică introdusă în Kubernetes 1.7 pentru a fi livrată cu diverse resurse încorporate și obiecte API. Vă permite să definiți resurse personalizate cu o schemă și un nume la alegere.

CRD-urile extind abilitățile API-ului Kubernetes, depășind instalarea implicită, utilizând definițiile personalizate ale resurselor. Folosind CRD-uri, puteți ghida Kubernetes într-un mod care poate gestiona mai mult decât containere. Puteți crea o resursă personalizată la alegere și o puteți face declarativă utilizând controlerele personalizate. Acum, să învățăm cum să creăm o definiție personalizată a resursei și apoi să proiectăm un controler personalizat pentru a controla CRD. Și apoi cum să ștergeți CDR pentru a vedea impactul acestuia asupra Kubernetes.







Condiție prealabilă

Înainte de a trece la pașii de creare și ștergere a CRD, permiteți-ne să ne asigurăm că sistemul nostru îndeplinește toate cerințele prealabile.



  • Ubuntu 20.04 sau orice altă versiune recentă pentru a avea un mediu Linux/Unix care să funcționeze.
  • cluster Kubernetes.
  • Kubectl CLI pentru a utiliza comenzile kubectl, comunicarea în cluster și pentru a gestiona mediul de dezvoltare.
  • minikube sau orice alt loc de joacă Kubernetes pentru crearea clusterelor

Instalați aceste instrumente, dacă nu le-ați instalat încă, înainte de a trece la următoarea secțiune.



Acum, vom trece la ghidul pas cu pas despre cum să creați CRD-uri în Kubernetes.





Pasul # 1: Porniți Kubernetes

Pentru a lucra cu CDR-uri, trebuie să aveți un cluster cu cel puțin două noduri Kubernetes care nu funcționează ca gazde ale planului de control. Folosim minikube pentru a crea și folosi clusterul. Deci, utilizați comanda dată mai jos pentru a porni minikube:

> porniți minikube

Când executați această comandă, veți obține o ieșire similară cu cea de mai jos:



Pasul # 2: Deschideți sau creați un fișier de configurare

Acum că minikube-ul nostru este în funcțiune, haideți să deschidem fișierul de configurare. Comanda „nano” este folosită pentru a deschide fișierele de configurare. Tot ce trebuie să faceți este să furnizați numele fișierului lângă comanda nano, urmat de extensia fișierului și să apăsați Enter. Aici avem fișierul „red.yaml” care conține detaliile de configurare pentru crearea CRD-urilor. Iată comanda completă nano pe care o puteți folosi pentru a deschide fișierul dorit:

> nano roșu.yaml

Când executați această comandă, următorul fișier se va deschide în terminalul dvs.:

Pasul # 3: Creați o resursă de punct final

Resursele de configurare au fost salvate în red.yaml. Vom folosi asta pentru a crea noul punct final API RESTful spațial de nume. Kubectl oferă comanda „aplica” pentru a crea un punct final dintr-un fișier de configurare. Iată comanda completă „aplicare” care este utilizată pentru a crea noul API RESTful spațial de nume:

> se aplică kubectl -f roșu.yaml

Punctul final creat de această comandă va fi folosit pentru a crea obiectul personalizat care va controla CRD. Următoarea ieșire va fi generată pentru resursa cu spații de nume:

Pasul # 4: Creați un obiect personalizat pentru a controla CRD

CRD-urile sunt controlate de obiectele personalizate. Le putem crea după ce a fost creată definiția personalizată a resursei. Obiectele personalizate conțin câmpurile personalizate ale JSON arbitrar. Pentru a crea obiectul personalizat, avem nevoie din nou de un fișier de configurare YAML. Utilizați comanda „nano” pentru a crea fișierul de configurare YAML:

> nano ct.yaml

Salvați câmpurile obligatorii cu detaliile specifice în fișierul YAML. Detaliile de configurare ale eșantionului sunt afișate în exemplul de mai jos:

Acum, utilizați același fișier YAML pentru a crea obiectul personalizat. Utilizați comanda „aplica” pentru a crea obiectul personalizat din fișierul YAML specificat. Vedeți comanda completă dată mai jos:

> se aplică kubectl -f ct.yaml

După executarea cu succes a acestei comenzi, veți obține următoarea ieșire:

Pasul # 5: Gestionați CRD-ul cu un obiect personalizat

Obiectele personalizate sunt folosite pentru a gestiona CRD-urile. Deci, să învățăm cum putem utiliza obiectul personalizat recent creat pentru a gestiona CRD-ul deja creat. Aici, vom verifica detaliile care conțin obiectul personalizat folosind comanda „get”. Vedeți comanda dată în fragmentul de cod de mai jos:

> kubectl obține crontab

Când executați această comandă în terminalul minikube, va fi generată următoarea ieșire:

Dacă doriți să verificați datele brute conținute în fișierul YAML, atunci puteți utiliza această comandă:

> kubectl obține ct -The yaml

Aceasta va afișa datele brute din fișierul YAML, ca exemplul de mai jos:

Acesta este modul în care putem crea CRD-ul și un obiect personalizat pentru a gestiona și controla CRD-ul creat. Acum, dacă doriți să ștergeți CRD-ul creat, atunci puteți urma procedura de mai jos.

Cum să ștergeți CRD-urile create în Kubernetes?

Comenzile kubectl vă permit să ștergeți CRD-urile din Kubernetes. Când încercați să ștergeți CRD-ul în Kubernetes, resursele personalizate asociate cu acesta vor fi, de asemenea, șterse. Kubectl oferă comanda „șterge” pentru a șterge orice resursă. Comanda dată mai jos este folosită pentru a șterge CRD-ul pe care l-am creat în pașii de mai sus:

> kubectl șterge -f roșu.yaml

După executarea cu succes a acestei comenzi, veți obține următorul rezultat:

Acum că CRD-ul și obiectele personalizate asociate cu acesta au fost șterse, veți primi o eroare de la server dacă încercați să îl accesați. Vedeți comanda dată mai jos unde încercăm să accesăm API-ul RESTful spațial de nume:

> kubeclt obține crontabs

Deoarece „crontabs” au fost șterse, serverul va genera eroarea pentru această acțiune. Vedeți rezultatul acestei comenzi prezentate mai jos:

Concluzie

Acest articol a fost o prezentare rapidă a modului de creare a definiției personalizate a resursei, a modului de a crea un obiect personalizat pentru a controla CRD-urile și a modului de ștergere a CRD-ului din Kubernetes. Cu ajutorul exemplelor de exemple, am demonstrat fiecare pas pentru a vă ajuta să înțelegeți procesul ușor și rapid.