Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Idan kuna aiki tare da Kubernetes, to kubectl tabbas yana ɗaya daga cikin abubuwan amfani da kuke amfani da su. Kuma duk lokacin da kuka ɓata lokaci mai yawa don yin aiki tare da takamaiman kayan aiki, yana da kyau ku yi nazarinsa da kyau kuma ku koyi yadda ake amfani da shi yadda ya kamata.

tawagar Kubernetes aaS daga Mail.ru Fassara labarin Daniel Weibel wanda a ciki zaku sami nasihu da dabaru don yin aiki yadda ya kamata tare da kubectl. Hakanan zai taimaka muku samun zurfin fahimtar Kubernetes.

A cewar marubucin, makasudin labarin shine sanya aikin ku na yau da kullun tare da Kubernetes ba kawai mafi inganci ba, har ma da jin daɗi!

Gabatarwa: Menene kubectl

Kafin ka iya koyon amfani da kubectl yadda ya kamata, kana buƙatar samun fahimtar ainihin abin da yake da kuma yadda yake aiki.

Daga mahallin mai amfani, kubectl wani kwamiti ne mai kulawa wanda ke ba ku damar aiwatar da ayyukan Kubernetes.

Magana ta fasaha, kubectl abokin ciniki ne na Kubernetes API.

Kubernetes API shine HTTP REST API. Wannan API shine haɗin haɗin mai amfani na Kubernetes na gaskiya, ta inda ake sarrafa shi gaba ɗaya. Wannan yana nufin cewa kowane aikin Kubernetes yana fallasa azaman ƙarshen ƙarshen API kuma ana iya yin shi tare da buƙatar HTTP zuwa waccan ƙarshen.

Don haka, babban aikin kubectl shine yin buƙatun HTTP zuwa Kubernetes API:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Kubernetes tsarin ne gaba ɗaya da ya dace da albarkatu. Wannan yana nufin cewa yana kula da yanayin albarkatun cikin gida kuma duk ayyukan Kubernetes ayyukan CRUD ne.

Kuna da cikakken iko akan Kubernetes ta hanyar sarrafa waɗannan albarkatun, kuma Kubernetes ya ƙididdige abin da za ku yi dangane da halin yanzu na albarkatun. Don wannan dalili, an tsara bayanin Kubernetes API azaman jerin nau'ikan albarkatu tare da ayyukan haɗin gwiwa.

Bari mu kalli misali.

Bari mu ce kuna son ƙirƙirar albarkatun ReplicaSet. Don yin wannan, kuna kwatanta ReplicaSet a cikin fayil da suna replicaset.yaml, sannan gudanar da umarni:

$ kubectl create -f replicaset.yaml

Wannan zai haifar da albarkatun ReplicaSet. Amma me ke faruwa a bayan fage?

Kubernetes yana da aikin ƙirƙirar ReplicaSet. Kamar kowane aiki, ana fallasa shi azaman ƙarshen ƙarshen API. Ƙarshen ƙarshen API na wannan aiki yayi kama da haka:

POST /apis/apps/v1/namespaces/{namespace}/replicasets

Ana iya samun wuraren ƙarshen API na duk ayyukan Kubernetes a Bayanin API (ciki har da ƙarshen ƙarshen sama). Don yin ainihin buƙatu zuwa wurin ƙarshe, dole ne ka fara ƙara URL ɗin uwar garken API zuwa hanyoyin ƙarshen da aka jera a cikin ma'anar API.

Don haka, lokacin da kuka aiwatar da umarnin da ke sama, kubectl yana aika buƙatun HTTP POST zuwa ƙarshen ƙarshen API na sama. Ma'anar ReplicaSet da kuka bayar a cikin fayil ɗin replicaset.yaml, an aika a cikin jikin buƙatar.

Wannan shine yadda kubectl ke aiki don duk umarnin da ke hulɗa tare da tarin Kubernetes. A duk waɗannan lokuta, kubectl kawai yana yin buƙatun HTTP zuwa madaidaitan Kubernetes API na ƙarshe.

Lura cewa zaku iya cikakken sarrafa Kubernetes ta amfani da kayan aiki kamar curlta hanyar aika buƙatun HTTP da hannu zuwa Kubernetes API. Kubectl yana sauƙaƙe amfani da Kubernetes API.

Wannan shine tushen abin da kubectl yake da kuma yadda yake aiki. Amma akwai wani abu kuma game da Kubernetes API wanda kowane mai amfani da kubectl ya kamata ya sani. Bari mu bincika cikin sauri cikin duniyar Kubernetes ta ciki.

Duniyar ciki ta Kubernetes

Kubernetes ya ƙunshi saitin abubuwa masu zaman kansu waɗanda ke gudana azaman matakai daban-daban akan nodes ɗin tari. Wasu sassa suna gudana akan nodes na ma'aikata, wasu akan nodes na ma'aikata, kowane sashi yana yin takamaiman aikin sa.

Anan akwai mahimman abubuwan haɗin gwiwa akan manyan nodes:

  1. Vault - yana adana ma'anar albarkatu (yawanci yana da dai sauransu).
  2. API ɗin uwar garken - yana ba da API kuma yana sarrafa ajiya.
  3. Manajan Gudanarwa - Tabbatar da cewa matsayin albarkatun sun bi ƙayyadaddun bayanai.
  4. Mai tsara jadawalin - jadawali kwafsa a kan nodes na ma'aikata.

Kuma a nan ne ɗayan mafi mahimmancin sashi akan nodes na ma'aikata:

  1. kubelet - kulawa da ƙaddamar da kwantena a kan kumburin aiki.

Don fahimtar yadda waɗannan sassan ke aiki tare, bari mu kalli misali.

Bari mu ɗauka cewa kun kammala kubectl create -f replicaset.yaml, bayan haka kubectl ya yi buƙatun HTTP POST zuwa Ƙarshen API ɗin ReplicaSet (wuce ma'anar albarkatun ReplicaSet).

Me ke faruwa a cikin gungu?

  1. Bayan yayi kubectl create -f replicaset.yaml Sabar API tana adana ma'anar albarkatun ReplicaSet a cikin ma'adana:

    Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora

  2. Bayan haka, an ƙaddamar da mai sarrafa ReplicaSet a cikin mai sarrafa mai sarrafawa, wanda ke sarrafa ƙirƙira, gyare-gyare da share albarkatun ReplicaSet:

    Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora

  3. Mai sarrafa ReplicaSet yana ƙirƙirar ma'anar kwaf don kowane ReplicaSet Replica (bisa ga samfurin kwafsa a cikin ma'anar ReplicaSet) kuma yana adana su a cikin ajiya:

    Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora

  4. An ƙaddamar da mai tsara jadawalin, ƙwanƙolin bin diddigin waɗanda har yanzu ba a sanya su ga kowane kullin ma'aikaci ba:

    Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora

  5. Mai tsara jadawalin yana zaɓar kullin ma'aikaci mai dacewa ga kowane kwafsa kuma ya ƙara wannan bayanin zuwa ma'anar kwaf ɗin a cikin shagon:

    Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora

  6. A kan kumburin ma'aikaci wanda aka sanya kwas ɗin, an ƙaddamar da Kubelet, yana bin kwas ɗin da aka sanya zuwa wannan kumburi:

    Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora

  7. Kubelet yana karanta ma'anar kwas ɗin daga ajiya kuma yana ba da umarni lokacin aiki na ganga, kamar Docker, don ƙaddamar da kwantena akan kumburi:

    Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora

A ƙasa akwai sigar rubutu na wannan bayanin.

Buƙatun API zuwa ƙarshen ƙirƙirar ReplicaSet ana sarrafa shi ta uwar garken API. Sabar API ta tabbatar da buƙatar kuma tana adana ma'anar albarkatun ReplicaSet a cikin ma'aji.

Wannan taron yana farawa mai sarrafa ReplicaSet, wanda ƙaramin tsari ne na manajan mai sarrafawa. Mai sarrafa ReplicaSet yana lura da ƙirƙira, ɗaukakawa, da share albarkatun ReplicaSet a cikin shagon kuma yana karɓar sanarwar taron lokacin da wannan ya faru.

Ayyukan mai sarrafa ReplicaSet shine tabbatar da cewa adadin da ake buƙata na kwas ɗin ReplicaSet ya wanzu. A cikin misalinmu, babu kwas ɗin da ya wanzu har yanzu, don haka mai sarrafa ReplicaSet yana ƙirƙirar waɗannan fassarori (bisa ga samfurin kwas ɗin a cikin ma'anar ReplicaSet) kuma yana adana su a cikin ajiya.

Ƙirƙirar sabbin kwas ɗin yana haifar da mai tsara jadawalin da ke lura da ma'anar kwafsa waɗanda ba a riga an tsara su don nodes ɗin ma'aikata ba. Mai tsara jadawalin zai zaɓi kullin ma'aikaci mai dacewa don kowane kwafsa kuma yana sabunta ma'anar kwaf ɗin a cikin ma'ajiyar.

Lura cewa har zuwa wannan lokacin, babu lambar aikin aiki da ke gudana a ko'ina a cikin gungu. Duk abin da aka yi ya zuwa yanzu - wannan shine ƙirƙira da sabunta albarkatun a cikin ma'ajin a kan kullin maigidan.

Lamarin na ƙarshe yana haifar da Kubelets, waɗanda ke lura da kwas ɗin da aka tsara don nodes ɗin ma'aikatan su. Kubelet na kumburin ma'aikaci wanda aka shigar da kwas ɗin ReplicaSet ɗinku dole ne ya ba da umarni lokacin aikin ganga, kamar Docker, don zazzage hotunan kwandon da ake buƙata kuma gudanar da su.

A wannan gaba, aikace-aikacenku na ReplicaSet yana aiki a ƙarshe!

Matsayin Kubernetes API

Kamar yadda kuka gani a cikin misalin da ya gabata, abubuwan haɗin Kubernetes (ban da uwar garken API da ajiya) suna kallon canje-canje ga albarkatu a cikin ajiya da canza bayanai game da albarkatu a cikin ajiya.

Tabbas, waɗannan abubuwan haɗin ba sa hulɗa tare da ajiya kai tsaye, amma ta hanyar Kubernetes API kawai.

Ka yi la’akari da misalan da ke gaba:

  1. Mai sarrafa ReplicaSet yana amfani da ƙarshen ƙarshen API jeri ReplicaSets tare da siga watch don saka idanu canje-canje ga albarkatun ReplicaSet.
  2. Mai sarrafa ReplicaSet yana amfani da ƙarshen ƙarshen API ƙirƙirar Pod (ƙirƙirar kwasfa) don ƙirƙirar kwasfa.
  3. Mai tsarawa yana amfani da ƙarshen API faci kwaf (gyara pods) don sabunta kwasfan fayiloli tare da bayani game da kullin ma'aikaci da aka zaɓa.

Kamar yadda kuke gani, wannan shine API ɗin da kubectl ke shiga. Yin amfani da API iri ɗaya don abubuwan ciki da masu amfani da waje shine ainihin ra'ayi a cikin ƙirar Kubernetes.

Yanzu za mu iya taƙaita yadda Kubernetes ke aiki:

  1. Ma'ajiyar ajiyar tana bayyana, wato, albarkatun Kubernetes.
  2. Sabar API tana ba da hanyar sadarwa zuwa ma'ajiyar ta hanyar Kubernetes API.
  3. Duk sauran abubuwan haɗin Kubernetes da masu amfani suna karantawa, lura, da sarrafa jihar Kubernetes (albarkatun) ta API.

Sanin waɗannan ra'ayoyin zai taimaka muku fahimtar kubectl da kyau kuma ku sami mafi kyawun sa.

Yanzu bari mu kalli wasu takamaiman shawarwari da dabaru waɗanda zasu taimaka haɓaka haɓaka aikin ku tare da kubectl.

1. Saurin shigarwa ta amfani da kammala umarni

Ɗaya daga cikin mafi amfani, amma sau da yawa ba a kula da su, dabaru don inganta aiki tare da kubectl shine kammala umarni.

Ƙarshen umarni yana ba ku damar kammala sassan umarnin kubectl ta atomatik ta amfani da maɓallin Tab. Wannan yana aiki don ƙananan umarni, zaɓuɓɓuka, da muhawara, gami da wani abu mai rikitarwa kamar sunayen albarkatu.

Dubi yadda umarnin kubectl ke aiki:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Ƙarshen umarni yana aiki don harsashi na Bash da Zsh.

Jagorar hukuma yana ƙunshe da cikakkun bayanai don saita aikin atomatik, amma a ƙasa za mu samar da ɗan taƙaitaccen bayani.

Yadda kammala umarni ke aiki

Ƙarshen umarni fasalin harsashi ne wanda ke aiki ta amfani da rubutun kammalawa. Rubutun tsawaita rubutun harsashi ne wanda ke bayyana halayen tsawo don takamaiman umarni.

Kubectl yana ƙirƙira da fitar da rubutun tsawaita ta atomatik don Bash da Zsh ta amfani da umarni masu zuwa:

$ kubectl completion bash

Ko:

$ kubectl completion zsh

A cikin ka'idar, ya isa ya haɗa fitar da waɗannan umarni zuwa harsashin umarni da ya dace don kubectl ya iya cika umarnin.

A aikace, hanyar haɗin kai ta bambanta ga Bash (ciki har da bambance-bambance tsakanin Linux da MacOS) da Zsh. A ƙasa za mu dubi duk waɗannan zaɓuɓɓuka.

Bash na Linux

Rubutun kammala Bash ya dogara da kunshin kammalawar bash, don haka kuna buƙatar shigar da shi da farko:

$ sudo apt-get install bash-completion

Ko:

$ yum install bash-completion

Kuna iya gwada cewa an shigar da kunshin cikin nasara ta amfani da umarni mai zuwa:

$ type _init_completion

Idan wannan yana fitar da lambar aikin harsashi, to an shigar da bash-completion daidai. Idan umarnin ya ba da kuskuren "Ba a samo shi ba", kuna buƙatar ƙara layin da ke gaba zuwa fayil ɗin ku ~ / .bashrc:

$ source /usr/share/bash-completion/bash_completion

Shin wajibi ne a ƙara wannan layin zuwa fayil ɗin ~ / .bashrc ko a'a ya dogara da mai sarrafa kunshin da kuka yi amfani da shi don shigar da bash-completion. Wannan wajibi ne ga APT, amma ba don YUM ba.

Bayan shigar da bash-completion, kuna buƙatar saita komai domin an kunna rubutun kubectl a duk zaman harsashi.

Hanya ɗaya don yin wannan ita ce ƙara layin da ke gaba zuwa fayil ɗin ~ / .bashrc:

source <(kubectl completion bash)

Wata hanya ita ce ƙara rubutun tsawaita kubectl zuwa kundin adireshi /etc/bash_completion.d (ƙirƙira shi idan babu shi):

$ kubectl completion bash >/etc/bash_completion.d/kubectl

Duk rubutun add-on a cikin kasida /etc/bash_completion.d ana haɗa su ta atomatik cikin kammala bash.

Dukansu zaɓuɓɓukan suna aiki daidai.

Bayan sake kunna harsashi, kubectl umurnin kammala zai yi aiki.

Bash a kan MacOS

A kan MacOS saitin ya ɗan fi rikitarwa. Gaskiyar ita ce ta hanyar tsoho, MacOS yana amfani da nau'in Bash 3.2, kuma rubutun kubectl autocompletion yana buƙatar nau'in Bash na akalla 4.1 kuma baya aiki a cikin Bash 3.2.

Akwai batutuwan lasisi masu alaƙa da amfani da tsohuwar sigar Bash akan MacOS. Sigar Bash 4 tana da lasisi ƙarƙashin GPLv3, wanda Apple ba ya da tallafi.

Don saita kubectl autocompletion akan MacOS, kuna buƙatar shigar da sabon sigar Bash. Hakanan zaka iya saita sabunta Bash azaman tsohuwar harsashi, wanda zai cece ku da yawa matsaloli a gaba. Ba shi da wahala, an ba da cikakkun bayanai a cikin labarin "Ana sabunta Bash akan MacOS".

Kafin ci gaba, tabbatar da cewa kuna amfani da sabon sigar Bash (duba fitarwa bash --version).

Rubutun kammala Bash ya bambanta da aiki bash-cimmala, don haka kuna buƙatar shigar da shi da farko.

Kuna iya shigar da bash-completion ta amfani da Homebrew:

$ brew install bash-completion@2

Yana da @2 yana tsaye ga bash-completion version 2. kubectl autocompletion yana buƙatar bash-completion v2, kuma bash-completion v2 yana buƙatar ƙaramin nau'in Bash 4.1.

Fitowar umarni brew-install ya ƙunshi sashin Caveats, wanda ke ƙayyadaddun abin da ake buƙatar ƙarawa a cikin fayil ɗin ~/.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"

Duk da haka, Ina ba da shawarar ƙara waɗannan layin ba zuwa ~/.bash_profile, kuma cikin ~/.bashrc. A wannan yanayin, ƙaddamarwa ta atomatik zai kasance ba kawai a cikin babba ba, har ma a cikin harsashi umarnin yara.

Bayan sake kunna harsashin umarni, zaku iya tabbatar da shigarwa daidai ne ta amfani da umarni mai zuwa:

$ type _init_completion

Idan kun ga aikin harsashi a cikin fitarwa, to komai yana daidaita daidai.

Yanzu muna buƙatar tabbatar da cewa an kunna kubectl autocompletion a duk zaman.

Hanya ɗaya ita ce ƙara layin da ke gaba zuwa naka ~/.bashrc:

source <(kubectl completion bash)

Hanya ta biyu ita ce ƙara rubutun da ya cika ta atomatik zuwa babban fayil ɗin /usr/local/etc/bash_completion.d:

$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl

Wannan hanyar za ta yi aiki ne kawai idan kun shigar da bash-completion ta amfani da Homebrew. A wannan yanayin, bash-completion yana ɗaukar duk rubutun daga wannan kundin adireshi.

Idan kun shigar kubectl ta amfani da Homebrew, to babu buƙatar aiwatar da matakin da ya gabata, tun da za a sanya rubutun kammalawa ta atomatik a cikin babban fayil ɗin. /usr/local/etc/bash_completion.d a lokacin shigarwa. A wannan yanayin, kubectl autocompletion zai fara aiki da zarar kun shigar da bash-completion.

A sakamakon haka, duk waɗannan zaɓuɓɓuka sun yi daidai.

Zsh

Rubutun kammala atomatik na Zsh baya buƙatar kowane abin dogaro. Duk abin da kuke buƙatar yi shine kunna su lokacin da kuke loda harsashin umarni.

Kuna iya yin haka ta ƙara layi zuwa naku ~/.zshrc fayil:

source <(kubectl completion zsh)

Idan kun sami kuskure not found: compdef bayan sake kunna harsashin ku, kuna buƙatar kunna aikin ginannen compdef. Kuna iya kunna shi ta ƙara shi zuwa farkon fayil ɗin ku ~/.zshrc mai zuwa:

autoload -Uz compinit
compinit

2. Duba ƙayyadaddun bayanai da sauri

Lokacin da kuka ƙirƙiri ma'anar albarkatun YAML, kuna buƙatar sanin filayen da ma'anarsu ga waɗannan albarkatun. Wuri ɗaya don neman wannan bayanin yana cikin ma'anar API, wanda ya ƙunshi cikakkun bayanai na duk albarkatun.

Koyaya, canzawa zuwa mai binciken gidan yanar gizo duk lokacin da kuke buƙatar neman wani abu ba shi da daɗi. Saboda haka kubectl yana ba da umarnin kubectl explain, wanda ke nuna ƙayyadaddun duk albarkatun daidai a cikin tashar ku.

Tsarin umarni shine kamar haka:

$ kubectl explain resource[.field]...

Umurnin zai fitar da ƙayyadaddun bayanai na albarkatu ko filin da ake nema. Bayanan da aka nuna iri ɗaya ne da wanda ke ƙunshe a cikin littafin API.

da default kubectl explain ya nuna kawai matakin farko na nsting na filayen.

Dubi yadda yake kama na iya zama anan.

Kuna iya nuna duk bishiyar idan kun ƙara zaɓi --recursive:

$ kubectl explain deployment.spec --recursive

Idan baku san ainihin waɗanne albarkatun ake buƙata ba, zaku iya nuna su duka tare da umarni mai zuwa:

$ kubectl api-resources

Wannan umarnin yana nuna sunayen albarkatu a cikin jam'i, misali. deployments maimakon deployment. Hakanan yana nuna gajeriyar suna, misali deploy, ga albarkatun da suke da shi. Kada ku damu da waɗannan bambance-bambance. Duk waɗannan zaɓuɓɓukan suna suna daidai da kubectl. Wato, zaku iya amfani da kowane ɗayansu don kubectl explain.

Duk waɗannan umarni daidai suke:

$ kubectl explain deployments.spec
# или
$ kubectl explain deployment.spec
# или        
$ kubectl explain deploy.spec

3. Yi amfani da tsarin fitarwa na al'ada

Tsohuwar tsarin fitarwa na umarni 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

Wannan tsari ya dace, amma ya ƙunshi taƙaitaccen adadin bayanai. Idan aka kwatanta da cikakken tsarin ma'anar albarkatu, ƴan filaye ne kawai ake nunawa anan.

A wannan yanayin, zaku iya amfani da tsarin fitarwa na al'ada. Yana ba ka damar ƙayyade abin da bayanai don fitarwa. Kuna iya nuna kowane filin albarkatu azaman ginshiƙi daban.

An ƙayyade amfani da tsarin al'ada ta amfani da zaɓuɓɓuka:

-o custom-columns=<header>:<jsonpath>[,<header>:<jsonpath>]...

Kuna iya ayyana kowane ginshiƙin fitarwa azaman biyu <header>:<jsonpath>inda <header> shine sunan shafi, kuma <jsonpath> - magana mai ma'anar filin albarkatu.

Bari mu kalli misali mai sauƙi:

$ kubectl get pods -o custom-columns='NAME:metadata.name'

NAME
engine-544b6b6467-22qr6
engine-544b6b6467-lw5t8
engine-544b6b6467-tvgmg
web-ui-6db964458-8pdw4

Fitowar ta ƙunshi shafi ɗaya tare da sunayen kwas ɗin.

Zaɓin zaɓi yana zaɓar sunayen kwas ɗin daga filin metadata.name. Wannan saboda an bayyana sunan kwaf ɗin a filin sunan yara metadata a cikin bayanin albarkatun kwafsa. Ana iya samun ƙarin cikakkun bayanai a ciki API Jagora ko rubuta umarnin kubectl explain pod.metadata.name.

Yanzu bari mu ce kuna son ƙara ƙarin shafi zuwa abubuwan fitarwa, misali nuna kumburin kowane kwafsa yana gudana. Don yin wannan, kawai kuna iya ƙara ƙayyadaddun shafi mai dacewa zuwa zaɓi na ginshiƙan al'ada:

$ 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

Kalmomin suna zaɓar sunan kumburi daga spec.nodeName - lokacin da aka sanya kwasfa zuwa kumburi, ana rubuta sunansa a filin spec.nodeName kwafsa albarkatun ƙayyadaddun. Ana iya samun ƙarin cikakkun bayanai a cikin fitarwa kubectl explain pod.spec.nodeName.

Lura cewa filayen albarkatun Kubernetes suna da hankali.

Kuna iya duba kowane filin albarkatu azaman shafi. Kawai bita ƙayyadaddun kayan aiki kuma gwada su tare da kowane filayen da kuke so.

Amma da farko, bari mu yi la'akari dalla-dalla kan maganganun zaɓin filin.

Bayanin JSONPath

Kalmomi don zaɓar filayen albarkatun sun dogara ne akan JSONPath.

JSONPath yare ne don maido da bayanai daga takaddun JSON. Zaɓi filin guda ɗaya shine mafi sauƙin yanayin amfani don JSONPath. Yana da yawa karin damar, gami da masu zaɓe, masu tacewa da sauransu.

Kubectl yayi bayani yana goyan bayan ƙayyadaddun fasalulluka na JSONPath. An bayyana yiwuwa da misalan amfani da su a ƙasa:

# Выбрать все элементы списка
$ 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'

Mai aiki [] yana da mahimmanci musamman. Yawancin filayen albarkatun Kubernetes lissafin ne, kuma wannan ma'aikacin yana ba ku damar zaɓar membobin waɗannan lissafin. Yawancin lokaci ana amfani da shi tare da kati kamar [*] don zaɓar duk abubuwan lissafin.

Misalai na aikace-aikace

Yiwuwar amfani da tsarin fitarwa na al'ada ba su da iyaka, saboda kuna iya nuna kowane fili ko haɗin filayen albarkatu a cikin fitarwa. Anan akwai wasu samfurori na samfurori, amma jin daɗin bincika su da kanku kuma nemo aikace-aikacen da ke aiki a gare ku.

  1. Nuna hotunan kwantena don kwasfa:
    $ 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

    Wannan umarnin yana nuna sunayen hoton ganga na kowane kwafsa.

    Ka tuna cewa kwasfa na iya ƙunsar kwantena da yawa, sannan za a nuna sunayen hoton akan layi ɗaya, wanda aka raba ta hanyar waƙafi.

  2. Nuna wuraren samuwa na kumburi:
    $ 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

    Wannan umarnin yana da amfani idan an shirya tarin ku a cikin gajimare na jama'a. Yana nuna yankin samuwa ga kowane kumburi.

    Yankin samuwa shine ra'ayi na girgije wanda ke iyakance yankin maimaitawa zuwa yankin yanki.

    Ana samun wuraren samuwa ga kowane kumburi ta hanyar lakabi na musamman - failure-domain.beta.kubernetes.io/zone. Idan gungu yana gudana a cikin gajimare na jama'a, ana ƙirƙira wannan alamar ta atomatik kuma tana cike da sunayen wuraren samuwa na kowane kumburi.

    Takaddun ba su cikin ƙayyadaddun bayanai na Kubernetes, don haka ba za ku sami bayani game da su a ciki ba API Jagora. Koyaya, ana iya ganin su (kamar kowane tambari) idan kun nemi bayani game da nodes a tsarin YAML ko JSON:

    $ kubectl get nodes -o yaml
    # или
    $ kubectl get nodes -o json

    Wannan babbar hanya ce don ƙarin koyo game da albarkatu, ban da ƙayyadaddun bayanai na koyo.

4. Sauƙaƙe canzawa tsakanin gungu da wuraren suna

Lokacin da kubectl yayi buƙatu zuwa Kubernetes API, ya fara karanta fayil ɗin kubeconfig don samun duk mahimman sigogin haɗin.

Ta hanyar tsoho fayil ɗin kubeconfig shine ~/.kube/config. Yawanci ana ƙirƙira ko sabunta wannan fayil ɗin ta wani umarni na musamman.

Lokacin da kuke aiki tare da gungu da yawa, fayil ɗin kubeconfig ɗinku yana ƙunshe da saituna don haɗawa zuwa duk waɗannan gungu. Kuna buƙatar wata hanya don gaya wa umarnin kubectl wane gungu kuke aiki da shi.

A cikin gungu, zaku iya ƙirƙirar wuraren sunaye-wani nau'in tari mai kama da juna a cikin gungu na zahiri. Kubectl kuma yana ƙayyade ko wane yanki sunan da za a yi amfani da shi dangane da fayil ɗin kubeconfig. Wannan yana nufin kuna buƙatar wata hanya don gaya wa umarnin kubectl abin da filin suna don aiki da shi.

A cikin wannan babin za mu yi bayanin yadda yake aiki da kuma yadda za mu sa shi aiki yadda ya kamata.

Lura cewa kuna iya samun fayilolin kubeconfig da yawa da aka jera a cikin canjin yanayi na KUBECONFIG. A wannan yanayin, duk waɗannan fayilolin za a haɗa su cikin tsari guda ɗaya a lokacin aiki. Hakanan zaka iya canza tsohuwar fayil ɗin kubeconfig ta hanyar kunna kubectl tare da siga --kubeconfig. Duba takardun hukuma.

kubeconfig fayiloli

Bari mu ga abin da ainihin fayil ɗin kubeconfig ya ƙunshi:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Kamar yadda kake gani, fayil ɗin kubeconfig ya ƙunshi saitin mahallin. Maganar ta ƙunshi abubuwa uku:

  • Cluster — API URL na uwar garken tari.
  • Mai amfani - Takaddun shaidar mai amfani a cikin tari.
  • Sunan suna - filin suna da ake amfani dashi lokacin shiga tari.

A aikace, galibi suna amfani da mahallin mahallin guda ɗaya a kowane gungu a cikin kubeconfig. Koyaya, zaku iya samun mahallin mahalli da yawa kowace tari, bambanta ta mai amfani ko sarari suna. Duk da haka, wannan ƙayyadaddun yanayin yanayi ba sabon abu bane, don haka yawanci ana yin taswira ɗaya zuwa ɗaya tsakanin tari da mahallin.

A kowane lokaci, ɗaya daga cikin mahallin yana halin yanzu:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Lokacin da kubectl ya karanta fayil ɗin sanyi, koyaushe yana ɗaukar bayanai daga mahallin yanzu. A cikin misalin da ke sama, kubectl zai haɗa zuwa gungu na Hare.

Saboda haka, don canzawa zuwa wani gungu, kuna buƙatar canza yanayin halin yanzu a cikin fayil ɗin kubeconfig:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Yanzu kubectl zai haɗa zuwa gungu na Fox.

Don canzawa zuwa wani wuri daban a cikin gungu iri ɗaya, kuna buƙatar canza ƙimar ɓangaren sunan don mahallin yanzu:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
A cikin misalin da ke sama, kubectl zai yi amfani da faifan sunaye na Fox cluster's Prod (a baya an saita sararin sunan Gwajin).

Lura cewa kubectl kuma yana ba da zaɓuɓɓuka --cluster, --user, --namespace и --context, wanda ke ba ka damar sake rubuta abubuwa guda ɗaya da kuma mahallin halin yanzu kanta, ba tare da la'akari da abin da aka saita a cikin kubeconfig ba. Duba kubectl options.

A ka'idar, zaku iya canza saitunan da hannu a cikin kubeconfig. Amma ba dadi. Don sauƙaƙe waɗannan ayyukan, akwai abubuwan amfani daban-daban waɗanda ke ba ku damar canza sigogi ta atomatik.

Yi amfani da kubectx

Shahararriyar abin amfani don sauyawa tsakanin gungu da wuraren suna.

Mai amfani yana ba da umarni kubectx и kubens don canza yanayin halin yanzu da sararin suna bi da bi.

Kamar yadda aka ambata, canza mahallin yanzu yana nufin canza gungu idan mahallin mahalli ɗaya kawai kuke da shi a kowane gungu.

Ga misalin gudanar da waɗannan umarni:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Mahimmanci, waɗannan umarni kawai suna gyara fayil ɗin kubeconfig kamar yadda aka bayyana a sama.

don sakawa kubectx, bi umarnin kan Github.

Dukansu umarni suna goyan bayan kammala aikin kai tsaye na mahallin da sunayen sararin samaniya, wanda ke kawar da buƙatar buga su gaba ɗaya. Umurnai don saita cikawa ta atomatik a nan.

Wani fasali mai amfani kubectx shi ne yanayin m. Yana aiki tare da mai amfani fzf, wanda dole ne a shigar daban. Shigar da fzf ta atomatik yana samar da yanayin hulɗa ta atomatik a ciki kubectx. Ta hanyar haɗin gwiwa, zaku iya zaɓar mahallin mahallin da sarari suna ta hanyar bincike mai ma'amala kyauta ta fzf.

Yin amfani da laƙabi na shell

Ba kwa buƙatar kayan aikin daban don canza mahallin yanzu da sarari suna saboda kubectl kuma yana ba da umarni don wannan. Ee, tawaga kubectl config yana ba da umarni na ƙasa don gyara fayilolin kubeconfig.

Ga wasu daga cikinsu:

  • kubectl config get-contexts: nuna duk mahallin;
  • kubectl config current-context: samun mahallin yanzu;
  • kubectl config use-context: canza yanayin halin yanzu;
  • kubectl config set-context: Canja abin mahallin.

Koyaya, yin amfani da waɗannan umarni kai tsaye bai dace sosai ba saboda suna da tsayi. Kuna iya yin musu lakabin harsashi masu sauƙin aiwatarwa.

Na ƙirƙiri saitin laƙabi bisa waɗannan umarni waɗanda ke ba da ayyuka kama da kubectx. Anan za ku iya ganin su a cikin aiki:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Lura cewa masu laƙabi suna amfani da fzf don samar da mahallin bincike na kyauta (kamar yanayin mu'amalar kubectx). Wannan yana nufin kuna buƙata shigar fzfdon amfani da waɗannan laƙabi.

Ga ma'anar laƙabi da kansu:

# Получить текущий контекст
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/^..//")"'

Don saita waɗannan laƙabi kuna buƙatar ƙara ma'anar da ke sama zuwa fayil ɗin ku ~/.bashrc ko ~/.zshrc kuma sake yi harsashi.

Amfani da plugins

Kubectl yana ba ku damar ɗora plugins waɗanda aka aiwatar ta hanya ɗaya da umarni na asali. Kuna iya, alal misali, shigar da kubectl-foo plugin kuma gudanar da shi ta aiwatar da umarnin kubectl foo.

Zai zama dacewa don canza mahallin da sunan suna ta wannan hanya, misali ta hanyar gudu kubectl ctx don canza mahallin kuma kubectl ns don canja wurin suna.

Na rubuta plugins guda biyu waɗanda ke yin haka:

Ayyukan plugins sun dogara ne akan laƙabi daga sashin da ya gabata.

Ga yadda suke aiki:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Lura cewa plugins ɗin suna amfani da fzf don samar da mahallin bincike na kyauta (kamar yanayin mu'amalar kubectx). Wannan yana nufin kuna buƙata shigar fzfdon amfani da waɗannan laƙabi.

Don shigar da plugins, kuna buƙatar zazzage rubutun harsashi mai suna kubectl-ctx и kubectl-ns zuwa kowane kundin adireshi a cikin canjin PATH kuma sanya su aiwatar da su tare da misali. chmod +x. Nan da nan bayan wannan za ku iya amfani da shi kubectl ctx и kubectl ns.

5. Rage shigarwa tare da autoaliases

Laƙabin Shell hanya ce mai kyau don hanzarta shigarwa. Aikin kubectl-aliases ya ƙunshi kusan gajerun hanyoyi guda 800 don ainihin umarnin kubectl.

Kuna iya yin mamaki - ta yaya kuke tunawa da laƙabi 800? Amma ba kwa buƙatar tuna su duka, saboda an gina su bisa ga tsari mai sauƙi, wanda aka ba a ƙasa:

Yadda ake amfani da kubectl yadda ya kamata: cikakken jagora
Alal misali:

  1. kgpooyaml - kubectl samun kwas ɗin oyaml
  2. ksysgsvcw - kubectl -n kube-tsarin samun svc w
  3. ksysrmcm -kubectl -n kube-tsarin rm cm
  4. kgdepallsl - kubectl sami tura duk sl

Kamar yadda kake gani, laƙabi sun ƙunshi sassa, kowannensu yana wakiltar takamaiman yanki na umarnin kubectl. Kowace laƙabi na iya samun sashi ɗaya don umarni na tushe, aiki, da albarkatu, da abubuwa da yawa don sigogi. Kuna kawai "cika" waɗannan abubuwan daga hagu zuwa dama bisa ga zanen da ke sama.

Cikakken zane na yanzu yana a GitHub. A can kuma za ku iya samun cikakken jerin sunayen laƙabi.

Misali, wanda aka fi sani da kgpooyamlall yana daidai da umarnin kubectl get pods -o yaml --all-namespaces.

Tsarin dangi na zaɓuɓɓuka ba shi da mahimmanci: umarni kgpooyamlall yayi daidai da umarnin kgpoalloyaml.

Ba dole ba ne ka yi amfani da duk abubuwan da aka gyara azaman laƙabi. Misali k, kg, klo, ksys, kgpo kuma za a iya amfani da. Haka kuma, zaku iya haɗa laƙabi da umarni na yau da kullun ko zaɓuɓɓuka akan layin umarni:

Alal misali:

  1. Madadin haka kubectl proxy za ka iya rubuta k proxy.
  2. Madadin haka kubectl get roles za ka iya rubuta kg roles (a halin yanzu babu wani laƙabi ga albarkatun Roles).
  3. Don samun bayanai don takamaiman kwafsa, zaku iya amfani da umarnin kgpo my-pod — kubectl get pod my-pod.

Lura cewa wasu laƙabi suna buƙatar gardamar layin umarni. Misali, alias kgpol yana nufin kubectl get pods -l. Zabin -l yana buƙatar hujja - ƙayyadaddun lakabi. Idan ka yi amfani da alias zai yi kama kgpol app=ui.

Domin wasu laƙabi suna buƙatar gardama, laƙabin a, f, da l dole ne a yi amfani da su a ƙarshe.

Gabaɗaya, da zarar kun sami rataye wannan makirci, zaku iya samun laƙabi da hankali daga umarnin da kuke son aiwatarwa da adana lokaci mai yawa na bugawa.

shigarwa

Don shigar da kubectl-aliases, kuna buƙatar zazzage fayil ɗin .kubectl_aliases daga GitHub kuma haɗa shi a cikin fayil ɗin ~/.bashrc ko ~/.zshrc:

source ~/.kubectl_aliases

Kammalawa ta atomatik

Kamar yadda muka fada a baya, kuna yawan ƙara ƙarin kalmomi zuwa wani laƙabi akan layin umarni. Misali:

$ kgpooyaml test-pod-d4b77b989

Idan kun yi amfani da kubectl kammala umarni, tabbas kun yi amfani da aikin atomatik don abubuwa kamar sunayen albarkatu. Amma za a iya yin hakan yayin da ake amfani da laƙabi?

Wannan tambaya ce mai mahimmanci don idan aikin atomatik bai yi aiki ba, zaku rasa wasu fa'idodin laƙabi.

Amsar ta dogara da wane harsashi kuke amfani da shi:

  1. Don Zsh, ƙaddamar da laƙabi yana aiki daga cikin akwatin.
  2. Ga Bash, abin takaici, ana buƙatar wasu ayyuka don samun aikin atomatik don aiki.

Ba da damar kammala auto don laƙabi a cikin Bash

Matsalar Bash ita ce yana ƙoƙarin kammalawa (duk lokacin da ka danna Tab) alias, ba umarnin da alias yake nufi ba (kamar yadda Zsh yayi, misali). Tun da ba ku da rubutun kammalawa na duk laƙabi 800, ƙaddamarwa ta atomatik baya aiki.

Wannan aikin cikakken-alas yana ba da mafita ga wannan matsala gaba ɗaya. Yana haɗi zuwa tsarin gamawa don laƙabi, a ciki yana faɗaɗa laƙabin zuwa umarni, kuma yana mayar da zaɓuɓɓukan kammalawa don umarnin da aka kammala. Wannan yana nufin cewa padding na wanda aka ce masa yana yin daidai da cikakken umarni.

A cikin mai zuwa, zan fara bayanin yadda ake shigar da complete-alias sannan kuma yadda ake daidaita shi don ba da damar kammalawa ga duk laƙabin kubectl.

Shigar da cikakken laƙabi

Da farko, cikakken-alias ya dogara da bash-cimmala. Don haka, kafin shigar da cikakken laƙabi, kuna buƙatar tabbatar da cewa an shigar da bash-completion. An ba da umarnin shigarwa a baya don Linux da MacOS.

Muhimmiyar Bayani ga Masu amfani da MacOS: Kamar rubutun kubectl autocompletion, cikakken-alias baya aiki tare da Bash 3.2, wanda shine tsoho akan MacOS. Musamman, cikakken-alas ya dogara da bash-completion v2 (brew install bash-completion@2), wanda ke buƙatar aƙalla Bash 4.1. Wannan yana nufin cewa don amfani da cikakken laƙabi akan MacOS kuna buƙatar shigar da sabon sigar Bash.

Kuna buƙatar zazzage rubutun bash_kammala.sh daga Wurin ajiya na GitHub kuma saka shi a cikin fayil ɗin ku ~/.bashrc:

source ~/bash_completion.sh

Bayan sake kunna harsashi, za a shigar da cikakken laƙabi.

Ba da damar kammala aikin atomatik don laƙabin kubectl

Cikakkun fasaha na fasaha yana ba da aikin nannade _complete_alias. Wannan aikin yana bincika laƙabin kuma yana dawo da alamun kammala don umarnin laƙabin.

Don haɗa aiki tare da takamaiman laƙabi, kuna buƙatar amfani da ginanniyar tsarin Bash complete, don shigarwa _complete_alias a matsayin aikin kammala laƙabi.

A matsayin misali, bari mu ɗauki laƙabin k, wanda ke tsaye ga umarnin kubectl. don shigarwa _complete_alias A matsayin aikin haɓakawa na wannan laƙabin, yakamata ku gudanar da umarni mai zuwa:

$ complete -F _complete_alias k

Sakamakon wannan shine cewa duk lokacin da ka kammala autocomplete alias k, ana kiran aikin _complete_alias, wanda ke bincika laƙabin kuma ya dawo da alamun kammala umarnin kubectl.

A matsayin misali na biyu, bari mu ɗauki laƙabi kg, wanda ke nuni kubectl get:

$ complete -F _complete_alias kg

Kamar dai a cikin misalin da ya gabata, lokacin da kuka cika kilogiram ta atomatik, kuna samun alamun kammalawa iri ɗaya waɗanda zaku samu. kubectl get.

Lura cewa zaku iya amfani da cikakken laƙabi ga kowane laƙabi akan tsarin ku.

Don haka, don ba da damar kammalawa ta atomatik ga duk laƙabin kubectl, kuna buƙatar gudanar da umarnin da ke sama don kowane ɗayansu. Wannan snippet mai zuwa yana yin daidai wannan, muddin kun saita kubectl-aliases zuwa ~/.kubectl-aliases:

for _a in $(sed '/^alias /!d;s/^alias //;s/=.*$//' ~/.kubectl_aliases); 
do
  complete -F _complete_alias "$_a"
done

Ana buƙatar sanya wannan yanki na lambar a cikin ku ~/.bashrc, sake kunna harsashin umarni kuma aikin atomatik zai kasance don duk laƙabin kubectl 800.

6. Ƙara kubectl tare da plugins

Fara daga sigar 1.12, kubectl yana goyan bayan plugin inji, wanda ke ba ka damar faɗaɗa ayyukansa tare da ƙarin umarni.

Idan kun saba da Git plugin hanyoyin, sannan kubectl plugins an gina su akan wannan ka'ida.

A cikin wannan babi, za mu rufe yadda ake shigar da plugins, inda za a samo su, da yadda ake ƙirƙirar plugins na ku.

Sanya plugins

Kubectl plugins ana rarraba su azaman fayilolin aiwatarwa masu sauƙi tare da suna kamar kubectl-x. Prefix kubectl- ana buƙata, sannan sabon kubectl subcommand wanda ke ba ku damar kiran plugin ɗin.

Misali, za a rarraba plugin ɗin hello azaman fayil da ake kira kubectl-hello.

Don shigar da plugin ɗin, kuna buƙatar kwafi fayil ɗin kubectl-x zuwa kowane kundin adireshi a cikin PATH kuma sanya shi aiwatarwa, misali tare da chmod +x. Nan da nan bayan wannan zaka iya kiran plugin tare da kubectl x.

Kuna iya amfani da umarni mai zuwa don lissafin duk plugins ɗin da aka shigar a halin yanzu akan tsarin ku:

$ kubectl plugin list

Wannan umarnin kuma zai nuna gargadi idan kuna da plugins da yawa masu suna iri ɗaya, ko kuma idan akwai fayil ɗin plugins waɗanda ba za a iya aiwatarwa ba.

Nemo da shigar da plugins ta amfani da Krew

Kubectl plugins za a iya raba ko sake amfani da su kamar fakitin software. Amma a ina za ku sami plugins waɗanda wasu suka raba?

Aikin Krew yana nufin samar da mafita guda ɗaya don rabawa, bincike, shigarwa da sarrafa plugins kubectl. Aikin yana kiran kansa "mai sarrafa fakiti don kubectl plugins" (Krew yayi kama da Brew).

Krew jerin abubuwan plugins ne na kubectl waɗanda zaku iya zaɓa kuma ku girka. A lokaci guda, Krew kuma plugin ne don kubectl.

Wannan yana nufin cewa shigar da Krew yana aiki da gaske kamar shigar da kowane plugin kubectl. Kuna iya samun cikakken umarni a GitHub shafi.

Mafi mahimmancin umarnin Krew sune:

# Поиск в списке плагинов
$ kubectl krew search [<query>]
# Посмотреть информацию о плагине
$ kubectl krew info <plugin>
# Установить плагин
$ kubectl krew install <plugin>
# Обновить все плагины до последней версии
$ kubectl krew upgrade
# Посмотреть все плагины, установленные через Krew
$ kubectl krew list
# Деинсталлировать плагин
$ kubectl krew remove <plugin>

Lura cewa shigar da plugins ta amfani da Krew baya tsoma baki tare da shigar da plugins ta amfani da daidaitaccen hanyar da aka bayyana a sama.

Lura cewa umarnin kubectl krew list kawai yana nuna plugins waɗanda aka shigar ta amfani da Krew, alhali umarnin kubectl plugin list ya lissafa duk plugins, wato, waɗanda aka shigar ta amfani da Krew da waɗanda aka shigar ta wasu hanyoyin.

Neman Plugins Wani Wuri

Krew shiri ne na matasa, a halin yanzu yana cikin sa jerin kawai kusan 30 plugins. Idan ba za ku iya samun abin da kuke buƙata ba, kuna iya samun plugins a wani wuri, kamar GitHub.

Ina ba da shawarar duba sashin GitHub kubectl-plugins. A can za ku sami ɗimbin abubuwan plugins waɗanda suka cancanci dubawa.

Rubuta naku plugins

ka iya kanka ƙirƙirar plugins - Ba shi da wahala. Kuna buƙatar ƙirƙirar mai aiwatarwa wanda ke yin abin da kuke buƙata, suna suna kamar haka kubectl-x kuma shigar kamar yadda aka bayyana a sama.

Fayil ɗin zai iya zama rubutun bash, rubutun python, ko aikace-aikacen GO da aka haɗa - ba komai. Sharadi kawai shine ana iya aiwatar da shi kai tsaye a cikin tsarin aiki.

Bari mu ƙirƙiri plugin misali a yanzu. A cikin sashin da ya gabata, kun yi amfani da umarnin kubectl don jera kwantena na kowane kwafsa. Yana da sauƙi juya wannan umarni zuwa plugin ɗin da zaku iya kira da misali. kubectl img.

Ƙirƙiri fayil kubectl-img abun ciki mai zuwa:

#!/bin/bash
kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'

Yanzu sanya fayil ɗin aiwatarwa tare da chmod +x kubectl-img kuma matsar da shi zuwa kowane kundin adireshi a cikin PATH ɗin ku. Nan da nan bayan wannan zaka iya amfani da plugin kubectl img.

Kamar yadda aka ambata, plugins kubectl za a iya rubuta su a kowane harshe na shirye-shirye ko rubutun. Idan kuna amfani da rubutun harsashi, amfanin samun damar yin kira kubectl cikin sauƙi daga cikin plugin ɗin. Koyaya, zaku iya rubuta ƙarin hadaddun plugins a cikin yarukan shirye-shirye na gaske ta amfani da Laburaren abokin ciniki Kubernetes. Idan kana amfani da Go, zaka iya amfani da cli-runtime library, wanda ya wanzu musamman don rubuta kubectl plugins.

Yadda ake raba plugins ɗin ku

Idan kuna tunanin plugins ɗin ku na iya zama da amfani ga wasu, jin daɗin raba shi akan GitHub. Tabbatar ƙara su zuwa batun kubectl-plugins.

Hakanan kuna iya buƙatar ƙara plugin ɗin ku zuwa Jerin Krew. Umarnin yadda ake yin hakan yana ciki Ma'ajiyar GitHub.

Kammala umarni

Plugins ba sa goyan bayan kammalawa ta atomatik. Wato, dole ne ka shigar da cikakken sunan plugin da cikakken sunayen muhawara.

Wurin ajiya na GitHub kubectl na wannan aikin yana da budaddiyar bukata. Don haka yana yiwuwa a aiwatar da wannan fasalin wani lokaci nan gaba.

Sa'a!!!

Me kuma za a karanta a kan batun:

  1. Matakai uku na autoscaling a Kubernetes da yadda ake amfani da su yadda ya kamata.
  2. Kubernetes a cikin ruhin satar fasaha tare da samfuri don aiwatarwa.
  3. Tashar mu ta Kubernetes a cikin Telegram.

source: www.habr.com

Add a comment