Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Kana iwe ukashanda naKubernetes, saka kubectl ingangove imwe yezvishandiso zvaunoshandisa zvakanyanya. Uye pese paunopedza nguva yakawanda uchishanda nechimwe chishandiso, zvinobhadhara kuti uidzidze nemazvo uye kudzidza mashandisiro aungaita nemazvo.

chikwata Kubernetes aaS kubva kuMail.ru yakadudzirwa chinyorwa naDaniel Weibel umo iwe uchawana matipi uye matipi ekushanda nemazvo nekubectl. Ichakubatsirawo kuwana kunzwisisa kwakadzama kweKubernetes.

Sekureva kwemunyori, chinangwa chechinyorwa ndechekuita kuti basa rako rezuva nezuva neKubernetes risangoshanda chete, asiwo rinonakidza!

Nhanganyaya: Chii chinonzi kubectl

Usati wadzidza kushandisa kubectl zvinobudirira, unofanirwa kuwana nzwisiso yekutanga kuti chii uye kuti inoshanda sei.

Kubva pamaonero emushandisi, kubectl inzvimbo yekudzora iyo inokutendera kuti uite Kubernetes mashandiro.

Nehunyanzvi kutaura, kubectl ndeye Kubernetes API mutengi.

Kubernetes API iHTTP REST API. Iyi API ndiyo yechokwadi Kubernetes mushandisi interface, kuburikidza iyo inodzorwa zvizere. Izvi zvinoreva kuti kushanda kwese kweKubernetes kunoburitswa seyekupedzisira kweAPI uye kunogona kuitwa nechikumbiro cheHTTP kune iyo yekupedzisira.

Naizvozvo, basa guru rekubectl nderekuita zvikumbiro zveHTTP kuKubernetes API:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Kubernetes ndeye yakazara zviwanikwa-yakatarisana sisitimu. Izvi zvinoreva kuti inochengetedza iyo yemukati mamiriro ezviwanikwa uye ese Kubernetes mashandiro ari CRUD mashandiro.

Iwe uri mukutonga kwakazara kweKubernetes nekugadzirisa izvi zviwanikwa, uye Kubernetes anofungidzira zvekuita zvichienderana nemamiriro aripo ezviwanikwa. Nechikonzero ichi, iyo Kubernetes API referensi yakarongwa serunyorwa rwemhando dzezvishandiso nemaitiro avo anoenderana.

Ngatitarisei muenzaniso.

Ngatiti iwe unoda kugadzira ReplicaSet sosi. Kuti uite izvi, unotsanangura iyo ReplicaSet mufaira nezita replicaset.yaml, wobva wamhanya kuraira:

$ kubectl create -f replicaset.yaml

Izvi zvinogadzira ReplicaSet sosi. Asi chii chinoitika kuseri kwezviitiko?

Kubernetes ine ReplicaSet yekugadzira mashandiro. Kufanana nekumwe kuvhiya kupi, inoburitswa seyekupedzisira API. Iyo chaiyo API yekupedzisira yekuvhiya iyi inoita seizvi:

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

API endpoints kune ese Kubernetes mashandiro anogona kuwanikwa pa API reference (kusanganisira magumo ari pamusoro) Kuita chikumbiro chaicho kune yekupedzisira, iwe unofanirwa kutanga wawedzera iyo API server URL kune ekupedzisira nzira dzakanyorwa mune API referensi.

Nekudaro, kana iwe waita iri pamusoro apa rairo, kubectl inotumira HTTP POST chikumbiro kune iri pamusoro API endpoint. Tsanangudzo yeReplicaSet yawakapa mufaira replicaset.yaml, inotumirwa mumutumbi wechikumbiro.

Aya ndiwo mashandiro anoita kubectl kune ese mirairo inodyidzana neKubernetes cluster. Mune ese aya kesi, kubectl inongoita zvikumbiro zveHTTP kune yakakodzera Kubernetes API endpoints.

Ndokumbira utarise kuti iwe unokwanisa kubata Kubernetes zvizere uchishandisa utility senge curlnekutumira manyore zvikumbiro zveHTTP kuKubernetes API. Kubectl inongoita kuti zvive nyore kushandisa Kubernetes API.

Izvi ndizvo zvekutanga zvechii kubectl uye kuti inoshanda sei. Asi pane chimwe chinhu nezve Kubernetes API iyo mushandisi wese kubectl anofanira kuziva. Ngatitarisei nekukurumidza mukati menyika yemukati yeKubernetes.

Nyika yemukati yeKubernetes

Kubernetes ine seti yezvakazvimirira zvikamu zvinomhanya seakaparadzana maitiro pane cluster node. Zvimwe zvikamu zvinomhanya pane master node, zvimwe pane yevashandi node, chimwe nechimwe chichiita basa rayo chairo.

Hezvino izvo zvinonyanya kukosha zvikamu pane main node:

  1. Vault - zvitoro zvinotsanangurwa zvezviwanikwa (kazhinji ndizvo etcd).
  2. API server - inopa API uye inogadzirisa kuchengetedza.
  3. Mutungamiriri Maneja -Inoita shuwa kuti zviwanikwa zvimiro zvinoenderana nezvakatemwa.
  4. scheduler - kuronga mapodhi panzvimbo dzevashandi.

Uye hechino chimwe chinhu chakakosha pane yevashandi node:

  1. kubelet - inotarisira kuvhurwa kwemidziyo pane inoshanda node.

Kuti tinzwisise kuti zvikamu izvi zvinoshanda sei pamwe chete, ngatitarisei muenzaniso.

Ngatitii wapedza kubectl create -f replicaset.yaml, mushure mezvo kubectl yakaita chikumbiro cheHTTP POST ku ReplicaSet API endpoint (kupfuura iyo ReplicaSet resource tsananguro).

Chii chiri kuitika muchikwata?

  1. Mushure mekuita kubectl create -f replicaset.yaml Iyo API server inochengeta yako ReplicaSet resource tsananguro mukuchengetedza:

    Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama

  2. Tevere, iyo ReplicaSet controller inotangwa mune maneja maneja, iyo inobata kusikwa, kugadziridzwa uye kudzima kweReplicaSet zviwanikwa:

    Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama

  3. Iyo ReplicaSet controller inogadzira tsananguro yepod yega yega ReplicaSet replica (maererano nepod template mune ReplicaSet tsananguro) uye inoichengeta mukuchengetedza:

    Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama

  4. Iyo scheduler inotangwa, yekutevera mapodhi ayo asati apihwa kune chero vashandi node:

    Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama

  5. Iye anoronga anosarudza akakodzera mushandi node yepodhi yega yega uye anowedzera ruzivo urwu kune dudziro yepodhi muchitoro:

    Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama

  6. Panzvimbo yevashandi iyo pod inopihwa, Kubelet inotangwa, inoteedzera mapodhi akapihwa node iyi:

    Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama

  7. Iyo Kubelet inoverenga tsananguro yepod kubva mukuchengetedza uye inoraira mudziyo wekumhanya, senge Docker, kuvhura midziyo pane node:

    Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama

Pazasi pane mavara erondedzero iyi.

Chikumbiro che API kune ReplicaSet kugadzira endpoint inogadziriswa neiyo API server. Iyo API server inosimbisa chikumbiro uye inochengeta iyo ReplicaSet resource tsananguro mukuchengetedza.

Ichi chiitiko chinotanga ReplicaSet controller, inova subprocess yemutongi maneja. Iyo ReplicaSet controller inotarisisa kusikwa, kugadzirisa, uye kubviswa kweReplicaSet zviwanikwa muchitoro uye inogamuchira chiziviso chechiitiko kana izvi zvaitika.

Basa reReplicaSet controller ndere kuona kuti nhamba inodiwa yeReplicaSet pods iripo. Mumuenzaniso wedu, hapana mapodhi parizvino, saka ReplicaSet controller inogadzira idzi tsananguro dzepodhi (maererano nepod template mune ReplicaSet tsananguro) uye inoichengeta mudura.

Kugadzirwa kwemapodhi matsva kunokonzereswa neanoronga anochengeta tsananguro yepod iyo isati yarongerwa node dzevashandi. Iye anoronga anosarudza akakodzera mushandi node yepodhi yega yega uye anogadziridza tsananguro yepodhi mune repository.

Ziva kuti kusvika panguva ino, hapana kodhi yebasa yaimhanya chero musumbu. Zvese zvakaitwa kusvika zvino - uku ndiko kusikwa uye kuvandudzwa kwezviwanikwa mune repository pane master node.

Chiitiko chekupedzisira chinokonzeresa Kubelets, iyo inotarisisa mapodhi akarongwa kune avo vashandi node. Iyo Kubelet yemushandi node iyo yako ReplicaSet pods yakaisirwa inofanirwa kuraira mudziyo wekumhanyisa, senge Docker, kurodha inodiwa mifananidzo yemidziyo uye imhanye.

Panguva ino, yako ReplicaSet application yave kushanda!

Basa reKubernetes API

Sezvawaona mumuenzaniso wapfuura, Kubernetes zvikamu (kunze kweiyo API server uye yekuchengetedza) tarisa shanduko kune zviwanikwa mukuchengetedza uye shandura ruzivo nezve zviwanikwa mukuchengetedza.

Ehe, izvi zvikamu hazvidyidzane nekuchengetedza zvakananga, asi chete kuburikidza neKubernetes API.

Funga nezvemienzaniso inotevera:

  1. Iyo ReplicaSet controller inoshandisa iyo API endpoint list ReplicaSets ine parameter watch kutarisa shanduko kuReplicaSet zviwanikwa.
  2. Iyo ReplicaSet controller inoshandisa iyo API endpoint kugadzira Pod (gadzira pod) kugadzira mapodhi.
  3. Scheduler inoshandisa API endpoint chigamba pod (edit pod) kugadzirisa pods neruzivo nezve yakasarudzwa mushandi node.

Sezvauri kuona, iyi ndiyo yakafanana API iyo kubectl inowana. Kushandisa iyo API yakafanana yezvikamu zvemukati uye vashandisi vekunze ipfungwa yakakosha muKubernetes dhizaini.

Iye zvino tinogona kupfupisa mashandiro anoita Kubernetes:

  1. Zvitoro zvekuchengetera nyika, kureva, Kubernetes zviwanikwa.
  2. Iyo API sevha inopa chinongedzo kune yekuchengetedza muchimiro cheKubernetes API.
  3. Zvese zvimwe zvikamu zveKubernetes uye vashandisi vanoverenga, tarisa, uye shandisa Kubernetes nyika (zviwanikwa) kuburikidza neAPI.

Kuziva aya pfungwa kuchakubatsira iwe kunzwisisa kubectl zvirinani uye kuwana zvakanyanya kubva mazviri.

Zvino ngatitarisei mamwe matipi uye matipi anozobatsira kuvandudza chibereko chako nekubectl.

1. Kurumidza kupinza uchishandisa kuraira kupedzisa

Imwe yeanonyanya kubatsira, asi anowanzo kufuratirwa, matekiniki ekuvandudza kuita nekubectl ndeyekupedzisa kwekuraira.

Kupedzisa kwekuraira kunokubvumira kuti upedze otomatiki zvikamu zvekubectl mirairo uchishandisa kiyi yeTab. Izvi zvinoshanda kune subcommands, sarudzo, uye nharo, kusanganisira chimwe chinhu chakaoma semazita ezvekushandisa.

Ona kuti kubectl kupedzisa kwekuraira kunoshanda sei:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Kupedzisa kwekuraira kunoshanda kuBash neZsh shells.

Official Guide ine mirairo yakadzama yekumisikidza otomatiki, asi pazasi tinopa pfupiso pfupi.

Kupedzwa kwemirairo kunoshanda sei

Kupedzisa kwekuraira chinhu chegomba chinoshanda uchishandisa script yekupedzisa. An extension script is shell script inotsanangura maitiro ekuwedzera kune imwe murairo.

Kubectl inogadzira uye inoburitsa zvinyorwa zvekuwedzera zveBash neZsh uchishandisa iyo inotevera mirairo:

$ kubectl completion bash

Or:

$ kubectl completion zsh

Mune dzidziso, zvakakwana kubatanidza kubuda kwemirairo iyi kune yakakodzera mirairo shell kuitira kuti kubectl ikwanise kuzadzisa mirairo.

Mukuita, nzira yekubatanidza yakasiyana yeBash (kusanganisira misiyano pakati peLinux neMacOS) uye Zsh. Pasi apa tichatarisa zvose izvi zvingasarudzwa.

Bash paLinux

Iyo Bash yekupedzisa script inoenderana nebash-kupedzisa package, saka unofanirwa kuiisa kutanga:

$ sudo apt-get install bash-completion

Or:

$ yum install bash-completion

Iwe unogona kuyedza kuti iyo package yakaiswa zvinobudirira uchishandisa unotevera kuraira:

$ type _init_completion

Kana izvi zvikaburitsa shell function code, ipapo bash-kupedzisa inoiswa nemazvo. Kana murairo ukapa "Haina Kuwanikwa" kukanganisa, unofanirwa kuwedzera mutsara unotevera kufaira rako ~ / .bashrc:

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

Zvakakosha here kuwedzera mutsara uyu kune faira ~ / .bashrc kana kuti kwete zvinoenderana nemaneja wepakeji wawakashandisa kuisa bash-kupedzisa. Izvi zvinodikanwa kune APT, asi kwete yeYUM.

Mushure mekuisa bash-kupedzwa, iwe unofanirwa kugadzirisa zvese kuitira kuti kubectl kupedzisa script igoneswe mune ese magomba zvikamu.

Imwe nzira yekuita izvi ndeyekuwedzera mutsara unotevera kune faira ~ / .bashrc:

source <(kubectl completion bash)

Imwe nzira ndeyekuwedzera kubectl yekuwedzera script kune dhairekitori /etc/bash_completion.d (igadzire kana isipo):

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

Zvese zvinyorwa zvekuwedzera mukatalogi /etc/bash_completion.d zvinosanganisirwa otomatiki mubash-kupedzisa.

Zvose zvingasarudzwa zvinoshanda zvakaenzana.

Mushure mekutangazve ganda, kubectl kuraira kupedzisa kuchashanda.

Bash paMacOS

PaMacOS kuseta kwakatonyanya kuomarara. Icho chokwadi ndechekuti nekusarudzika, MacOS inoshandisa Bash vhezheni 3.2, uye kubectl autocompletion script inoda shanduro yeBash yeinenge 4.1 uye haishande muBash 3.2.

Pane nyaya dzerezinesi dzine chekuita nekushandisa yakare vhezheni yeBash paMacOS. Bash version 4 ine rezinesi pasi peGPLv3, iyo isingatsigirwe neApple.

Kuti ugadzirise kubectl autocompletion paMacOS, unofanirwa kuisa imwe yazvino vhezheni yeBash. Iwe unogona zvakare kuseta iyo yakagadziridzwa Bash seyako default shell, iyo inokuchengetedza iwe akawanda matambudziko mune ramangwana. Hazvina kuoma, zvinyorwa zvinopihwa muchinyorwa "Kugadziridza Bash paMacOS".

Usati waenderera mberi, ita shuwa kuti uri kushandisa yazvino vhezheni yeBash (tarisa zvakabuda bash --version).

Bash kupedzisa script inosiyana neprojekiti bash-kupedzisa, saka unofanira kutanga waiisa.

Unogona kuisa bash-kupedzisa uchishandisa Homebrew:

$ brew install bash-completion@2

zviri @2 inomirira bash-kupedzisa shanduro 2. kubectl autocompletion inoda bash-kupedzisa v2, uye bash-kupedzisa v2 inoda zvishoma zveBash version 4.1.

Raira kubuda brew-install ine Caveats chikamu, iyo inotsanangura izvo zvinoda kuwedzerwa kufaira ~/.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"

Zvisinei, ndinokurudzira kuwedzera mitsara iyi kwete ~/.bash_profile, uye mukati ~/.bashrc. Muchiitiko ichi, autocompletion ichave iripo kwete chete muhombe, asiwo mumabhomba ekuraira kwevana.

Mushure mekutangazve ganda rekuraira, unogona kuona kuisirwa kwacho uchishandisa murairo unotevera:

$ type _init_completion

Kana iwe ukaona shell ichishanda mune zvakabuda, saka zvese zvinogadziriswa nemazvo.

Zvino isu tinofanirwa kuve nechokwadi chekuti kubectl autocompletion inogoneswa muzvikamu zvese.

Imwe nzira ndeyekuwedzera mutsara unotevera kune yako ~/.bashrc:

source <(kubectl completion bash)

Yechipiri nzira ndeyekuwedzera autocomplete script kune folda /usr/local/etc/bash_completion.d:

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

Iyi nzira inongoshanda chete kana iwe wakaisa bash-kupedzisa uchishandisa Homebrew. Muchiitiko ichi, bash-kupedzisa inotakura zvese zvinyorwa kubva pane ino dhairekitori.

Kana wakaisa kubectl uchishandisa Homebrew, saka hapana chikonzero chekuita nhanho yapfuura, sezvo iyo autocompletion script ichizoiswa otomatiki mufolda. /usr/local/etc/bash_completion.d panguva yekuisa. Mune ino kesi, kubectl autocompletion ichatanga kushanda iwe paunongoisa bash-kupedzisa.

Nekuda kweizvozvo, zvese izvi sarudzo dzakaenzana.

zsh

Autocompletion zvinyorwa zveZsh hazvidi chero zvinotsamira. Zvese zvaunoda kuti uite ndezvekuvagonesa kana iwe uchiremedza iyo yekuraira shell.

Iwe unogona kuita izvi nekuwedzera mutsara kune yako ~/.zshrc faira:

source <(kubectl completion zsh)

Kana ukagamuchira kukanganisa not found: compdef mushure mekutangazve ganda rako, unofanirwa kugonesa iyo buildin basa compdef. Iwe unogona kuigonesa nekuwedzera iyo pakutanga kwefaira rako ~/.zshrc zvinotevera:

autoload -Uz compinit
compinit

2. Kurumidza kuona zviwanikwa

Paunenge uchigadzira YAML sosi tsananguro, iwe unofanirwa kuziva minda uye zvazvinoreva kune izvo zviwanikwa. Imwe nzvimbo yekutsvaga ruzivo urwu iri muiyo API referensi, iyo ine zvizere zvakatemwa zvezviwanikwa zvese.

Nekudaro, kushandura kuwebhu bhurawuza pese paunoda kutsvaga chimwe chinhu hakuna kunaka. Naizvozvo kubectl inopa murairo kubectl explain, iyo inoratidza zvakatemwa zveese zviwanikwa mune yako terminal.

Iyo command fomati ndeiyi inotevera:

$ kubectl explain resource[.field]...

Iwo murairo uchaburitsa iyo yakatarwa yeyakakumbirwa sosi kana munda. Ruzivo rwuri kuratidzwa rwakafanana neirwo rwuri mubhuku reAPI.

kubudikidza default kubectl explain inoratidza chete chikamu chekutanga chekugara kweminda.

Ona kuti zvinoita sei Unogona ipapo.

Iwe unogona kuratidza muti wose kana iwe ukawedzera sarudzo --recursive:

$ kubectl explain deployment.spec --recursive

Kana iwe usingazive chaizvo kuti ndezvipi zviwanikwa zvinodiwa, unogona kuzviratidzira zvese nemurairo unotevera:

$ kubectl api-resources

Uyu murairo unoratidza mazita ezvishandiso ari muzvizhinji, semuenzaniso. deployments panzvimbo ye deployment. Inoratidzawo zita pfupi, semuenzaniso deploy, kune izvo zviwanikwa vanazvo. Usanetseka pamusoro pekusiyana uku. Idzi dzese sarudzo dzekupa mazita dzakafanana nekubectl. Izvi zvinoreva kuti iwe unogona kushandisa chero ipi zvayo kubectl explain.

Yese mirairo inotevera yakaenzana:

$ kubectl explain deployments.spec
# ΠΈΠ»ΠΈ
$ kubectl explain deployment.spec
# ΠΈΠ»ΠΈ        
$ kubectl explain deploy.spec

3. Shandisa chimiro chetsika chinobuda

Default command inobuda fomati 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

Iyi fomati yakanakira, asi ine huwandu hushoma hweruzivo. Kuenzaniswa neiyo yakazara sosi yekutsanangura fomati, mashoma minda chete anoratidzwa pano.

Muchiitiko ichi, unogona kushandisa tsika yekoramu yekubuda fomati. Inokubvumira kuti uone kuti ndeipi data inobuda. Iwe unogona kuratidza chero nzvimbo yezvishandiso sekoramu yakaparadzana.

Kushandiswa kwechimiro chetsika kunotsanangurwa uchishandisa sarudzo:

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

Iwe unogona kutsanangura yega yega gomo rekubuda sepairi <header>:<jsonpath>kupi <header> ndiro zita rembiru, uye <jsonpath> - chirevo chinotsanangura nzvimbo yekushandisa.

Ngatitarisei muenzaniso wakapfava:

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

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

Zvakabuda zvine koramu imwe chete ine mazita emapodhi.

Iyo sarudzo yekutaura inosarudza mazita epod kubva kumunda metadata.name. Izvi zvinodaro nekuti zita repodhi rinotsanangurwa mundima yezita remwana metadata mune rondedzero yezvishandiso zvepodhi. Mamwe mashoko anogona kuwanikwa mukati API Guide kana kunyora murairo kubectl explain pod.metadata.name.

Zvino ngatiti iwe unoda kuwedzera imwe column kune zvakabuda, semuenzaniso kuratidza node yega yega pod iri kushanda. Kuti uite izvi, unogona kungowedzera iyo yakakodzera koramu yakatarwa kune yakasarudzika makoramu sarudzo:

$ 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

Chirevo chinosarudza zita renodhi kubva spec.nodeName - apo pod inopiwa kune node, zita rayo rinonyorwa mumunda spec.nodeName pod resource specification. Ruzivo rwakadzama runogona kuwanikwa mune zvakabuda kubectl explain pod.spec.nodeName.

Ndokumbira utarise kuti Kubernetes minda yezvishandiso inobata nyaya.

Iwe unogona kuona chero nzvimbo yezvishandiso se column. Ingoongorora iyo sisitimu yakatarwa uye edza nayo nechero minda yaunoda.

Asi chekutanga, ngatitarisei zvakanyanya pamashoko ekusarudza munda.

JSONPath Expressions

Matauriro ekusarudza masource field anobva pa JSONPath.

JSONPath mutauro wekutora data kubva kumagwaro eJSON. Kusarudza munda mumwe chete ndiyo yakapusa yekushandisa kesi yeJSONPath. Ane zvakawanda mikana yakawanda, kusanganisira vanosarudza, mafirita uye zvichingodaro.

Kubectl inotsanangura inotsigira nhamba shoma yeJSONPath maficha. Mikana uye mienzaniso yekushandiswa kwavo inotsanangurwa pazasi:

# Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ всС элСмСнты списка
$ 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'

Mushandisi we [] anonyanya kukosha. Mazhinji Kubernetes zviwanikwa minda rondedzero, uye mushandisi uyu anobvumidza iwe kusarudza nhengo dzeaya mazita. Inowanzo shandiswa nekadhi remusango senge [*] kusarudza zvinhu zvese zverunyorwa.

Mienzaniso yekushandisa

Mikana yekushandisa yakajairika column inobuda fomati haiperi, sezvo iwe uchigona kuratidza chero ndima kana musanganiswa wenzvimbo dzezviwanikwa mune zvinobuda. Heano mamwe emuenzaniso maapplication, asi inzwa wakasununguka kuzviongorora iwe pachako uye uwane maapplication anokushandira iwe.

  1. Kuratidza mifananidzo yemidziyo yemapods:
    $ 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

    Uyu murairo unoratidza mazita emufananidzo wemudziyo kune imwe neimwe pod.

    Rangarira kuti pod inogona kuve nemidziyo yakati wandei, ipapo mazita emufananidzo acharatidzwa pamutsetse mumwe, akaparadzaniswa nemakoma.

  2. Kuratidza nzvimbo dzinowanikwa node:
    $ 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

    Uyu murairo unobatsira kana cluster yako yakabatwa mugore reruzhinji. Inoratidza nzvimbo yekuwanika kune imwe neimwe node.

    Kuwanikwa nzvimbo ipfungwa yegore inoganhura nzvimbo yekudzokorora kune dunhu renzvimbo.

    Kuwanikwa nzvimbo dzeimwe node dzinowanikwa kuburikidza neyakakosha label - failure-domain.beta.kubernetes.io/zone. Kana iyo cluster ichimhanya mugore reruzhinji, iyi label inogadzirwa otomatiki uye izere nemazita enzvimbo dziripo dzenzvimbo imwe neimwe.

    Labels haisi chikamu cheKubernetes sosi yakatarwa, saka hauzowani ruzivo nezvavo mukati API Guide. Nekudaro, ivo vanogona kuoneka (senge chero mamwe mavara) kana iwe ukakumbira ruzivo nezve node muYAML kana JSON fomati:

    $ kubectl get nodes -o yaml
    # ΠΈΠ»ΠΈ
    $ kubectl get nodes -o json

    Iyi inzira yakanaka yekudzidza zvakawanda nezve zviwanikwa, kuwedzera kune yekudzidza zviwanikwa.

4. Shandura zviri nyore pakati pemasumbu nemazita

Kana kubectl ichikumbira kuKubernetes API, inotanga kuverenga iyo kubeconfig faira kuti iwane ese anodiwa paramita yekubatanidza.

By default iyo kubeconfig faira iri ~/.kube/config. Kazhinji iyi faira inogadzirwa kana kuvandudzwa nemurairo unokosha.

Paunoshanda nemasumbu akawanda, yako kubeconfig faira ine zvigadziriso zvekubatanidza kune ese emasumbu iwayo. Iwe unoda nzira yekuudza iyo kubectl kuraira iyo cluster yauri kushanda nayo.

Mukati meboka, iwe unogona kugadzira akawanda mazita enzvimbo-rudzi rwechaiyo cluster mukati meboka remuviri. Kubectl zvakare inosarudza kuti ndeipi nzvimbo yekushandisa zvichibva pane kubeconfig faira. Izvi zvinoreva kuti iwe zvakare unoda nzira yekuudza iyo kubectl kuraira kuti ndeipi namespace yekushanda nayo.

Muchitsauko chino tichatsanangura kuti chinoshanda sei uye kuti chingaitwa sei nemazvo.

Ziva kuti iwe unogona kunge uine akawanda kubeconfig mafaera akanyorwa muKUBECONFIG nharaunda inosiyana. Muchiitiko ichi, mafaera ese aya anozobatanidzwa kuita imwechete inogadziriswa panguva yekumhanya. Iwe unogona zvakare kushandura iyo default kubeconfig faira nekumhanya kubectl neparameter --kubeconfig. Tarisa zvinyorwa zvepamutemo.

kubeconfig mafaira

Ngatione kuti chii chaizvo icho kubeconfig faira ine:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Sezvauri kuona, iyo kubeconfig faira ine seti yemamiriro. Context ine zvinhu zvitatu:

  • Cluster - API URL ye cluster server.
  • Mushandisi - mushandisi echokwadi chechokwadi musumbu.
  • Namespace - nzvimbo yezita inoshandiswa pakujoinha cluster.

Mukuita, ivo vanowanzo shandisa chirevo chimwe pane cluster mune yavo kubeconfig. Nekudaro, iwe unogona kuve neakawanda mamiriro pachikwata, anosiyaniswa nemushandisi kana namespace. Nekudaro, iyi yakawanda-context gadziriso haina kujairika, saka kazhinji pane imwe-kune-imwe mepu pakati pemasumbu uye mamiriro.

Panguva ipi neipi, imwe yemamiriro ezvinhu ndeyezvino:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Kana kubectl ichiverenga faira yekumisikidza, inogara ichitora ruzivo kubva kune yazvino mamiriro. Mumuenzaniso uri pamusoro, kubectl ichabatana neHare cluster.

Saizvozvo, kuti uchinje kune rimwe sumbu, unofanirwa kushandura mamiriro azvino mukubeconfig faira:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Iye zvino kubectl ichabatana neFox cluster.

Kuti uchinje kune imwe nzvimbo yezita mune imwechete cluster, unofanirwa kushandura kukosha kweiyo namespace element yemamiriro azvino:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Mumuenzaniso wepamusoro, kubectl inoshandisa iyo Fox cluster's Prod namespace (yaimbova iyo Test namespace yakaiswa).

Ziva kuti kubectl inopawo sarudzo --cluster, --user, --namespace ΠΈ --context, iyo inokutendera kuti unyore pamusoro pezvinhu zvega uye mamiriro azvino, zvisinei kuti chii chakaiswa mukubeconfig. Tarisa kubectl options.

Muchirevo, iwe unogona kushandura magadzirirwo ari mu kubeconfig. Asi hazvinakidzi. Kuti urerutse mashandiro aya, kune akasiyana maturusi anotendera iwe kuti uchinje ma parameter otomatiki.

Shandisa kubectx

Chishandiso chakakurumbira chekuchinja pakati pemasumbu nenzvimbo dzezita.

Utility inopa mirairo kubectx ΠΈ kubens kushandura mamiriro azvino uye nzvimbo yezita zvakateerana.

Sezvataurwa, kushandura mamiriro azvino zvinoreva kushandura sumbu kana iwe uchingove nechirevo chimwe pasumbu.

Heino muenzaniso wekushandisa mirairo iyi:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Chaizvoizvo, iyi mirairo inongogadzirisa iyo kubeconfig faira sezvatsanangurwa pamusoro.

kuisa kubectx, tevera mirairo pa Github.

Mirairo yese iri miviri inotsigira kupedzisa kwechinyorwa uye mazita emazita, izvo zvinobvisa kukosha kwekuinyora zvachose. Mirayiridzo yekumisikidza autocompletion pano.

Chimwe chinhu chinobatsira kubectx zviri interactive mode. Inoshanda pamwe chete nechishandiso fzf, iyo inofanira kuiswa zvakasiyana. Kuisa fzf otomatiki kunoita kuti inodyidzana modhi inowanikwa mukati kubectx. Nekupindirana, unogona kusarudza mamiriro uye nzvimbo yezita kuburikidza neiyo inopindirana yemahara yekutsvaga interface inopihwa nefzf.

Kushandisa shell aliases

Iwe haudi maturusi akasiyana kuti uchinje mamiriro azvino uye namespace nekuti kubectl inopawo mirairo yeizvi. Hongu, chikwata kubectl config inopa ma subcommands ekugadzirisa kubeconfig mafaera.

Heano mamwe acho:

  • kubectl config get-contexts: ratidza mamiriro ese;
  • kubectl config current-context: tora mamiriro azvino;
  • kubectl config use-context: shandura mamiriro azvino;
  • kubectl config set-context: Shandura chimiro chemukati.

Zvisinei, kushandisa mirairo iyi zvakananga hakusi nyore nokuti yakareba. Iwe unogona kugadzira shell aliases kune avo ari nyore kuita.

Ini ndakagadzira seti yemaakas zvichienderana nemirairo iyi inopa mashandiro akafanana ne kubectx. Pano iwe unogona kuvaona mukuita:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Ziva kuti maaliases anoshandisa fzf kupa inopindirana yemahara yekutarisa interface (senge kubectx's interactive mode). Izvi zvinoreva kuti unoda kuisa fzfkushandisa mazita aya.

Heano matsananguro emaaliases pachawo:

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ контСкст
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/^..//")"'

Kuseta aya aliases unofanirwa kuwedzera tsananguro dziri pamusoro pafaira rako ~/.bashrc kana ~/.zshrc uye tangazve shell yako.

Kushandisa plugins

Kubectl inobvumidza iwe kurodha ma plugins anoitwa nenzira imwechete semirairo yekutanga. Iwe unogona, semuenzaniso, kuisa kubectl-foo plugin uye woimhanyisa nekuita murairo kubectl foo.

Zvingave zviri nyore kushandura mamiriro uye namespace nenzira iyi, semuenzaniso nekumhanya kubectl ctx kushandura mamiriro uye kubectl ns kushandura nzvimbo yezita.

Ndakanyora ma plugins maviri anoita izvi:

Basa rema plugins rakavakirwa pane ariases kubva muchikamu chakapfuura.

Heano mashandiro avanoita:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Ziva kuti ma plugins anoshandisa fzf kupa inopindirana yemahara yekutsvaga interface (senge kubectx's interactive mode). Izvi zvinoreva kuti unoda kuisa fzfkushandisa mazita aya.

Kuti uise plugins, unofanirwa kudhawunirodha shell zvinyorwa zvakatumidzwa kubectl-ctx ΠΈ kubectl-ns kune chero dhairekitori mune yako PATH shanduko uye ita kuti iite semuenzaniso. chmod +x. Pakarepo mushure meizvi uchakwanisa kushandisa kubectl ctx ΠΈ kubectl ns.

5. Deredza kupinza ne autoaliases

Shell aliases inzira yakanaka yekumhanyisa kuisa. Project kubectl-aliases ine angangoita mazana masere mapfupi ekutanga kubectl mirairo.

Iwe unogona kunge uchinetseka - unorangarira sei 800 aliases? Asi haufanire kuarangarira ese, nekuti akavakwa maererano nechirongwa chiri nyore, chinopihwa pazasi:

Maitiro ekushandisa kubectl zvinobudirira: gwara rakadzama
Somuenzaniso:

  1. kgpooyaml - kubectl kuwana pods oyaml
  2. ksysgsvcw - kubectl -n kube-system kuwana svc w
  3. ksysrmcm -kubectl -n kube-system rm cm
  4. kgdepallsl - kubectl kuwana deployment zvese sl

Sezvauri kuona, aliases anoumbwa nezvikamu, chimwe nechimwe chinomiririra chimwe chinhu cheiyo kubectl command. Imwe neimwe alias inogona kuve nechikamu chimwe cheiyo base command, mashandiro, uye sosi, uye akawanda zvikamu zveparamita. Iwe unongo "kuzadza" zvikamu izvi kubva kuruboshwe kuenda kurudyi zvichienderana nedhayagiramu iri pamusoro.

Iyo yazvino dhayagiramu yakadzama iri pa GitHub. Ikoko iwe unogona zvakare kuwana runyorwa ruzere rwemaakas.

Semuenzaniso, iyo alias kgpooyamlall yakaenzana nemurairo kubectl get pods -o yaml --all-namespaces.

Kurongeka kwezvisarudzo hazvina kukosha: kuraira kgpooyamlall yakaenzana nemurairo kgpoalloyaml.

Iwe haufanirwe kushandisa ese macomponents sealias. Semuyenzaniso k, kg, klo, ksys, kgpo inogona kushandiswa zvakare. Uyezve, iwe unogona kusanganisa aliases uye yenguva dzose mirairo kana sarudzo pamutsara wekuraira:

Somuenzaniso:

  1. Panzvimbo iyoyo kubectl proxy unogona kunyora k proxy.
  2. Panzvimbo iyoyo kubectl get roles unogona kunyora kg roles (parizvino hapana alias yeRoles resource).
  3. Kuti uwane data kune chaiyo pod, unogona kushandisa murairo kgpo my-pod β€” kubectl get pod my-pod.

Ndokumbira utarise kuti mamwe ma aliase anoda mutsara wekuraira nharo. Somuenzaniso, alias kgpol zvinoreva kubectl get pods -l. Option -l inoda nharo - chirevo chezita. Kana ukashandisa alias ichaita senge kgpol app=ui.

Nekuti mamwe ariase anoda nharo, aliases a, f, uye l inofanira kushandiswa kwekupedzisira.

Kazhinji, kana iwe uchinge wawana kusungirirwa kwechirongwa ichi, unogona kuwana zvirinani kubva kune mirairo yaunoda kuita uye kuchengetedza yakawanda yenguva yekunyora.

Kuisirwa

Kuti uise kubectl-aliases, unofanirwa kurodha faira .kubectl_aliases kubva kuGitHub uye uisanganise mufaira ~/.bashrc kana ~/.zshrc:

source ~/.kubectl_aliases

Autocompletion

Sezvatakambotaura, iwe unowanzo wedzera mamwe mazwi kune alias pamutsara wekuraira. Semuyenzaniso:

$ kgpooyaml test-pod-d4b77b989

Kana iwe ukashandisa kubectl kuraira kupedzisa, iwe unogona kunge washandisa autocompletion yezvinhu zvakaita semazita ezvishandiso. Asi izvi zvinogona kuitwa here kana mazita akashandiswa?

Uyu mubvunzo wakakosha nekuti kana autocompletion ikasashanda, iwe unorasikirwa nemamwe mabhenefiti emaalias.

Mhinduro inobva pane shell yauri kushandisa:

  1. Kune Zsh, alias kupedzisa kunoshanda kunze kwebhokisi.
  2. Kuna Bash, zvinosuruvarisa, rimwe basa rinodiwa kuti uwane autocompletion kushanda.

Kugonesa kuzadzisa otomatiki kwemaaliases muBash

Dambudziko neBash nderekuti inoedza kupedzisa (pese paunodzvanya Tab) arias, kwete iwo murairo unoreva zita (sezvinoita Zsh, semuenzaniso). Sezvo iwe usina magwaro ekupedzisa kune ese mazana masere ariases, autocompletion haishande.

Iyo purojekiti zadzisa-alias inopa mhinduro kudambudziko iri. Iyo inobatanidza kune yekupedzisa meshini yemaaases, mukati inowedzera alias kune murairo, uye inodzorera sarudzo dzekupedzisa kwemurairo wakapera. Izvi zvinoreva kuti padding ye alias inoita zvakangofanana neyekuraira kwakazara.

Mune zvinotevera, ini ndichatanga ndatsanangura nzira yekuisa yakazara-alias uyezve maitiro ekuimisa kuti igone kupedzisa kune ese kubectl aliases.

Kuisa yakazara-alias

Chokutanga pane zvose, kukwana-alias kunoenderana bash-kupedzisa. Naizvozvo, usati waisa yakazara-alias, iwe unofanirwa kuve nechokwadi chekuti bash-kupedzisa yakaiswa. Mirayiridzo yekuisa yakambopihwa kare kuLinux uye MacOS.

Yakakosha Chiziviso kune MacOS Vashandisi: Kufanana nekubectl autocompletion script, kukwana-alias hakushande neBash 3.2, inova iyo default paMacOS. Kunyanya, kukwana-alias kunoenderana nebash-kupedzisa v2 (brew install bash-completion@2), izvo zvinoda kanenge Bash 4.1. Izvi zvinoreva kuti kushandisa yakazara-alias paMacOS unofanirwa kuisa shanduro itsva yeBash.

Iwe unofanirwa kudhawunirodha script bash_completion.sh kubva GitHub repository uye uzviise mufaira rako ~/.bashrc:

source ~/bash_completion.sh

Mushure mekutangazve ganda, yakazara-alias ichaiswa zvizere.

Kugonesa kupedzisa kwe kubectl aliases

Nehunyanzvi hwakakwana-alias inopa wrapper basa _complete_alias. Iri basa rinotarisa alias uye rinodzosera mazano ekupedzisa kune alias command.

Kuti ubatanidze basa neimwe alias, iwe unofanirwa kushandisa yakavakirwa-mukati Bash michina yose, kuisa _complete_alias sechiito chekupedzisa basa.

Semuenzaniso, ngatitorei alias k, inomiririra kuraira kubectl. kuisa _complete_alias Semubatsiri basa reiyi alias, iwe unofanirwa kumhanya unotevera kuraira:

$ complete -F _complete_alias k

Mhedzisiro yeizvi ndeyokuti pese paunozadzisa alias k, basa racho rinonzi _complete_alias, iyo inotarisa alias uye inodzorera kupedzisa mazano emurairo kubectl.

Semuenzaniso wechipiri, ngatitorei alias kg, izvo zvinoreva kubectl get:

$ complete -F _complete_alias kg

Sezvakangoita mumuenzaniso wapfuura, kana iwe ukazadzisa kg, iwe unowana iwowo mazano ekupedzisa aungatore. kubectl get.

Ziva kuti iwe unogona kushandisa yakazara-alias kune chero alias pane yako system.

Naizvozvo, kugonesa autocompletion kune ese kubectl aliases, iwe unofanirwa kumhanyisa iri pamusoro pekuraira kune yega yega. Iyo inotevera snippet inoita chaizvo izvi, chero iwe waisa kubectl-aliases kune ~/.kubectl-aliases:

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

Ichi chidimbu chekodhi chinoda kuiswa mune yako ~/.bashrc, tangazve ganda rekuraira uye kugadzirisa otomatiki kuchave kuwanikwa kune ese 800 kubectl aliases.

6. Kuwedzera kubectl nemapulagi

Kutanga ne mhando 1.12, kubectl inotsigira plugin mechanism, iyo inokubvumira kuti uwedzere mabasa ayo nemamwe mirairo.

Kana wajaira Git plugin maitiro, ipapo kubectl plugins yakavakirwa pane imwechete musimboti.

Muchitsauko chino, isu tichavhara maitiro ekuisa maplugins, kwaungaawana, uye maitiro ekugadzira ako ega plugins.

Kuisa plugins

Kubectl plugins akagoverwa seakareruka eecutable mafaera ane zita rakadai kubectl-x. Prefix kubectl- inodiwa, inoteverwa neiyo itsva kubectl subcommand iyo inokutendera kuti ufonere plugin.

Semuenzaniso, iyo hello plugin ichagoverwa sefaira inonzi kubectl-hello.

Kuti uise plugin, unofanirwa kukopa faira kubectl-x kune chero dhairekitori mune yako PATH uye ita kuti iite, semuenzaniso ne chmod +x. Pakarepo mushure meizvi unogona kufonera iyo plugin nayo kubectl x.

Iwe unogona kushandisa unotevera kuraira kunyora ese ma plugins akaiswa pane yako system parizvino:

$ kubectl plugin list

Uyu murairo ucharatidzawo yambiro kana uine akawanda plugins ane zita rimwe chete, kana kana paine plugins faira risingaite.

Kutsvaga nekuisa plugins uchishandisa Krew

Kubectl plugins inogona kugovaniswa kana kushandiswazve sesoftware mapakeji. Asi ndekupi kwaungawane plugins iyo vamwe vakagovana?

Project Krew ine chinangwa chekupa mhinduro yakabatana yekugovana, kutsvaga, kuisa uye kubata kubectl plugins. Iyo purojekiti inozvidaidza kuti "pakeji maneja wekubectl plugins" (Krew yakafanana ne Brew).

Krew rondedzero yekubectl plugins yaunogona kusarudza nekuisa. Panguva imwecheteyo, Krew iri zvakare plugin ye kubectl.

Izvi zvinoreva kuti kuisa Krew kunoshanda zvakanyanya sekuisa chero kubectl plugin. Unogona kuwana mirairo yakazara pa GitHub peji.

Iyo inonyanya kukosha Krew mirairo ndeiyi:

# Поиск в спискС плагинов
$ kubectl krew search [<query>]
# ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π΅
$ kubectl krew info <plugin>
# Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½
$ kubectl krew install <plugin>
# ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π΄ΠΎ послСднСй вСрсии
$ kubectl krew upgrade
# ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, установлСнныС Ρ‡Π΅Ρ€Π΅Π· Krew
$ kubectl krew list
# Π”Π΅ΠΈΠ½ΡΡ‚Π°Π»Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½
$ kubectl krew remove <plugin>

Ndokumbira utarise kuti kuisa plugins uchishandisa Krew hakukanganise nekuisa plugins uchishandisa yakajairwa nzira yakatsanangurwa pamusoro.

Ndapota cherechedza kuti murairo kubectl krew list inongoratidza mapulagi akaiswa uchishandisa Krew, nepo murairo kubectl plugin list inonyora ese maplugins, kureva, ayo akaiswa uchishandisa Krew uye ayo akaiswa nedzimwe nzira.

Kutsvaga Plugins kune imwe nzvimbo

Krew ipurojekiti yechidiki, parizvino mune yayo rondedzero anenge 30 plugins chete. Kana iwe usingakwanise kuwana zvaunoda, unogona kuwana plugins kumwe kunhu, seGitHub.

Ini ndinokurudzira kutarisa GitHub chikamu kubectl-plugins. Ikoko iwe unowana akawanda anowanikwa plugins akakodzera kutarisa kunze.

Kunyora plugins yako

unogona iwe pachako kugadzira plugins - Hazvina kuoma. Iwe unofanirwa kugadzira chinogoneka chinoita izvo zvaunoda, ita zita senge kubectl-x uye isa sezvatsanangurwa pamusoro.

Iyo faira inogona kunge iri bash script, python script, kana yakabatanidzwa GO application - hazvina basa. Mamiriro chete ezvinhu ndeokuti inogona kuitwa yakananga muhurongwa hwekushandisa.

Ngatigadzirei muenzaniso plugin izvozvi. Muchikamu chakapfuura, wakashandisa iyo kubectl kuraira kunyora midziyo yepodhi yega yega. Zviri nyore kushandura uyu murairo kuita plugin yaunogona kufona nayo semuenzaniso. kubectl img.

Gadzira faira kubectl-img zvinotevera zvirimo:

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

Iye zvino ita kuti faira riitike ne chmod +x kubectl-img uye fambisa kune chero dhairekitori muPATH yako. Pakarepo mushure meizvi unogona kushandisa plugin kubectl img.

Sezvataurwa, kubectl plugins inogona kunyorwa mune chero programming kana mutauro wekunyora. Kana iwe uri kushandisa shell scripts, mukana wekukwanisa kufonera kubectl zviri nyore kubva mukati me plugin. Nekudaro, iwe unogona kunyora akaomesesa plugins mumitauro chaiyo yekuronga uchishandisa Kubernetes client library. Kana uri kushandisa Go, unogona kushandisa zvakare cli-runtime library, iyo iripo yekunyora kubectl plugins.

Maitiro ekugovera maplugins ako

Kana iwe uchifunga kuti plugins yako inogona kubatsira kune vamwe, inzwa wakasununguka kuigovera paGitHub. Iva nechokwadi chekuvawedzera kune musoro wenyaya kubectl-plugins.

Iwe unogona zvakare kukumbira kuti plugin yako iwedzerwe kwairi Krew list. Mirayiridzo yekuti ungazviita sei iri mukati GitHub repositories.

Kupedzisa kwekuraira

Maplugins haatsigire kupedzisa otomatiki parizvino. Ndiko kuti, iwe unofanirwa kuisa zita rakazara re plugin uye mazita akazara emakakatanwa.

Iyo GitHub kubectl repository yeiyi basa ine vhura chikumbiro. Saka zvinogoneka kuti chimiro ichi chizoitwa pane imwe nguva mune ramangwana.

Rombo rakanaka!!!

Chii chimwe chekuverenga pamusoro penyaya:

  1. Matanho matatu eautoscaling muKubernetes uye maitiro ekuashandisa nemazvo.
  2. Kubernetes mumweya wepiracy ane template yekushandisa.
  3. Yedu chiteshi Around Kubernetes muTeregiramu.

Source: www.habr.com

Voeg