Uma usebenza ne-Kubernetes, i-kubectl cishe ingenye yezinsiza ozisebenzisa kakhulu. Futhi noma nini lapho uchitha isikhathi esiningi usebenza ngethuluzi elithile, kuyakhokha ukulitadisha kahle futhi ufunde indlela yokulisebenzisa ngempumelelo.
Ithimba
Ngokusho komlobi, umgomo we-athikili ukwenza umsebenzi wakho wansuku zonke no-Kubernetes ungasebenzi nje kuphela, kodwa futhi ujabulise nakakhulu!
Isigeniso: Kuyini kubectl
Ngaphambi kokuthi ufunde ukusebenzisa i-bectl ngempumelelo kakhudlwana, udinga ukuthola ukuqonda okuyisisekelo kokuthi iyini nokuthi isebenza kanjani.
Ngokombono womsebenzisi, i-kubectl iyiphaneli yokulawula ekuvumela ukuthi wenze imisebenzi ye-Kubernetes.
Uma sikhuluma ngobuchwepheshe, i-kubectl iyiklayenti le-Kubernetes API.
I-Kubernetes API iyi-HTTP REST API. Le API iwumsebenzisi we-Kubernetes weqiniso, olawulwa ngayo ngokuphelele. Lokhu kusho ukuthi yonke imisebenzi ye-Kubernetes ivezwa njengendawo yokugcina ye-API futhi ingenziwa ngesicelo se-HTTP kuleyo ndawo yokugcina.
Ngakho-ke, umsebenzi omkhulu we-kubectl ukwenza izicelo ze-HTTP ku-Kubernetes API:
I-Kubernetes iwuhlelo olugxile ezinsizeni ngokuphelele. Lokhu kusho ukuthi igcina isimo sangaphakathi sezinsiza futhi yonke imisebenzi ye-Kubernetes iyimisebenzi ye-CRUD.
Ulawula ngokuphelele i-Kubernetes ngokuphatha lezi zinsiza, futhi u-Kubernetes ubala ukuthi yini okufanele yenziwe ngokusekelwe esimweni samanje sezinsiza. Ngalesi sizathu, inkomba ye-Kubernetes API ihlelwa njengohlu lwezinhlobo zezinsiza nemisebenzi yazo ehlobene.
Ake sibheke isibonelo.
Ake sithi ufuna ukudala insiza ye-ReplicaSet. Ukwenza lokhu, uchaza i-ReplicaSet efayeleni ngegama replicaset.yaml
, bese ugijima umyalo:
$ kubectl create -f replicaset.yaml
Lokhu kuzodala insiza ye-ReplicaSet. Kodwa kwenzekani ngemuva?
I-Kubernetes inomsebenzi wokudala we-ReplicaSet. Njenganoma yimuphi omunye umsebenzi, ivezwa njengendawo yokugcina ye-API. Isiphetho esithile se-API salo msebenzi sibukeka kanje:
POST /apis/apps/v1/namespaces/{namespace}/replicasets
Iziphetho ze-API zayo yonke imisebenzi ye-Kubernetes zingatholakala kokuthi
Ngakho-ke, lapho ukhipha umyalo ongenhla, kubectl ithumela isicelo se-HTTP POST endaweni yokugcina ye-API engenhla. Incazelo ye-ReplicaSet oyinikezile kufayela replicaset.yaml
, ithunyelwa emzimbeni wesicelo.
Lena yindlela i-kubectl esebenza ngayo kuyo yonke imiyalo esebenzisana neqoqo le-Kubernetes. Kuzo zonke lezi zimo, i-kubectl ivele yenze izicelo ze-HTTP ezindaweni ezifanele zokugcina ze-Kubernetes API.
Sicela wazi ukuthi ungaphatha ngokugcwele i-Kubernetes usebenzisa insiza efana nale curl
ngokuthumela mathupha izicelo ze-HTTP ku-Kubernetes API. I-Kubectl ikwenza kube lula ukusebenzisa i-Kubernetes API.
Lezi izisekelo zokuthi i-kubectl iyini nokuthi isebenza kanjani. Kepha kukhona okunye mayelana ne-Kubernetes API okufanele wonke umsebenzisi we-kubectl akwazi. Ake sibheke ngokushesha umhlaba wangaphakathi we-Kubernetes.
Umhlaba wangaphakathi we-Kubernetes
I-Kubernetes iqukethe isethi yezingxenye ezizimele ezisebenza njengezinqubo ezihlukene kuma-cluster node. Ezinye izingxenye zisebenza kuma-master node, ezinye kuma-worker node, ingxenye ngayinye yenza umsebenzi wayo othize.
Nazi izingxenye ezibaluleke kakhulu kuma-node amakhulu:
- Isitoreji - izitolo izincazelo zensiza (
ngokuvamile kuba etcd ). - Iseva ye-API - inikeza i-API futhi ilawula ukugcinwa.
- Umphathi wesilawuli - Iqinisekisa ukuthi izimo zensiza ziyahambisana nezicaciso.
- Isihleli - ukuhlela amaphodi kumanodi abasebenzi.
Futhi nansi ingxenye ebaluleke kakhulu kuma-node abasebenzi:
- kubelet - ilawula ukwethulwa kweziqukathi endaweni yokusebenza.
Ukuze siqonde ukuthi lezi zingxenye zisebenza kanjani ndawonye, ββake sibheke isibonelo.
Ake sicabange ukuthi usanda kuqeda kubectl create -f replicaset.yaml
, ngemuva kwalokho kubectl wenze isicelo se-HTTP POST ku
Kwenzakalani ku-cluster?
- Ngemva kokwenza
kubectl create -f replicaset.yaml
Iseva ye-API igcina incazelo yensiza ye-ReplicaSet endaweni yokugcina: - Okulandelayo, isilawuli se-ReplicaSet sethulwa kumphathi wesilawuli, esisingatha ukudalwa, ukuguqulwa kanye nokususwa kwezinsiza ze-ReplicaSet:
- Isilawuli se-ReplicaSet sidala incazelo ye-pod yekhophi ngayinye ye-ReplicaSet (ngokuvumelana nesifanekiso se-pod encazelweni ye-ReplicaSet) futhi siyigcina endaweni yokugcina:
- Isihleli siyethulwa, silandelela ama-pod angakabelwa kunoma yimaphi amanodi abasebenzi:
- Umhleli ukhetha indawo yesisebenzi efanelekile ye-pod ngayinye bese wengeza lolu lwazi encazelweni ye-pod esitolo:
- Ku-node yesisebenzi lapho i-pod yabelwe khona, i-Kubelet yethulwa, ilandelela ama-pods anikezwe kule nodi:
- I-Kubelet ifunda incazelo ye-pod endaweni yokugcina futhi iyala isikhathi sokusebenza esitsheni, njenge-Docker, ukuthi yethule iziqukathi endaweni:
Ngezansi inguqulo yombhalo yale ncazelo.
Isicelo se-API endaweni yokugcina yokudala ye-ReplicaSet sicutshungulwa iseva ye-API. Iseva ye-API iqinisekisa isicelo futhi igcina incazelo yensiza ye-ReplicaSet endaweni yokugcina.
Lo mcimbi uqala isilawuli se-ReplicaSet, okuyinqubo engaphansi yomphathi wesilawuli. Isilawuli se-ReplicaSet siqapha ukudalwa, ukubuyekezwa, nokususwa kwezisetshenziswa ze-ReplicaSet esitolo futhi sithola isaziso somcimbi uma lokhu kwenzeka.
Umsebenzi wesilawuli se-ReplicaSet ukuqinisekisa ukuthi inombolo edingekayo yama-ReplicaSet pods ikhona. Esibonelweni sethu, awekho ama-pods okwamanje, ngakho-ke isilawuli se-ReplicaSet sidala lezi zincazelo ze-pod (ngokuvumelana nesifanekiso se-pod encazelweni ye-ReplicaSet) futhi sizigcine endaweni yokugcina.
Ukwakhiwa kwama-pod amasha kuqalwa isihleli esilandelela izincazelo ze-pod ezingakahlelelwe amanodi ezisebenzi. Umhleli ukhetha indawo yesisebenzi efanelekile ye-pod ngayinye futhi abuyekeze izincazelo ze-pod endaweni yokugcina.
Qaphela ukuthi kuze kube manje, ayikho ikhodi yomthwalo womsebenzi ebisebenza noma kuphi kuqoqo. Konke osekwenziwe kuze kube manje - lokhu ukudalwa nokubuyekezwa kwezinsiza endaweni yokugcina ku-master node.
Umcimbi wokugcina uvusa ama-Kubelets, aqapha ama-pods ahlelelwe ama-node abo abasebenzi. I-Kubelet yenodi yesisebenzi lapho kufakwe khona ama-pods akho e-ReplicaSet kufanele iyalele isikhathi sokusebenza sesiqukathi, njenge-Docker, ukulanda izithombe ezidingekayo zesiqukathi futhi ziyisebenzise.
Kuleli qophelo, uhlelo lwakho lokusebenza lwe-ReplicaSet ekugcineni luyasebenza!
Iqhaza le-Kubernetes API
Njengoba ubonile esibonelweni sangaphambilini, izingxenye ze-Kubernetes (ngaphandle kweseva ye-API nesitoreji) zibuka izinguquko kuzinsiza ezikusitoreji futhi zishintshe ulwazi mayelana nezinsiza ezikusitoreji.
Vele, lezi zingxenye azihlangani nesitoreji ngokuqondile, kodwa kuphela nge-Kubernetes API.
Cabangela izibonelo ezilandelayo:
- Isilawuli se-ReplicaSet sisebenzisa iphoyinti lokugcina le-API
klelisa ama-ReplicaSets ngepharamithawatch
ukuqapha izinguquko kuzinsiza ze-ReplicaSet. - Isilawuli se-ReplicaSet sisebenzisa iphoyinti lokugcina le-API
dala iPod (dala i-pod) ukuze udale ama-pods. - I-Scheduler isebenzisa iphoyinti lokugcina le-API
i-patch pod (hlela i-pod) ukuze ubuyekeze ama-pods ngolwazi mayelana nendawo yesisebenzi ekhethiwe.
Njengoba ubona, lena yi-API efanayo efinyelelwa yi-kubectl. Ukusebenzisa i-API efanayo yezingxenye zangaphakathi nabasebenzisi bangaphandle kuwumqondo oyisisekelo ekwakhiweni kwe-Kubernetes.
Manje singafingqa ukuthi uKubernetes usebenza kanjani:
- Izitolo zesitoreji zichaza, okungukuthi, izinsiza ze-Kubernetes.
- Iseva ye-API inikeza isixhumi esibonakalayo endaweni yokugcina ngendlela ye-Kubernetes API.
- Zonke ezinye izingxenye ze-Kubernetes nabasebenzisi bafunda, babheka, futhi bakhohlisa isimo se-Kubernetes (izinsiza) nge-API.
Ukwazi le mibono kuzokusiza uqonde kangcono i-bectl futhi uthole okuningi kuyo.
Manje ake sibheke amathiphu athile namasu azosiza ukuthuthukisa ukukhiqiza kwakho nge-kubectl.
1. Sheshisa okokufaka usebenzisa ukuqedela umyalo
Enye yezindlela eziwusizo kakhulu, kodwa ezivame ukunganakwa, zokuthuthukisa ukusebenza nge-kubectl ukuqedwa komyalo.
Ukuqedwa komyalo kukuvumela ukuthi ugcwalise ngokuzenzakalelayo izingxenye zemiyalo ye-kubectl usebenzisa ukhiye we-Tab. Lokhu kusebenzela imiyalo engaphansi, izinketho, nezimpikiswano, okuhlanganisa into eyinkimbinkimbi njengamagama ezinsiza.
Bona ukuthi ukuqedwa komyalo we-kubectl kusebenza kanjani:
Ukuqedwa komyalo kusebenza kumagobolondo e-Bash ne-Zsh.
Ukuqedwa komyalo kusebenza kanjani
Ukuqedwa komyalo kuyisici segobolondo esisebenza kusetshenziswa iskripthi sokuqedela. Iskripthi sesandiso siwumbhalo wegobolondo ochaza ukuziphatha kwesandiso somyalo othile.
I-Kubectl ikhiqiza ngokuzenzakalelayo futhi ikhiphe imibhalo yesandiso ye-Bash ne-Zsh isebenzisa imiyalo elandelayo:
$ kubectl completion bash
Noma:
$ kubectl completion zsh
Ngokombono, kwanele ukuxhuma okukhiphayo kwale miyalo kugobolondo lomyalo elifanele ukuze i-kubectl igcwalise imiyalo.
Empeleni, indlela yokuxhuma ihlukile ku-Bash (okuhlanganisa umehluko phakathi kwe-Linux ne-MacOS) kanye ne-Zsh. Ngezansi sizobheka zonke lezi zinketho.
Bash ku-Linux
Iskripthi sokuqedwa kwe-Bash sincike kuphakheji yokuqedela i-bash, ngakho-ke udinga ukuyifaka kuqala:
$ sudo apt-get install bash-completion
Noma:
$ yum install bash-completion
Ungahlola ukuthi iphakheji ifakwe ngempumelelo usebenzisa umyalo olandelayo:
$ type _init_completion
Uma lokhu kukhipha ikhodi yokusebenza kwegobolondo, i-bash-completion ifakwa ngendlela efanele. Uma umyalo unikeza iphutha elithi "Akutholakali", udinga ukwengeza umugqa olandelayo efayeleni lakho ~ / .bashrc
:
$ source /usr/share/bash-completion/bash_completion
Ingabe kuyadingeka ukwengeza lo mugqa efayeleni ~ / .bashrc
noma cha kuya kumphathi wephakheji owusebenzisile ukufaka i-bash-completion. Lokhu kuyadingeka ku-APT, kodwa hhayi ku-YUM.
Ngemva kokufaka i-bash-completion, udinga ukulungisa yonke into ukuze iskripthi sokuqeda i-kubectl sinikwe amandla kuzo zonke izikhathi zegobolondo.
Enye indlela yokwenza lokhu ukwengeza umugqa olandelayo efayeleni ~ / .bashrc
:
source <(kubectl completion bash)
Enye indlela iwukwengeza iskripthi sokunweba se-kubectl kumkhombandlela /etc/bash_completion.d
(yidale uma ingekho):
$ kubectl completion bash >/etc/bash_completion.d/kubectl
Zonke izikripthi zezengezo kukhathalogi /etc/bash_completion.d
afakwa ngokuzenzakalelayo ekuqedeni i-bash.
Zombili izinketho zisebenza ngokulinganayo.
Ngemuva kokuqala kabusha igobolondo, ukuqedwa komyalo we-kubectl kuzosebenza.
Bash ku-MacOS
Ku-MacOS ukusetha kuyinkimbinkimbi kancane. Iqiniso liwukuthi ngokuzenzakalelayo, i-MacOS isebenzisa inguqulo ye-Bash 3.2, futhi umbhalo we-kubectl autocompletion udinga inguqulo ye-Bash okungenani engu-4.1 futhi ayisebenzi ku-Bash 3.2.
Kunezinkinga zelayisensi ezihlobene nokusebenzisa inguqulo yakudala ye-Bash ku-MacOS. Inguqulo ye-Bash 4 ilayisensi ngaphansi kwe-GPLv3, engasekelwe yi-Apple.
Ukuze ulungiselele ukuqedwa okuzenzakalelayo kwe-kubectl ku-MacOS, udinga ukufaka inguqulo yakamuva ye-Bash. Ungakwazi futhi ukusetha i-Bash ebuyekeziwe njengegobolondo lakho elizenzakalelayo, elizokongela izinkinga eziningi ngokuzayo. Akunzima, imininingwane inikezwe esihlokweni "
Ngaphambi kokuqhubeka, qiniseka ukuthi usebenzisa inguqulo yakamuva ye-Bash (hlola okukhiphayo bash --version
).
Isikripthi sokuqedwa kwe-Bash siyahlukahluka ngephrojekthi
Ungafaka i-bash-completion usebenzisa
$ brew install bash-completion@2
kuyinto @2
imele inguqulo ye-bash-completion 2. ukuqedela ngokuzenzakalela kwe-kubectl kudinga i-bash-completion v2, futhi i-bash-completion v2 idinga ubuncane benguqulo ye-Bash 4.1.
Umyalo ophumayo brew-install
iqukethe isigaba se-Caveats, esicacisa lokho okudingeka kwengezwe kufayela ~/.bash_profile
:
export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && .
"/usr/local/etc/profile.d/bash_completion.sh"
Kodwa-ke, ngincoma ukuthi wengeze le migqa hhayi ~/.bash_profile
, futhi ngaphakathi ~/.bashrc
. Kulokhu, ukuqedela ngokuzenzakalela ngeke kutholakale kuphela ngokuyinhloko, kodwa futhi kumagobolondo womyalo wengane.
Ngemuva kokuqala kabusha igobolondo lomyalo, ungaqinisekisa ukuthi ukufakwa kulungile usebenzisa umyalo olandelayo:
$ type _init_completion
Uma ubona umsebenzi wegobolondo kokuphumayo, khona-ke yonke into ilungiswa ngendlela efanele.
Manje sidinga ukuqinisekisa ukuthi ukuqedela ngokuzenzakalela kwe-kubectl kunikwe amandla kuzo zonke izikhathi.
Enye indlela ukwengeza umugqa olandelayo kweyakho ~/.bashrc
:
source <(kubectl completion bash)
Indlela yesibili iwukwengeza umbhalo wokuqedela ngokuzenzakalela kufolda /usr/local/etc/bash_completion.d
:
$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl
Le ndlela izosebenza kuphela uma ufake i-bash-completion usebenzisa i-Homebrew. Kulesi simo, i-bash-completion ilayisha zonke izikripthi kulolu hlu lwemibhalo.
Uma ufake /usr/local/etc/bash_completion.d
ngesikhathi sokufakwa. Kulokhu, ukuqedela okuzenzakalelayo kwe-kubectl kuzoqala ukusebenza ngemuva nje kokufaka i-bash-completion.
Ngenxa yalokho, zonke lezi zinketho ziyalingana.
I-Zsh
Imibhalo yokuqedela ngokuzenzakalela ye-Zsh ayidingi noma yikuphi ukuncika. Konke okudingeka ukwenze ukuwavumela uma ulayisha igobolondo lomyalo.
Ungakwenza lokhu ngokungeza umugqa kweyakho ~/.zshrc
ifayela:
source <(kubectl completion zsh)
Uma uthola iphutha not found: compdef
ngemuva kokuqala kabusha igobolondo lakho, udinga ukunika amandla umsebenzi we-buildin compdef
. Ungayivula ngokuyengeza ekuqaleni kwefayela lakho ~/.zshrc
okulandelayo:
autoload -Uz compinit
compinit
2. Buka ngokushesha ukucaciswa kwensiza
Uma udala izincazelo zensiza ye-YAML, udinga ukwazi izinkambu nencazelo yazo kulezo zinsiza. Indawo eyodwa ongabheka kuyo lolu lwazi kusithenjwa se-API, esiqukethe imininingwane ephelele yazo zonke izinsiza.
Nokho, ukushintshela kusiphequluli sewebhu ngaso sonke isikhathi uma udinga ukucinga okuthile akulula. Ngakho-ke kubectl inikeza umyalo kubectl explain
, okubonisa imininingwane yazo zonke izinsiza khona kanye kutheminali yakho.
Ifomethi yomyalo imi kanje:
$ kubectl explain resource[.field]...
Umyalo uzokhipha ukucaciswa kwensiza eceliwe noma inkambu. Ulwazi olubonisiwe luyafana nalolo oluqukethwe kumanuwali we-API.
Ngokuzenzakalelayo kubectl explain
ibonisa kuphela izinga lokuqala lokuzalela amasimu.
Bona ukuthi ibukeka kanjani
Ungabonisa isihlahla sonke uma wengeza inketho --recursive
:
$ kubectl explain deployment.spec --recursive
Uma ungazi kahle ukuthi yiziphi izinsiza ezidingekayo, ungabonisa zonke ngomyalo olandelayo:
$ kubectl api-resources
Lo myalo ubonisa amagama ezinsiza ngobuningi, isib. deployments
esikhundleni salokho deployment
. Iphinde ibonise igama elifushane, isibonelo deploy
, kulezo zinsiza ezinakho. Ungakhathazeki ngalokhu kwehluka. Zonke lezi zinketho zokuqamba ziyalingana ne-kubectl. Okusho ukuthi, ungasebenzisa noma iyiphi yazo kubectl explain
.
Yonke imiyalo elandelayo iyalingana:
$ kubectl explain deployments.spec
# ΠΈΠ»ΠΈ
$ kubectl explain deployment.spec
# ΠΈΠ»ΠΈ
$ kubectl explain deploy.spec
3. Sebenzisa ifomethi yokuphuma kwekholomu yangokwezifiso
Ifomethi yokuphuma komyalo ezenzakalelayo kubectl get
:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
engine-544b6b6467-22qr6 1/1 Running 0 78d
engine-544b6b6467-lw5t8 1/1 Running 0 78d
engine-544b6b6467-tvgmg 1/1 Running 0 78d
web-ui-6db964458-8pdw4 1/1 Running 0 78d
Le fomethi ifanelekile, kodwa iqukethe inani elilinganiselwe lolwazi. Uma kuqhathaniswa nefomethi yencazelo yensiza egcwele, izinkambu ezimbalwa kuphela eziboniswa lapha.
Kulokhu, ungasebenzisa ifomethi yokuphuma kwekholomu yangokwezifiso. Ikuvumela ukuthi unqume ukuthi iyiphi idatha ozoyikhipha. Ungabonisa noma iyiphi inkambu yensiza njengekholomu ehlukile.
Ukusetshenziswa kwefomethi yangokwezifiso kunqunywa kusetshenziswa izinketho:
-o custom-columns=<header>:<jsonpath>[,<header>:<jsonpath>]...
Ungachaza ikholomu ngayinye yokuphumayo njengepheya <header>:<jsonpath>
kuphi <header>
igama lekholomu, futhi <jsonpath>
β isisho esichaza inkambu yensiza.
Ake sibheke isibonelo esilula:
$ kubectl get pods -o custom-columns='NAME:metadata.name'
NAME
engine-544b6b6467-22qr6
engine-544b6b6467-lw5t8
engine-544b6b6467-tvgmg
web-ui-6db964458-8pdw4
Okukhiphayo kuqukethe ikholomu eyodwa namagama ama-pods.
Inkulumo yokukhetha ikhetha amagama e-pod kusukela kunkambu metadata.name
. Lokhu kungenxa yokuthi igama le-pod lichazwa endaweni yegama lengane metadata
encazelweni yensiza ye-pod. Imininingwane eyengeziwe ingatholakala ku kubectl explain pod.metadata.name
.
Manje ake sithi ufuna ukwengeza ikholomu eyengeziwe kokuphumayo, isibonelo ubonisa i-nodi ngayinye i-pod esebenzayo. Ukuze wenze lokhu, ungamane wengeze ukucaciswa kwekholomu efanele kunketho yamakholomu angokwezifiso:
$ kubectl get pods
-o custom-columns='NAME:metadata.name,NODE:spec.nodeName'
NAME NODE
engine-544b6b6467-22qr6 ip-10-0-80-67.ec2.internal
engine-544b6b6467-lw5t8 ip-10-0-36-80.ec2.internal
engine-544b6b6467-tvgmg ip-10-0-118-34.ec2.internal
web-ui-6db964458-8pdw4 ip-10-0-118-34.ec2.internal
Isisho sikhetha igama le-node kusuka spec.nodeName
- lapho i-pod inikezwa i-node, igama layo libhalwa ensimini spec.nodeName
ukucaciswa kwensiza ye-pod. Ulwazi oluningiliziwe lungatholakala kokuphumayo kubectl explain pod.spec.nodeName
.
Sicela uqaphele ukuthi izinkambu zezinsiza ze-Kubernetes zibucayi kakhulu.
Ungabuka noma iyiphi inkambu yensiza njengekholomu. Vele ubuyekeze ukucaciswa kwensiza bese uyizame nganoma yiziphi izinkambu ozithandayo.
Kodwa okokuqala, ake sibhekisise izinkulumo zokukhetha insimu.
Izinkulumo ze-JSONPath
Izinkulumo zokukhetha izinkambu zensiza zisekelwe kukho
I-JSONPath iwulimi lokubuyisa idatha kumadokhumenti e-JSON. Ukukhetha inkambu eyodwa kuyindlela elula yokusebenzisa i-JSONPath. Unokuningi
I-Kubectl ichaza isekela inombolo elinganiselwe yezici ze-JSONPath. Amathuba nezibonelo zokusetshenziswa kwazo kuchazwe ngezansi:
# ΠΡΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°
$ kubectl get pods -o custom-columns='DATA:spec.containers[*].image'
# ΠΡΠ±ΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°
$ kubectl get pods -o custom-columns='DATA:spec.containers[0].image'
# ΠΡΠ±ΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°, ΠΏΠΎΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠΈΠ»ΡΡΡ
$ kubectl get pods -o custom-columns='DATA:spec.containers[?(@.image!="nginx")].image'
# ΠΡΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΏΡΡΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΈΡ
ΠΈΠΌΠ΅Π½ΠΈ
$ kubectl get pods -o custom-columns='DATA:metadata.*'
# ΠΡΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ
ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
$ kubectl get pods -o custom-columns='DATA:..image'
Umsebenzisi we-[] ubaluleke kakhulu. Izinkambu eziningi ze-Kubernetes ziwuhlu, futhi lo opharetha ikuvumela ukuthi ukhethe amalungu alolo hlu. Ivamise ukusetshenziswa ne-wildcard efana ne-[*] ukukhetha zonke izici zohlu.
Izibonelo zohlelo lokusebenza
Amathuba okusebenzisa ifomethi yokuphuma kwekholomu yangokwezifiso awapheli, njengoba ungabonisa noma iyiphi inkambu noma inhlanganisela yezinkambu zensiza kokuphumayo. Nazi ezinye izinhlelo zokusebenza eziyisampula, kodwa zizwe ukhululekile ukuzihlola futhi uthole izinhlelo zokusebenza ezikusebenzelayo.
- Ibonisa izithombe zeziqukathi zama-pods:
$ kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image' NAME IMAGES engine-544b6b6467-22qr6 rabbitmq:3.7.8-management,nginx engine-544b6b6467-lw5t8 rabbitmq:3.7.8-management,nginx engine-544b6b6467-tvgmg rabbitmq:3.7.8-management,nginx web-ui-6db964458-8pdw4 wordpress
Lo myalo ubonisa amagama esithombe sesiqukathi se-pod ngayinye.
Khumbula ukuthi i-pod ingaba neziqukathi ezimbalwa, khona-ke amagama ezithombe azovezwa kulayini owodwa, ahlukaniswe ngamakhoma.
- Ibonisa izindawo zokutholakala kwenodi:
$ kubectl get nodes -o custom-columns='NAME:metadata.name,ZONE:metadata.labels.failure-domain.beta.kubernetes.io/zone' NAME ZONE ip-10-0-118-34.ec2.internal us-east-1b ip-10-0-36-80.ec2.internal us-east-1a ip-10-0-80-67.ec2.internal us-east-1b
Lo myalo uwusizo uma iqoqo lakho lisingathwe kumafu omphakathi. Ibonisa indawo yokutholakala yenodi ngayinye.
Indawo etholakalayo umqondo wamafu okhawulela indawo yokuphindaphinda endaweni.
Izindawo ezitholakalayo zenodi ngayinye zitholakala ngelebula elikhethekile -
. Uma iqoqo lisebenza emafini omphakathi, le lebula idalwa ngokuzenzakalelayo futhi igcwaliswe ngamagama ezindawo ezitholakalayo zenodi ngayinye.failure-domain.beta.kubernetes.io/zone
Amalebula awayona ingxenye yokucaciswa kwensiza yakwa-Kubernetes, ngakho-ke ngeke uthole ulwazi mayelana nawo
Umhlahlandlela we-API . Nokho, angabonakala (njenganoma yimaphi amanye amalebula) uma ucela ulwazi mayelana namanodi ngefomethi ye-YAML noma ye-JSON:$ kubectl get nodes -o yaml # ΠΈΠ»ΠΈ $ kubectl get nodes -o json
Lena indlela enhle yokufunda kabanzi mayelana nezinsiza, ngaphezu kokucaciswa kwezinsiza zokufunda.
4. Shintsha kalula phakathi kwamaqoqo nezikhala zamagama
Lapho i-kubectl yenza isicelo ku-Kubernetes API, iqala ngokufunda ifayela le-kubeconfig ukuze ithole yonke imingcele edingekayo yokuxhuma.
Ngokuzenzakalelayo ifayela le-kubeconfig lithi ~/.kube/config
. Ngokuvamile leli fayela lidalwa noma libuyekezwe ngomyalo okhethekile.
Uma usebenza ngamaqoqo amaningi, ifayela lakho le-kubeconfig liqukethe izilungiselelo zokuxhuma kuwo wonke lawo maqoqo. Udinga indlela yokutshela umyalo we-kubectl ukuthi yiliphi iqoqo osebenza nalo.
Ngaphakathi kweqoqo, ungakha izikhala zamagama eziningiβuhlobo lweqoqo elibonakalayo ngaphakathi kweqoqo elibonakalayo. I-Kubectl iphinde inqume ukuthi iyiphi indawo yamagama okufanele isetshenziswe ngokusekelwe kufayela le-kubeconfig. Lokhu kusho ukuthi udinga nendlela yokutshela umyalo we-kubectl ukuthi iyiphi indawo yegama okufanele usebenze ngayo.
Kulesi sahluko sizochaza ukuthi isebenza kanjani nokuthi ingenziwa kanjani ngempumelelo.
Qaphela ukuthi ungase ube namafayela e-kubeconfig amaningi asohlwini lwe-KUBECONFIG eguquguqukayo yemvelo. Kulokhu, wonke lawa mafayela azohlanganiswa abe ukucushwa okukodwa ngesikhathi sokusebenza. Ungakwazi futhi ukushintsha ifayela le-kubeconfig elizenzakalelayo ngokusebenzisa i-kubectl ngepharamitha --kubeconfig
. Bheka
kubeconfig amafayela
Ake sibone ukuthi ifayela le-kubeconfig liqukethe ini:
Njengoba ubona, ifayela le-kubeconfig liqukethe isethi yezimo. Umongo uqukethe izici ezintathu:
- Cluster - API URL yeseva cluster.
- Umsebenzisi - imininingwane yokuqinisekisa yomsebenzisi kuqoqo.
- I-Namespace - indawo yamagama esetshenziswa lapho kuhlanganiswa iqoqo.
Empeleni, bavame ukusebenzisa umongo owodwa iqoqo ngalinye ku-kubeconfig yabo. Nokho, ungaba nezingqikithi eziningi ngeqoqo ngalinye, ezihlukaniswa ngomsebenzisi noma indawo yamagama. Kodwa-ke, lokhu kulungiselelwa kokuqukethwe okuningi akuvamile, ngakho-ke ngokuvamile kuba nemephu eyodwa-to-one phakathi kwamaqoqo nezingqikithi.
Nganoma isiphi isikhathi, enye yezingqikithi ezamanje:
Uma i-kubectl ifunda ifayela lokumisa, ihlala ithatha ulwazi kusuka kumongo wamanje. Esibonelweni esingenhla, i-kubectl izoxhuma ku-Hare cluster.
Kanjalo, ukuze ushintshele kwelinye iqoqo, udinga ukushintsha umongo wamanje kufayela le-kubeconfig:
Manje i-kubectl izoxhuma ku-Fox cluster.
Ukuze ushintshele endaweni yamagama ehlukile kuqoqo elifanayo, udinga ukushintsha inani le-elementi ye-namespace yomongo wamanje:
Esibonelweni esingenhla, i-kubectl izosebenzisa i-namespace ye-Fox cluster's Prod (ngaphambilini kwakusethiwe indawo yamagama yokuhlola).
Qaphela ukuthi i-kubectl iphinde inikeze izinketho --cluster
, --user
, --namespace
ΠΈ --context
, okuvumela ukuthi ubhale phezu kwezakhi ngazinye kanye nomongo wamanje ngokwawo, kungakhathaliseki ukuthi yini esethwe ku-kubeconfig. Bheka kubectl options
.
Ngokombono, ungakwazi ukushintsha ngokwakho izilungiselelo ku-kubeconfig. Kodwa kuyaphazamisa. Ukwenza lokhu kube lula, kunezinsiza ezahlukahlukene ezikuvumela ukuthi uguqule amapharamitha ngokuzenzakalelayo.
Sebenzisa kubectx
Isisetshenziswa esidume kakhulu sokushintsha phakathi kwamaqoqo nezikhala zamagama.
Uhlelo lokusebenza lunikeza imiyalo kubectx
ΠΈ kubens
ukushintsha umongo wamanje nendawo yamagama ngokulandelana.
Njengoba kushiwo, ukushintsha umongo wamanje kusho ukushintsha iqoqo uma unomongo owodwa kuphela iqoqo ngalinye.
Nasi isibonelo sokusebenzisa le miyalo:
Empeleni, le miyalo imane ihlele ifayela le-kubeconfig njengoba kuchazwe ngenhla.
ukufaka kubectx
, landela imiyalelo ku
Yomibili imiyalo isekela ukuqedelwa ngokuzenzakalela komongo namagama esikhala samagama, okususa isidingo sokuwathayipha ngokuphelele. Imiyalo yokusetha ukuqedela ngokuzenzakalela
Esinye isici esiwusizo kubectx
kuyinto kubectx
. Ngokusebenzisana, ungakhetha umongo kanye ne-namespace ngokusebenzisa isixhumi esibonakalayo sosesho samahhala esinikezwa i-fzf.
Ukusebenzisa ama-aliases we-shell
Awudingi amathuluzi ahlukene ukuze uguqule umongo wamanje nendawo yamagama ngoba i-kubectl iphinde inikeze imiyalo yalokhu. Yebo, iqembu kubectl config
inikeza imiyalo engaphansi yokuhlela amafayela e-kubeconfig.
Nazi ezinye zazo:
kubectl config get-contexts
: bonisa zonke izimo;kubectl config current-context
: thola umongo wamanje;kubectl config use-context
: shintsha umongo wamanje;kubectl config set-context
: Shintsha isici somongo.
Nokho, ukusebenzisa le miyalo ngokuqondile akulula kakhulu ngoba mide. Ungenza iziteketiso zegobolondo kubo okulula ukuzisebenzisa.
Ngidale isethi yeziteketiso ngokusekelwe kule miyalo ehlinzeka ngokusebenza okufana ne-kubectx. Lapha ungazibona zisebenza:
Qaphela ukuthi iziteketiso zisebenzisa i-fzf ukunikeza isixhumi esibonakalayo samahhala esisebenzisanayo (njengemodi yokusebenzisana ye-kubectx). Lokhu kusho ukuthi udinga
Nazi izincazelo zeziteketiso ngokwazo:
# ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
alias krc='kubectl config current-context'
# Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ²
alias klc='kubectl config get-contexts -o name | sed "s/^/ /;|^ $(krc)$|s/ /*/"'
# ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
alias kcc='kubectl config use-context "$(klc | fzf -e | sed "s/^..//")"'
# ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½
alias krn='kubectl config get-contexts --no-headers "$(krc)" | awk "{print $5}" | sed "s/^$/default/"'
# Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½
alias kln='kubectl get -o name ns | sed "s|^.*/| |;|^ $(krn)$|s/ /*/"'
# ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½
alias kcn='kubectl config set-context --current --namespace "$(kln | fzf -e | sed "s/^..//")"'
Ukuze usethe lezi ziteketiso udinga ukwengeza izincazelo ezingenhla kufayela lakho ~/.bashrc
noma ~/.zshrc
bese uqalisa kabusha igobolondo lakho.
Ukusebenzisa ama-plugin
I-Kubectl ikuvumela ukuthi ulayishe ama-plugin asetshenziswa ngendlela efanayo nemiyalo eyisisekelo. Ungakwazi, isibonelo, ukufaka i-plugin ye-kubectl-foo bese uyiqhuba ngokwenza umyalo kubectl foo
.
Kungaba lula ukushintsha umongo nesikhala samagama ngale ndlela, isibonelo ngokuqalisa kubectl ctx
ukushintsha umongo kanye kubectl ns
ukushintsha indawo yamagama.
Ngibhale ama-plugin amabili enza lokhu:
Umsebenzi wama-plugin usekelwe kuziteketiso ezivela esigabeni sangaphambilini.
Nansi indlela asebenza ngayo:
Qaphela ukuthi ama-plugin asebenzisa i-fzf ukuze anikeze isixhumi esibonakalayo sosesho samahhala esisebenzisanayo (njengemodi yokusebenzisana ye-kubectx). Lokhu kusho ukuthi udinga
Ukuze ufake ama-plugin, udinga ukulanda izikripthi zegobolondo eziqanjwe igama chmod +x
. Ngokushesha ngemva kwalokhu uzokwazi ukusebenzisa kubectl ctx
ΠΈ kubectl ns
.
5. Yehlisa okokufaka ngama-autoaliases
Iziteketiso zeshell ziyindlela enhle yokusheshisa okokufaka. Iphrojekthi
Ungase uzibuze - uzikhumbula kanjani iziteketiso ezingama-800? Kodwa awudingi ukuwakhumbula wonke, ngoba akhiwe ngohlelo olulula, olunikezwe ngezansi:
Isibonelo:
- kgpooyaml - kubectl uthole ama-pods oyaml
- ksysgsvcw β kubectl -n kube-system uthole svc w
- ksysrmcm -kubectl -n kube-system rm cm
- kgdepallsl - kubectl thola ukuthunyelwa konke sl
Njengoba ubona, iziteketiso zenziwa izingxenye, ngayinye emele ingxenye ethile yomyalo we-kubectl. Isibizo ngasinye singaba nengxenye eyodwa yomyalo wesisekelo, ukusebenza, nensiza, kanye nezingxenye eziningi zamapharamitha. Uvele "ugcwalise" lezi zingxenye ukusuka kwesobunxele kuye kwesokudla ngokomdwebo ongenhla.
Umdwebo wamanje onemininingwane uku
Isibonelo, igama elithi kgpooyamlall lilingana nomyalo kubectl get pods -o yaml --all-namespaces
.
Ukuhleleka okuhlobene kwezinketho akubalulekile: umyalo kgpooyamlall
ilingana nomyalo kgpoalloyaml
.
Awudingi ukusebenzisa zonke izingxenye njengeziteketiso. Ngokwesibonelo k
, kg
, klo
, ksys
, kgpo
ingasetshenziswa futhi. Ngaphezu kwalokho, ungahlanganisa iziteketiso nemiyalo evamile noma izinketho kulayini womyalo:
Isibonelo:
- Esikhundleni
kubectl proxy
ungabhalak proxy
. - Esikhundleni
kubectl get roles
ungabhalakg roles
(okwamanje asikho isibizo sensiza Yezindima). - Ukuze uthole idatha ye-pod ethile, ungasebenzisa umyalo
kgpo my-pod β kubectl get pod my-pod
.
Sicela uqaphele ukuthi ezinye iziteketiso zidinga i-agumenti yomugqa womyalo. Ngokwesibonelo, alias kgpol
kusho kubectl get pods -l
. Inketho -l
idinga ukuphikisana - ukucaciswa kwelebula. Uma usebenzisa i-alias kuzobukeka kgpol app=ui
.
Ngenxa yokuthi ezinye iziteketiso zidinga izimpikiswano, iziteketiso a, f, kanye no-l kufanele zisetshenziswe ekugcineni.
Ngokuvamile, uma usuthole ukulengiswa kwalolu hlelo, ungakwazi ngokunembile ukuthola iziteketiso emiyalweni ofuna ukuyisebenzisa futhi wonge isikhathi esiningi sokuthayipha.
ukufakwa
Ukufaka i-kubectl-aliases, udinga ukulanda ifayela ~/.bashrc
noma ~/.zshrc
:
source ~/.kubectl_aliases
Ukuqedela ngokuzenzakalela
Njengoba sishilo ngaphambili, uvame ukwengeza amagama engeziwe kusibizo emugqeni womyalo. Ngokwesibonelo:
$ kgpooyaml test-pod-d4b77b989
Uma usebenzisa ukuqedelwa komyalo we-kubectl, kungenzeka ukuthi usebenzise ukuqedela ngokuzenzakalela ezintweni ezifana namagama ezinsiza. Kodwa ingabe lokhu kungenziwa lapho kusetshenziswa iziteketiso?
Lona umbuzo obaluleke kakhulu ngoba uma ukuqedela ngokuzenzakalela kungasebenzi, uzolahlekelwa ezinye zezinzuzo zeziteketiso.
Impendulo incike ekutheni usebenzisa liphi igobolondo:
- Ku-Zsh, ukuqedwa kwesibizo kusebenza ngaphandle kwebhokisi.
- Ku-Bash, ngeshwa, umsebenzi othile uyadingeka ukuze kuqedwe ngokuzenzakalela ukuze kusebenze.
Inika amandla ukuqedela ngokuzenzakalela kweziteketiso ku-Bash
Inkinga nge-Bash ukuthi izama ukuqedela (ngaso sonke isikhathi uma ucindezela u-Tab) isibizo, hhayi umyalo isibizo esibhekisela kuwo (njengoba i-Zsh yenza, isibonelo). Njengoba ungenayo imibhalo yokuqedela yazo zonke iziteketiso ezingu-800, ukuqedela ngokuzenzakalela akusebenzi.
Le phrojekthi
Ngokulandelayo, ngizoqale ngichaze ukuthi ungasifaka kanjani igama-alias eliphelele bese kuthi indlela yokuyilungisa ukuze unike amandla ukuqedwa kwazo zonke iziteketiso ze-kubectl.
Ifaka iziteketiso eziphelele
Okokuqala, igama eliphelele lincike
Inothi elibalulekile labasebenzisi be-MacOS: Njengeskripthi sokuqedela okuzenzakalelayo kwe-kubectl, izibizo eziphelele azisebenzi nge-Bash 3.2, okuzenzakalelayo ku-MacOS. Ikakhulukazi, igama eliphelele lincike ekuqedeni i-bash v2 (brew install bash-completion@2
), okudinga okungenani i-Bash 4.1. Lokhu kusho ukuthi ukusebenzisa izibizo eziphelele ku-MacOS udinga ukufaka inguqulo entsha ye-Bash.
Udinga ukulanda iskripthi ~/.bashrc
:
source ~/bash_completion.sh
Ngemva kokuqalisa kabusha igobolondo, izibizo eziphelele zizofakwa ngokugcwele.
Inika amandla ukuqedela ngokuzenzakalela kweziteketiso ze-kubectl
Ngobuchwepheshe isibizo esiphelele sihlinzeka ngomsebenzi wokugoqa _complete_alias
. Lo msebenzi uhlola i-alias bese ubuyisela amasu okuqedwa komyalo we-alias.
Ukuze uhlobanise umsebenzi nesibizo esithile, udinga ukusebenzisa indlela ye-Bash eyakhelwe ngaphakathi _complete_alias
njengomsebenzi wokuqedela isibizo.
Njengesibonelo, ake sithathe igama elithi alias k, elimele umyalo we-kubectl. ukufaka _complete_alias
Njengomsebenzi wokugcwalisa walesi sibizo, kufanele usebenzise umyalo olandelayo:
$ complete -F _complete_alias k
Umphumela walokhu ukuthi noma nini lapho uqedela ngokuzenzakalelayo igama elithi alias k, umsebenzi ubizwa _complete_alias
, ehlola isiteketiso bese ibuyisela amacebo okuqedela womyalo kubectl
.
Njengesibonelo sesibili, ake sithathe isibizo kg
, okusho ukuthi kubectl get
:
$ complete -F _complete_alias kg
Njengasesibonelweni sangaphambilini, lapho uqedela ngokuzenzakalela i-kg, uthola amacebo okugcwalisa afanayo ongawatholela. kubectl get
.
Qaphela ukuthi ungasebenzisa isiteketiso esiphelele kunoma yisiphi isiteketiso kusistimu yakho.
Ngakho-ke, ukuze unike amandla ukuqedela ngokuzenzakalela kuzo zonke iziteketiso ze-kubectl, udinga ukusebenzisa umyalo ongenhla kuzo zonke. Amazwibela alandelayo enza lokhu kanye, inqobo nje uma usethe iziteketiso ze-kubectl kuzo ~/.kubectl-aliases
:
for _a in $(sed '/^alias /!d;s/^alias //;s/=.*$//' ~/.kubectl_aliases);
do
complete -F _complete_alias "$_a"
done
Lolu cezu lwekhodi ludinga ukufakwa endaweni yakho ~/.bashrc
, qala kabusha igobolondo lomyalo futhi ukuqedela ngokuzenzakalela kuzotholakala kuzo zonke iziteketiso ze-kubectl ezingu-800.
6. Inweba i-kubectl ngama-plugin
Ukuqala ngo-
Uma ujwayelene
Kulesi sahluko, sizofaka indlela yokufaka ama-plugin, ukuthi ungawathola kuphi, nokuthi ungawakha kanjani awakho ama-plugin.
Ifaka ama-plugin
Ama-plugin e-Kubectl asatshalaliswa njengamafayela asebenzisekayo alula anegama elifana nalo kubectl-x
. Isiqalo kubectl-
iyadingeka, ilandelwa umyalo ongaphansi we-kubectl omusha okuvumela ukuthi ushayele i-plugin.
Isibonelo, i-plugin ye-hello izosatshalaliswa njengefayela elibizwa kubectl-hello
.
Ukuze ufake i-plugin, udinga ukukopisha ifayela kubectl-x
kunoma yiluphi uhla lwemibhalo ku-PATH yakho futhi ulwenze lusebenziseke, isibonelo nge chmod +x
. Ngokushesha ngemva kwalokhu ungashayela i-plugin nge kubectl x
.
Ungasebenzisa umyalo olandelayo ukuze ubhale wonke ama-plugin afakwe kusistimu yakho okwamanje:
$ kubectl plugin list
Lo myalo uzophinde ubonise izexwayiso uma unama-plugin amaningi anegama elifanayo, noma uma kukhona ifayela lama-plugin elingakwazi ukusebenziseka.
Ukuthola nokufaka ama-plugin usebenzisa i-Krew
Ama-plugin e-Kubectl angabiwa noma asetshenziswe kabusha njengamaphakheji esofthiwe. Kodwa ungawatholaphi ama-plugin abanye abelane ngawo?
I-Krew iwuhlu lwama-plugin we-kubectl ongakhetha futhi uwafake. Ngasikhathi sinye, i-Krew futhi iyi-plugin ye-kubectl.
Lokhu kusho ukuthi ukufaka i-Krew kusebenza ngokuyisisekelo njengokufaka noma iyiphi enye i-plugin ye-kubectl. Ungathola imiyalelo enemininingwane kokuthi
Imiyalo ebaluleke kakhulu ye-Krew yile:
# ΠΠΎΠΈΡΠΊ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²
$ kubectl krew search [<query>]
# ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π΅
$ kubectl krew info <plugin>
# Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½
$ kubectl krew install <plugin>
# ΠΠ±Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ
$ kubectl krew upgrade
# ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· Krew
$ kubectl krew list
# ΠΠ΅ΠΈΠ½ΡΡΠ°Π»Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½
$ kubectl krew remove <plugin>
Sicela uqaphele ukuthi ukufaka ama-plugin usebenzisa i-Krew akuphazamisi ukufakwa kwama-plugin usebenzisa indlela evamile echazwe ngenhla.
Sicela uqaphele ukuthi umyalo kubectl krew list
ibonisa kuphela ama-plugin afakwe kusetshenziswa i-Krew, kuyilapho umyalo kubectl plugin list
ibala wonke ama-plugin, okungukuthi, lawo afakwe kusetshenziswa i-Krew nalawo afakwe ngezinye izindlela.
Ukuthola Ama-plugin Kwenye Indawo
I-Krew iphrojekthi encane, okwamanje ekuyo
Ngincoma ukubheka isigaba se-GitHub
Ukubhala awakho ama-plugin
ungakwenza wenakubectl-x
futhi ufake njengoba kuchazwe ngenhla.
Ifayela lingaba iskripthi se-bash, iskripthi se-python, noma uhlelo lokusebenza oluhlanganisiwe lwe-GO - akunandaba. Umbandela kuphela ukuthi ingenziwa ngokuqondile ohlelweni lokusebenza.
Masidale isibonelo se-plugin khona manje. Esigabeni esidlule, usebenzise umyalo we-kubectl ukuze ubhale uhlu lweziqukathi ze-pod ngayinye. Kulula ukushintsha lo myalo uwenze i-plugin ongayishayela isb. kubectl img
.
Dala ifayela kubectl-img
okuqukethwe okulandelayo:
#!/bin/bash
kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'
Manje yenza ifayela lisebenze nge chmod +x kubectl-img
bese uyihambisa kunoma iyiphi inkomba ku-PATH yakho. Ngokushesha ngemva kwalokhu ungasebenzisa i-plugin kubectl img
.
Njengoba kushiwo, ama-plugin e-kubectl angabhalwa nganoma yiluphi uhlelo noma ulimi lokubhala. Uma usebenzisa imibhalo yegobolondo, inzuzo yokukwazi ukushayela kalula i-kubectl ngaphakathi kwe-plugin. Kodwa-ke, ungabhala ama-plugin ayinkimbinkimbi ngezilimi zangempela zokuhlela usebenzisa
Ungawabelana kanjani ngama-plugin akho
Uma ucabanga ukuthi ama-plugin akho angaba usizo kwabanye, zizwe ukhululekile ukwabelana ngawo ku-GitHub. Qiniseka ukuthi uyawengeza esihlokweni
Ungaphinda ucele ukuthi i-plugin yakho yengezwe kuyo
Ukuqedwa komyalo
Ama-plugin okwamanje awakusekeli ukuqedela ngokuzenzakalela. Okusho ukuthi, kufanele ufake igama eligcwele le-plugin namagama aphelele wezingxabano.
Inqolobane ye-GitHub kubectl yalo msebenzi inakho
Ngikufisela inhlanhla!!!
Yini enye ongayifunda esihlokweni:
Amaleveli amathathu okulinganisa okuzenzakalelayo ku-Kubernetes nokuthi angawasebenzisa kanjani ngempumelelo .U-Kubernetes emoyeni wobugebengu ngesifanekiso sokusetshenziswa .Isiteshi sethu Around Kubernetes kuTelegram .
Source: www.habr.com