Paano Gumawa ng CRD sa Kubernetes

Paano Gumawa Ng Crd Sa Kubernetes



Matuto tayong gumawa ng CRD sa Kubernetes sa artikulong ito. Sa tutorial na ito, gagabayan ka namin kung paano gumawa ng CRD sa Kubernetes at pagkatapos ay gumawa ng controller ng Kubernetes na gagamitin para pangasiwaan ang mga kahilingan sa paglikha ng instance ng CRD. Ipapakita namin ang bawat hakbang sa tulong ng mga halimbawa upang matulungan kang lubos na maunawaan ang paggawa ng CRD kasama ang controller object para pangasiwaan ang CRD sa Kubernetes. Kaya simulan na natin!

Ano ang CRD sa Kubernetes?

Ang CRD ay kumakatawan sa Custom Resource Definition na ginagamit para sa mga bagong mapagkukunan nang hindi nagdaragdag ng isa pang API server. Upang gumana sa mga CRD, hindi mo kailangang maunawaan ang pagsasama-sama ng API. Ito ay isang napakalakas na tampok na ipinakilala sa Kubernetes 1.7 na ipapadala kasama ng iba't ibang in-built na mapagkukunan at mga object ng API. Binibigyang-daan ka nitong tukuyin ang mga custom na mapagkukunan gamit ang isang schema at pangalan na iyong pinili.

Pinapalawak ng mga CRD ang mga kakayahan ng Kubernetes API na lumampas sa default na pag-install sa pamamagitan ng paggamit ng mga custom na kahulugan ng mapagkukunan. Sa pamamagitan ng paggamit ng mga CRD, maaari mong gabayan ang Kubernetes sa paraang makakayanan ng higit pa sa mga container. Maaari kang lumikha ng custom na mapagkukunan na gusto mo at gawin itong deklaratibo sa pamamagitan ng paggamit ng mga custom na controller. Ngayon, alamin natin kung paano gumawa ng custom na resource definition at pagkatapos ay magdisenyo ng custom na controller para kontrolin ang CRD. At kung paano tanggalin ang CDR para makita ang epekto nito sa Kubernetes.







Prerequisite

Bago tayo magpatuloy sa mga hakbang sa paggawa at pagtanggal ng CRD, tiyakin nating natutugunan ng ating system ang lahat ng pangangailangan ng mga kinakailangan.



  • Ubuntu 20.04 o anumang iba pang pinakabagong bersyon upang magkaroon ng Linux/Unix environment para gumana.
  • Kubernetes cluster.
  • Kubectl CLI para gumamit ng kubectl command, cluster communication, at pamahalaan ang development environment.
  • minikube o anumang iba pang palaruan ng Kubernetes para sa paglikha ng mga kumpol

I-install ang mga tool na ito, kung hindi mo pa na-install ang mga ito, bago magpatuloy sa susunod na seksyon.



Ngayon, magpapatuloy tayo sa sunud-sunod na gabay sa kung paano gumawa ng mga CRD sa Kubernetes.





Hakbang # 1: Simulan ang Kubernetes

Upang gumana sa mga CDR, dapat ay mayroon kang isang cluster na may hindi bababa sa dalawang Kubernetes node na hindi gumagana bilang control plane host. Ginagamit namin ang minikube para gumawa at gumamit ng cluster. Kaya, gamitin ang utos na ibinigay sa ibaba upang simulan ang minikube:

> simulan ang minikube

Kapag isinagawa mo ang utos na ito, makakakuha ka ng katulad na output sa ibinigay sa ibaba:



Hakbang # 2: Buksan o Gumawa ng Configuration File

Ngayong gumagana na ang aming minikube, buksan natin ang configuration file. Ang utos na 'nano' ay ginagamit upang buksan ang mga file ng pagsasaayos. Ang kailangan mo lang gawin ay ibigay ang pangalan ng file sa tabi ng command na nano na sinusundan ng extension ng file at pindutin ang enter. Dito, mayroon kaming 'red.yaml' na file na naglalaman ng mga detalye ng configuration para sa paggawa ng mga CRD. Narito ang kumpletong utos ng nano na magagamit mo upang buksan ang iyong nais na file:

> nano pula.yaml

Kapag isinagawa mo ang utos na ito, magbubukas ang sumusunod na file sa iyong terminal:

Hakbang # 3: Gumawa ng Endpoint Resource

Ang mga mapagkukunan ng pagsasaayos ay na-save sa red.yaml. Gagamitin namin iyon para gumawa ng bagong namespaced na RESTful API endpoint. Nagbibigay ang Kubectl ng command na 'mag-apply' upang lumikha ng isang endpoint mula sa isang configuration file. Narito ang kumpletong command na 'mag-apply' na ginagamit upang lumikha ng bagong namespaced na RESTful API:

> kubectl apply -f pula.yaml

Ang endpoint na ginawa ng command na ito ay gagamitin upang lumikha ng custom na object na kumokontrol sa CRD. Ang sumusunod na output ay bubuo para sa namespaced na mapagkukunan:

Hakbang # 4: Gumawa ng Custom na Bagay para Kontrolin ang CRD

Ang mga CRD ay kinokontrol ng mga pasadyang bagay. Maaari naming gawin ang mga ito kapag nagawa na ang custom na resource definition. Ang mga custom na bagay ay naglalaman ng mga custom na field ng arbitrary na JSON. Upang gawin ang custom na object, kailangan namin muli ng YAML configuration file. Gamitin ang command na 'nano' upang lumikha ng YAML configuration file:

> nano ct.yaml

I-save ang mga kinakailangang field na may mga partikular na detalye sa YAML file. Ang mga detalye ng sample ng configuration ay ipinapakita sa sample sa ibaba:

Ngayon, gamitin ang parehong YAML file upang lumikha ng custom na bagay. Gamitin ang command na 'apply' para likhain ang custom na object mula sa tinukoy na YAML file. Tingnan ang kumpletong utos na ibinigay sa ibaba:

> kubectl apply -f ct.yaml

Sa matagumpay na pagpapatupad ng utos na ito, makakakuha ka ng sumusunod na output:

Hakbang # 5: Pamahalaan ang CRD gamit ang Custom na Bagay

Ang mga pasadyang bagay ay ginagamit upang pamahalaan ang mga CRD. Kaya, alamin natin kung paano natin magagamit ang kamakailang nilikhang custom na bagay upang pamahalaan ang nagawa nang CRD. Dito, susuriin natin ang mga detalyeng naglalaman ng custom na bagay sa pamamagitan ng paggamit ng command na 'get'. Tingnan ang utos na ibinigay sa snippet ng code sa ibaba:

> kubectl kumuha ng crontab

Kapag isinagawa mo ang command na ito sa minikube terminal, ang sumusunod na output ay bubuo:

Kung gusto mong suriin ang raw data na nilalaman sa YAML file, maaari mong gamitin ang command na ito:

> kubectl kumuha ng ct -Ang yaml

Ipapakita nito ang raw data sa YAML file tulad ng sample na ibinigay sa ibaba:

Ganito tayo makakagawa ng CRD at isang custom na object para pamahalaan at kontrolin ang ginawang CRD. Ngayon, kung gusto mong tanggalin ang nilikhang CRD, maaari mong sundin ang pamamaraang ibinigay sa ibaba.

Paano Tanggalin ang Mga CRD na Nilikha sa Kubernetes?

Binibigyang-daan ka ng mga kubectl command na tanggalin ang mga CRD sa Kubernetes. Kapag sinubukan mong tanggalin ang CRD sa Kubernetes, tatanggalin din ang mga custom na mapagkukunang nauugnay dito. Ang kubectl ay nagbibigay ng utos na 'tanggalin' upang tanggalin ang anumang mapagkukunan. Ang utos na ibinigay sa ibaba ay ginagamit upang tanggalin ang CRD na aming nilikha sa mga hakbang sa itaas:

> kubectl tanggalin -f pula.yaml

Sa matagumpay na pagpapatupad ng utos na ito, makukuha mo ang sumusunod na resulta:

Ngayon na ang CRD at ang mga custom na bagay na nauugnay dito ay tinanggal na, makakakuha ka ng isang error mula sa server kung susubukan mong i-access ito. Tingnan ang utos na ibinigay sa ibaba kung saan sinusubukan naming i-access ang namespaced RESTful API:

> kubeclt kumuha ng crontabs

Dahil ang mga 'crontab' ay tinanggal, ang server ay magtataas ng error para sa pagkilos na ito. Tingnan ang output ng utos na ito na ibinigay sa ibaba:

Konklusyon

Ang artikulong ito ay isang mabilis na pangkalahatang-ideya kung paano gumawa ng custom na resource definition, kung paano gumawa ng custom na object para makontrol ang mga CRD, at kung paano tanggalin ang CRD mula sa Kubernetes. Sa tulong ng mga halimbawang halimbawa, ipinakita namin ang bawat hakbang upang matulungan kang maunawaan ang proseso nang madali at mabilis.