Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Mena ka mahi koe me Kubernetes, ko te kubectl pea tetahi o nga taputapu e tino whakamahia ana e koe. A, i nga wa katoa e whakapau ana koe ki te mahi me tetahi taputapu motuhake, he utu ki te ako pai me te ako me pehea te whakamahi tika.

rōpū Kubernetes aaS mai i Mail.ru i whakamaoritia he tuhinga na Daniel Weibel ka kitea e koe he tohutohu me nga tinihanga mo te mahi pai me te kubectl. Ka awhina ano koe kia hohonu ake to mohiotanga ki nga Kubernetes.

E ai ki te kaituhi, ko te whainga o te tuhinga kia pai ake to mahi o ia ra ki a Kubernetes, engari kia pai ake!

Kupu Whakataki: He aha te kubectl

I mua i to ako ki te whakamahi i te kubectl kia pai ake, me maarama koe he aha tena me pehea te mahi.

Mai i te tirohanga a te kaiwhakamahi, ko te kubectl he paewhiri mana e taea ai e koe te mahi i nga mahi Kubernetes.

Ma te korero hangarau, ko te kubectl he kiritaki API Kubernetes.

Ko te Kubernetes API he HTTP REST API. Ko tenei API te atanga kaiwhakamahi Kubernetes pono, e tino whakahaeretia ana. Ko te tikanga ko nga mahinga Kubernetes katoa ka kitea hei tohu mutunga API ka taea te mahi ma te tono HTTP ki taua pito mutunga.

No reira, ko te mahi matua a kubectl ko te tuku tono HTTP ki te API Kubernetes:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Ko te Kubernetes he punaha tino-rauemi. Ko te tikanga kei te pupuri i te ahua o roto o nga rauemi me nga mahi Kubernetes katoa he mahinga CRUD.

Kei a koe te mana whakahaere o Kubernetes ma te whakahaere i enei rauemi, a ka whakatauhia e Kubernetes nga mahi i runga i te ahua o nga rauemi o naianei. Mo konei, kua whakaritea te tohutoro Kubernetes API hei rarangi mo nga momo rauemi me o raatau mahi e pa ana.

Ka titiro tatou ki tetahi tauira.

Me kii e hiahia ana koe ki te hanga rauemi ReplicaSet. Hei mahi i tenei, ka whakaahua koe i te ReplicaSet ki tetahi konae ma te ingoa replicaset.yaml, ka whakahaere i te whakahau:

$ kubectl create -f replicaset.yaml

Ka hangaia he rauemi ReplicaSet. Engari he aha te mea ka tupu i muri i nga whakaaturanga?

He mahinga hanga ReplicaSet a Kubernetes. Pērā i ētahi atu mahi, ka kitea hei pito mutunga API. He penei te ahua o te pito mutunga API mo tenei mahi:

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

Ka kitea nga tohu mutunga API mo nga mahinga Kubernetes katoa i Tohutoro API (tae atu te pito o runga). Hei tuku tono tuturu ki tetahi pito, me whakauru tuatahi koe i te URL tūmau API ki nga ara mutunga kua whakarārangihia ki te tohutoro API.

No reira, ka mahia e koe te whakahau i runga ake nei, ka tukuna e kubectl he tono HTTP POST ki te pito mutunga API. Ko te whakamaramatanga ReplicaSet i homai e koe ki te konae replicaset.yaml, ka tukuna i roto i te tinana o te tono.

Koinei te mahi a kubectl mo nga whakahau katoa e pahekoheko ana ki te roopu Kubernetes. I enei ahuatanga katoa, ka tuku noa a kubectl i nga tono HTTP ki nga pito mutunga API Kubernetes.

Kia mahara ka taea e koe te whakahaere katoa i nga Kubernetes ma te whakamahi i tetahi taputapu penei curlmā te tuku ā-ringa i ngā tono HTTP ki te Kubernetes API. Ko Kubectl he ngawari ake te whakamahi i te API Kubernetes.

Koinei nga mea taketake o te kubectl me pehea te mahi. Engari tera ano tetahi mea mo te Kubernetes API me mohio nga kaiwhakamahi kubectl katoa. Kia tere te titiro ki te ao o roto o Kubernetes.

Te ao o roto o Kubernetes

Ko nga Kubernetes he huinga o nga waahanga motuhake e whakahaere ana hei tukanga motuhake i runga i nga kohinga kohinga. Ko etahi o nga waahanga e rere ana i runga i nga pona ariki, i etahi atu kei runga i nga pona kaimahi, ko ia waahanga e mahi ana i tana ake mahi.

Anei nga waahanga tino nui o nga waahanga matua:

  1. pupuru - ka rokiroki i nga whakamaramatanga rauemi (te tikanga he etcd).
  2. tūmau API - whakarato API me te whakahaere rokiroki.
  3. Kaiwhakahaere Kaiwhakahaere — Ka whakarite kia u nga mana rawa ki nga whakaritenga.
  4. Kaihōtaka — ka whakarite i nga putunga ki nga pona kaimahi.

Anei tetahi waahanga tino nui i runga i nga pona kaimahi:

  1. kubelet — te whakahaere i te whakarewatanga o nga ipu ki runga i te pona mahi.

Kia mohio ai ki te mahi tahi o enei waahanga, me titiro ki tetahi tauira.

Me whakaaro katahi ano koe ka oti kubectl create -f replicaset.yaml, i muri mai ka tukuna e kubectl he tono HTTP POST ki ReplicaSet te pito mutunga API (ka whakawhiti i te whakamaramatanga rauemi ReplicaSet).

He aha te mahi i roto i te roopu?

  1. I muri i te mahi kubectl create -f replicaset.yaml Ka rokirokia e te tūmau API to whakamāramatanga rauemi ReplicaSet ki te rokiroki:

    Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito

  2. I muri mai, ka whakarewahia te kaiwhakahaere ReplicaSet i roto i te kaiwhakahaere kaiwhakahaere, e whakahaere ana i te hanganga, te whakarereke me te whakakore i nga rauemi ReplicaSet:

    Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito

  3. Ka waihangahia e te kaiwhakahaere ReplicaSet he whakamaarama pod mo ia tauira ReplicaSet (e ai ki te tauira pod i te whakamaramatanga ReplicaSet) ka penapena ki roto i te rokiroki:

    Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito

  4. Ka whakarewahia te kaihōtaka, ka whai i nga putunga kaore ano kia tautapahia ki nga pona kaimahi:

    Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito

  5. Ka kowhiria e te kaihōtaka he node kaimahi e tika ana mo ia pona ka taapiri i enei korero ki te whakamaaramatanga pona i roto i te toa:

    Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito

  6. I runga i te pona kaimahi i tautapa ai te poti, ka whakarewahia a Kubelet, ka whai i nga poti kua tautapa ki tenei pona:

    Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito

  7. Ka panuihia e te Kubelet te whakamaaramatanga o te pona mai i te rokiroki me te tohutohu i te waa whakahaere ipu, penei i a Docker, ki te whakarewa i nga ipu ki te node:

    Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito

Kei raro nei he putanga kuputuhi o tenei whakaahuatanga.

Ko te tono API ki te waahi mutunga hanga ReplicaSet ka tukatukahia e te tūmau API. Ka whakamotuhēhēhia e te tūmau API te tono me te penapena i te whakamāramatanga rauemi ReplicaSet ki te rokiroki.

Ka timata tenei takahanga i te ReplicaSet pūmana, he tukanga iti o te kaiwhakahaere kaiwhakahaere. Ko te kaiwhakahaere ReplicaSet ka aro turuki i te hanga, te whakahou, me te whakakore i nga rauemi ReplicaSet i roto i te toa me te whiwhi panui kaupapa ina puta mai.

Ko te mahi a te kaiwhakahaere ReplicaSet he whakarite kia noho tonu te maha o nga putunga ReplicaSet. I roto i ta maatau tauira, karekau ano he poti, no reira ka hangaia e te kaiwhakahaere ReplicaSet enei whakamaaramatanga poti (e ai ki te tauira pod i roto i te whakamaramatanga ReplicaSet) ka penapena ki roto i te rokiroki.

Ko te hanganga o nga pona hou ka whakaohohia e te kaihōtaka e pupuri ana i nga whakamaaramatanga o nga pene kaore ano kia whakaritea mo nga pona kaimahi. Ka kowhiria e te kaihōtaka he node kaimahi e tika ana mo ia peera me te whakahou i nga whakamaaramatanga o te putunga i roto i te putunga.

Kia mahara, tae noa ki tenei wa, karekau he waehere utamahi e rere ana ki nga waahi katoa o te tautau. Ko nga mea katoa kua mahia i tenei wa - koinei te hanga me te whakahou i nga rauemi i roto i te putunga i runga i te node matua.

Ko te takahanga whakamutunga ka whakaoho i a Kubelets, e aro turuki ana i nga pona kua whakaritea mo o ratou pona kaimahi. Ko te Kubelet o te node kaimahi kei runga i te whakauru o ReplicaSet pods me whakahau te wa whakahaere ipu, penei i a Docker, ki te tango i nga whakaahua ipu e hiahiatia ana ka whakahaere.

I tenei wa, kei te rere to tono ReplicaSet!

Te mahi a te Kubernetes API

I kite koe i te tauira o mua, ko nga waahanga Kubernetes (haunga te tūmau API me te rokiroki) ka mataki i nga huringa ki nga rauemi kei roto i te rokiroki me te whakarereke i nga korero mo nga rauemi kei roto i te rokiroki.

Ko te tikanga, kaore enei waahanga e hono tika ki te rokiroki, engari ma te API Kubernetes anake.

Whakaarohia nga tauira e whai ake nei:

  1. Ka whakamahia e te kaiwhakahaere ReplicaSet te pito mutunga API whakarārangi Tautuhi Tauira me te tawhā watch ki te aro turuki i nga huringa ki nga rauemi ReplicaSet.
  2. Ka whakamahia e te kaiwhakahaere ReplicaSet te pito mutunga API hanga Pod (create pod) to create pods.
  3. Ka whakamahia e te Kaihōtaka te tohu mutunga API papaki papa (whakatika pod) ki te whakahōu i ngā pākākano me ngā kōrero mō te kōpuku kaimahi kua tīpakohia.

Ka kite koe, ko te API ano tenei ka uru atu a kubectl. Ko te whakamahi i te API kotahi mo nga waahanga o roto me nga kaiwhakamahi o waho he kaupapa nui i roto i te hoahoa Kubernetes.

Inaianei ka taea e taatau te whakarapopoto me pehea te mahi a Kubernetes:

  1. E kii ana nga toa rokiroki, ara, nga rauemi Kubernetes.
  2. Ka whakaratohia e te tūmau API he atanga ki te rokiroki i te ahua o te API Kubernetes.
  3. Ko etahi atu waahanga Kubernetes me nga kaiwhakamahi ka panui, ka mataki, ka raweke i te ahua o Kubernetes (rauemi) ma te API.

Ma te mohio ki enei ariā ka pai ake to mohio ki te kubectl me te whai hua.

Inaianei me titiro ki etahi tohutohu me nga mahi tinihanga hei whakapai ake i to hua me te kubectl.

1. Whakaterehia te whakauru ma te whakamahi i te whakaotinga whakahau

Ko tetahi o nga tikanga tino whaihua, engari e warewarehia ana, mo te whakapai ake i nga mahi me te kubectl ko te whakaoti whakahau.

Ko te otinga whakahau ka taea e koe te whakaoti aunoa i nga waahanga o nga whakahau kubectl ma te whakamahi i te taviri Ripa. Ka mahi tenei mo nga whakahau iti, nga whiringa, me nga tautohetohe, tae atu ki tetahi mea uaua penei i nga ingoa rauemi.

Tirohia me pehea te mahi whakaotinga whakahau kubectl:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Ka mahi te whakaotinga whakahau mo nga anga Bash me Zsh.

Aratohu Whaimana kei roto i nga tohutohu taipitopito mo te whakatuu whakaoti-aunoa, engari kei raro nei ka tukuna e matou he waahanga poto.

Me pehea te mahi whakaoti whakahau

Ko te whakaotinga whakahau he ahuatanga anga ka mahi ma te whakamahi i te tuhinga whakaoti. Ko te hōtuhi toronga he tuhinga anga e tautuhi ana i te whanonga o te toronga mo tetahi whakahau motuhake.

Ka whakaputa aunoa a Kubectl i nga tuhinga toronga mo Bash me Zsh ma te whakamahi i nga whakahau e whai ake nei:

$ kubectl completion bash

Ranei:

$ kubectl completion zsh

I roto i te ariā, he nui ki te hono i te putanga o enei whakahau ki te anga whakahau e tika ana kia taea e kubectl te whakakii i nga whakahau.

I roto i te mahi, he rereke te tikanga hononga mo Bash (tae atu ki nga rereketanga i waenga i te Linux me te MacOS) me te Zsh. Kei raro ka titiro tatou ki enei whiringa katoa.

Bash i runga i te Linux

Ko te tuhinga whakaoti Bash kei runga i te kete bash-completion, na me whakauru tuatahi koe:

$ sudo apt-get install bash-completion

Ranei:

$ yum install bash-completion

Ka taea e koe te whakamatautau kua oti pai te whakaurunga o te kete ma te whakamahi i te whakahau e whai ake nei:

$ type _init_completion

Mena ka puta mai he waehere mahi anga, ka tika te whakauru o te bash-completion. Mena he hapa "Kaore i Kitea" e te whakahau, me tapiri e koe te rarangi e whai ake nei ki to konae ~ / .bashrc:

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

He mea tika ki te taapiri i tenei raina ki te konae ~ / .bashrc kaore ranei e whakawhirinaki ana ki te kaiwhakahaere kete i whakamahia e koe ki te whakauru i te bash-completion. He mea tika tenei mo te APT, engari mo te YUM.

I muri i te whakauru i te bash-completion, me whirihora e koe nga mea katoa kia taea ai te tuhinga whakaoti kubectl ki nga wahanga anga katoa.

Ko tetahi huarahi ki te mahi i tenei ko te taapiri i te rarangi e whai ake nei ki te konae ~ / .bashrc:

source <(kubectl completion bash)

Ko tetahi atu huarahi ko te taapiri i te tuhinga toronga kubectl ki te raarangi /etc/bash_completion.d (hangahia mena karekau):

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

Ko nga tuhinga taapiri katoa kei roto i te raarangi /etc/bash_completion.d ka whakauruhia ki roto i te bash-otinga.

Ko nga whiringa e rua he rite tonu te tika.

Whai muri i te whakaara ano i te anga, ka mahi te whakaotinga whakahau kubectl.

Bash i runga i te MacOS

I runga i te MacOS he uaua ake te tatūnga. Ko te meka na te taunoa, ka whakamahi a MacOS i te putanga Bash 3.2, a ko te kubectl autocompletion script e hiahia ana ki te putanga Bash o te iti rawa 4.1 me te kore e mahi i roto i te Bash 3.2.

He take raihana e pa ana ki te whakamahi i te putanga tawhito o Bash i runga i te MacOS. Ko te putanga Bash 4 he raihana i raro i te GPLv3, kaore i te tautokohia e Apple.

Hei whirihora i te kubectl autocompletion i runga i te MacOS, me whakauru e koe he putanga hou ake o Bash. Ka taea hoki e koe te whakarite i te Bash kua whakahoutia hei anga taunoa, ka ora koe i nga raru maha a muri ake nei. Ehara i te mea uaua, ko nga korero kei roto i te tuhinga "Te whakahou i te Bash i runga i te MacOS".

I mua i te haere tonu, kia mohio kei te whakamahi koe i tetahi putanga hou o Bash (tirohia te putanga bash --version).

He rereke nga tuhinga whakaotinga Bash ma ia kaupapa bash-otinga, na me whakauru tuatahi koe.

Ka taea e koe te whakauru i te bash-whakaoti ma te whakamahi tou kōrere:

$ brew install bash-completion@2

ko te reira @2 e tu ana mo te putanga bash-completion 2. Ko te whakaoti-aunoa kubectl e hiahia ana kia bash-completion v2, me te bash-completion v2 me iti ake te putanga Bash 4.1.

Putanga whakahau brew-install kei roto he waahanga Whakatupato, e tohu ana i nga mea hei taapiri atu ki te konae ~/.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"

Heoi, ka tūtohu ahau ki te taapiri i enei rarangi kia kaua ~/.bash_profile, a roto ~/.bashrc. I tenei keehi, ka waatea te whakaoti-aunoa ehara i te mea matua anake, engari i roto i nga anga whakahau tamariki.

I muri i te whakaara ano i te anga whakahau, ka taea e koe te manatoko he tika te whakaurunga ma te whakamahi i te whakahau e whai ake nei:

$ type _init_completion

Mena ka kite koe i tetahi mahi anga i roto i te putanga, ka whirihora tika nga mea katoa.

Inaianei me whakarite kia taea te whakaoti aunoa kubectl i nga waahi katoa.

Ko tetahi huarahi ko te taapiri i te rarangi e whai ake nei ki to ~/.bashrc:

source <(kubectl completion bash)

Ko te huarahi tuarua ko te taapiri i tetahi tuhinga whakaoti-aunoa ki te kōpaki /usr/local/etc/bash_completion.d:

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

Ka mahi noa tenei tikanga mena ka whakauruhia e koe te bash-oti ma te whakamahi i te Homebrew. I tenei take, ka utaina e te bash-completion nga tuhinga katoa mai i tenei whaiaronga.

Mena kua whakauruhia e koe kubectl ma te whakamahi i te Homebrew, karekau he hiahia ki te mahi i te taahiraa o mua, na te mea ka tuu aunoa te tuhinga whakaotinga ki te kōpaki /usr/local/etc/bash_completion.d i te wa o te whakaurunga. I tenei keehi, ka timata te mahi autocompletion kubectl ina oti ana koe te whakauru i te bash-completion.

Ko te mutunga, he rite enei whiringa katoa.

Maoro

Ko nga tuhinga whakaoti-aunoa mo Zsh karekau he herenga. Ko nga mea katoa e hiahia ana koe kia taea e koe ina utaina e koe te anga whakahau.

Ka taea e koe tenei ma te taapiri i tetahi raina ki to ~/.zshrc kōnae:

source <(kubectl completion zsh)

Mena ka hapa koe not found: compdef i muri i te whakaara ano i to anga, me whakahohe koe i te mahi hanga compdef. Ka taea e koe ma te taapiri atu ki te timatanga o to konae ~/.zshrc whai muri:

autoload -Uz compinit
compinit

2. Kia tere te tirotiro i nga whakaritenga rauemi

Ina hanga koe i nga whakamaramatanga rauemi YAML, me mohio koe ki nga mara me o raatau tikanga mo aua rauemi. Ko tetahi waahi ki te rapu mo enei korero kei roto i te tohutoro API, kei roto nga korero katoa mo nga rauemi katoa.

Heoi, ko te huri ki te kaitirotiro paetukutuku i nga wa katoa e hiahia ana koe ki te rapu i tetahi mea he uaua. Na reira ka tukuna e kubectl te whakahau kubectl explain, e whakaatu ana i nga whakaritenga o nga rauemi katoa kei roto tonu i to tauranga.

Ko te whakatakotoranga whakahau e whai ake nei:

$ kubectl explain resource[.field]...

Ko te whakahau ka whakaputa i te whakaritenga o te rauemi, te mara ranei. Ko nga korero e whakaatuhia ana he rite ki tera kei roto i te pukapuka API.

i te taunoa kubectl explain whakaatu ana i te taumata tuatahi o te kohanga o nga mara.

Tirohia te ahua ka taea e konei.

Ka taea e koe te whakaatu i te rakau katoa mena ka taapirihia e koe te whiringa --recursive:

$ kubectl explain deployment.spec --recursive

Mena kaore koe e tino mohio ko wai nga rauemi e hiahiatia ana, ka taea e koe te whakaatu katoa ma te whakahau e whai ake nei:

$ kubectl api-resources

Ka whakaatuhia e tenei tono nga ingoa rauemi i roto i te ahua maha, hei tauira. deployments Tuhinga o mua deployment. Ka whakaatu hoki i te ingoa poto, hei tauira deploy, mo era rauemi kei a ratou. Kaua e manukanuka ki enei rereketanga. Ko enei whiringa whakaingoa katoa he rite mo te kubectl. Arā, ka taea e koe te whakamahi i tetahi o ratou mo kubectl explain.

He rite nga whakahau katoa e whai ake nei:

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

3. Whakamahia he whakatakotoranga whakaputa poupou ritenga

Hōputu putanga whakahau taunoa 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

He watea tenei whakatakotoranga, engari he iti noa nga korero kei roto. Ina whakaritea ki te whakatakotoranga whakamaarama rauemi katoa, he iti noa nga apure ka whakaatuhia ki konei.

I roto i tenei take, ka taea e koe te whakamahi i te hōputu putanga tīwae ritenga. Ka taea e koe te whakatau he aha nga raraunga hei whakaputa. Ka taea e koe te whakaatu i tetahi mara rauemi hei pou motuhake.

Ko te whakamahinga o te whakatakotoranga ritenga ka whakatauhia ma te whakamahi i nga whiringa:

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

Ka taea e koe te tautuhi i ia pou whakaputa hei takirua <header>:<jsonpath>te wahi <header> ko te ingoa tīwae, me <jsonpath> — he kupu e tautuhi ana i te mara rauemi.

Kia titiro tatou ki tetahi tauira ngawari:

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

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

Kotahi te pou kei roto i te whakaputanga me nga ingoa o nga pene.

Ko te kupu kōwhiringa ka kowhiri i nga ingoa pākākano mai i te mara metadata.name. Ko tenei na te mea kua tautuhia te ingoa o te pene ki te mara ingoa tamaiti metadata i roto i te whakaahuatanga rauemi o te pene. Ka kitea etahi atu korero i roto Aratohu API patohia ranei te whakahau kubectl explain pod.metadata.name.

Inaianei me kii kei te pirangi koe ki te taapiri i tetahi atu pou ki te putanga, hei tauira ko te whakaatu i te pona kei te rere tonu ia pene. Hei mahi i tenei, ka taea noa e koe te taapiri i te whakaritenga o te tīwae e tika ana ki te kōwhiringa tīwae ritenga:

$ 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

Ka tohua e te kīanga te ingoa kōpuku mai spec.nodeName — ka tautapahia he poti ki tetahi node, ka tuhia tona ingoa ki te mara spec.nodeName whakatakotoranga rauemi pod. Ka kitea etahi atu korero taipitopito i roto i te putanga kubectl explain pod.spec.nodeName.

Kia mahara ko nga apure rauemi Kubernetes he ahua tairongo.

Ka taea e koe te tiro i tetahi mara rauemi hei tīwae. Me arotake noa i te whakaritenga rauemi ka whakamatau me nga mara e pai ana koe.

Engari ko te tuatahi, me ata titiro ki nga kupu whiriwhiri mara.

Nga Whakaaturanga JSONPath

Ko nga korero mo te kowhiri i nga waahi rauemi kei runga JSONPath.

He reo a JSONPath mo te tiki raraunga mai i nga tuhinga JSON. Ko te kowhiri i tetahi mara ko te keehi whakamahi ngawari mo JSONPath. He nui ana he maha atu nga huarahi, tae atu ki nga kaiwhiriwhiri, nga whiriwhiringa me etahi atu.

Ko te whakamarama a Kubectl e tautoko ana i te maha o nga ahuatanga JSONPath. Ko nga mea ka taea me nga tauira o ta raatau whakamahinga ka whakaahuahia i raro nei:

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

He mea nui te [] kaiwhakahaere. He maha nga apure rauemi Kubernetes he rarangi, a ma tenei kaiwhakahaere ka taea e koe te kowhiri i nga mema o aua rarangi. He maha nga wa ka whakamahia me te kaari mohoao penei i te [*] hei kowhiri i nga huānga katoa o te rarangi.

Nga tauira tono

He mutunga kore nga huarahi mo te whakamahi i te whakatakotoranga whakaputa poupou ritenga, na te mea ka taea e koe te whakaatu i tetahi mara, huinga rauemi ranei i roto i te putanga. Anei etahi tauira tauira, engari kia pai ki te tirotiro i a raatau ake me te rapu tono e pai ana ki a koe.

  1. E whakaatu ana i nga whakaahua ipu mo nga pene:
    $ 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

    Ko tenei whakahau e whakaatu ana i nga ingoa whakaahua ipu mo ia pene.

    Kia maumahara he maha nga ipu kei roto i te peera, katahi ka whakaatuhia nga ingoa whakaahua ki te raina kotahi, ka wehea e nga piko.

  2. E whakaatu ana i nga rohe waatea 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

    Ka whai hua tenei tono mena ka manaakihia to huinga ki te kapua whanui. Ka whakaatu i te rohe waatea mo ia node.

    Ko te rohe waatea he ariā kapua e whakawhāiti ana i te rohe tukurua ki tetahi rohe matawhenua.

    Ko nga waahi waatea mo ia node ka whiwhi ma te tapanga motuhake - failure-domain.beta.kubernetes.io/zone. Mēnā kei te rere te kāhui i roto i te kapua tūmatanui, ka waihanga aunoatia tēnei tapanga ka whakakīia ki ngā ingoa o ngā rohe wātea mō ia kōpuku.

    Ko nga tapanga ehara i te waahanga o te rauemi Kubernetes, no reira kare koe e kite i nga korero mo ratou i roto Aratohu API. Heoi, ka kitea (penei i etahi atu tapanga) mena ka tono korero koe mo nga pona kei te whakatakotoranga YAML, JSON ranei:

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

    He huarahi pai tenei ki te ako atu mo nga rauemi, i tua atu i nga whakaritenga rauemi ako.

4. Kia ngawari te huri i waenga i nga tautau me nga mokowā ingoa

Ina tono a kubectl ki te Kubernetes API, ka panui tuatahitia te konae kubeconfig ki te tiki i nga tawhā e tika ana mo te hononga.

Ma te taunoa ko te kōnae kubeconfig ~/.kube/config. I te nuinga o te wa ka hangaia, ka whakahoutia ranei tenei konae e tetahi tono motuhake.

Ina mahi koe me nga tautau maha, kei roto i to kōnae kubeconfig nga tautuhinga mo te hono atu ki aua tautau katoa. Me whai huarahi koe ki te korero ki te whakahau kubectl ko tehea kahui e mahi ana koe.

I roto i te tautau, ka taea e koe te hanga mokowāingoa maha—he momo kāhui mariko i roto i te kāhui tinana. Ka whakatauhia e Kubectl ko tehea mokowā ingoa hei whakamahi i runga i te konae kubeconfig. Ko te tikanga me whai huarahi ano koe ki te korero ki te whakahau kubectl he aha te ingoa mokowāmahi hei mahi.

I roto i tenei upoko ka whakamaramatia e matou me pehea te mahi me te pehea e pai ai te mahi.

Kia mahara he maha pea nga konae kubeconfig kua whakarārangihia ki te taurangi taiao KUBECONFIG. I tenei keehi, ka whakakotahihia enei konae katoa ki tetahi whirihoranga noa i te wa whakahaere. Ka taea hoki te huri i te konae kubeconfig taunoa ma te whakahaere kubectl me te tawhā --kubeconfig. Titiro tuhinga whaimana.

kubeconfig kōnae

Kia kite tatou he aha te ahua o te kōnae kubeconfig:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Ka kite koe, kei roto i te konae kubeconfig he huinga horopaki. E toru nga waahanga o te horopaki:

  • Cluster — API URL o te tūmau tautau.
  • Kaiwhakamahi - tohu motuhēhēnga kaiwhakamahi kei roto i te kāhui.
  • Mokowāingoa - te mokowāingoa e whakamahia ana ina hono ana ki te kāhui.

I roto i te mahi, he maha nga wa ka whakamahi ratou i tetahi horopaki mo ia huinga i roto i to ratou kubeconfig. Heoi, ka taea e koe te maha o nga horopaki mo ia huinga, he rerekee ma te kaiwhakamahi, mokowāingoa rānei. Heoi ano, he rerekee tenei whirihoranga horopaki-maha, no reira he mahere kotahi-ki-tetahi i waenga i nga tautau me nga horopaki.

I nga wa katoa, ko tetahi o nga horopaki he mea o naianei:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Ina panui te kubectl i tetahi konae whirihoranga, ka mau tonu nga korero mai i te horopaki o naianei. I te tauira i runga ake nei, ka hono te kubectl ki te tautau Hare.

No reira, ki te huri ki tetahi atu tautau, me huri koe i te horopaki o naianei kei te konae kubeconfig:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Inaianei ka hono a kubectl ki te roopu Fox.

Hei huri ki tetahi mokowāingoa rerekē i roto i te kāhui kotahi, me huri koe i te uara o te huānga mokowāingoa mo te horopaki o nāianei:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
I roto i te tauira i runga ake nei, ka whakamahia e kubectl te mokowāingoa Prod o te kāhui Fox (i mua i whakaritea te mokowāingoa Whakamātautau).

Kia mahara ko te kubectl e whakarato ana i nga whiringa --cluster, --user, --namespace и --context, ka taea e koe te tuhirua i nga huānga takitahi me te horopaki o naianei ake, ahakoa he aha te mea kua whakatakotoria ki te kubeconfig. Titiro kubectl options.

I roto i te ariā, ka taea e koe te huri i nga tautuhinga i roto i te kubeconfig. Engari he raruraru. Hei whakangawari i enei mahi, he maha nga taputapu ka taea e koe te whakarereke aunoa i nga tawhā.

Whakamahia te kubectx

He taputapu tino rongonui mo te whakawhiti i waenga i nga tautau me nga waahi ingoa.

Ka whakaratohia e te taputapu nga whakahau kubectx и kubens ki te huri i te horopaki o naianei me te mokowāingoa.

Ka rite ki te korero, ko te whakarereke i te horopaki o naianei ko te whakarereke i te roopu mena he kotahi noa te horopaki mo ia huinga.

Anei tetahi tauira o te whakahaere i enei whakahau:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Ko te tikanga, ko enei whakahau ka whakatika noa i te konae kubeconfig pera i runga ake nei.

ki te whakauru kubectx, whai i nga tohutohu kei runga Karawaka.

Ko nga whakahau e rua e tautoko ana i te whakaoti-aunoa o nga ingoa horopaki me nga ingoa mokowāingoa, e whakakore ana i te hiahia ki te tuhi katoa. Nga tohutohu mo te whakatuu whakaoti-aunoa konei.

Ko tetahi atu waahanga whai hua kubectx ko te reira aratau tauwhitiwhiti. Ka mahi tahi me te whaipainga fzf, me whakauru motuhake. Ma te whakauru i te fzf ka waatea te aratau tauwhitiwhiti kubectx. Ma te tauwhitiwhiti, ka taea e koe te kowhiri i te horopaki me te mokowāingoa ma te atanga rapu utu kore utu e whakaratohia ana e fzf.

Te whakamahi ingoa ingoa anga

Kaore koe e hiahia taputapu motuhake hei whakarereke i te horopaki o naianei me te mokowāingoa nā te mea kei te whakarato whakahau ano a kubectl mo tenei. Ae, kapa kubectl config ka whakarato i nga whakahau iti mo te whakatika i nga konae kubeconfig.

Anei etahi o enei:

  • kubectl config get-contexts: whakaatu i nga horopaki katoa;
  • kubectl config current-context: whiwhi horopaki o nāianei;
  • kubectl config use-context: huri i te horopaki o naianei;
  • kubectl config set-context: Hurihia te huānga horopaki.

Heoi, ko te whakamahi tika i enei whakahau kaore i te tino watea na te mea he roa. Ka taea e koe te hanga ingoa ingoa anga mo nga mea ngawari ki te mahi.

I hanga e ahau he huinga ingoa ingoa i runga i enei whakahau e whakarato ana i nga mahi rite ki te kubectx. I konei ka kite koe i a raatau e mahi ana:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Kia mahara ko nga ingoa ingoa ka whakamahi i te fzf hei whakarato i tetahi atanga rapunga koreutu (penei i te aratau tauwhitiwhiti a kubectx). Ko te tikanga me hiahia koe tāuta fzfki te whakamahi i enei ingoa ingoa.

Anei nga whakamaramatanga o nga ingoa ingoa ake:

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

Hei tautuhi i enei ingoa ingoa me taapiri i nga whakamaramatanga o runga ake nei ki to konae ~/.bashrc ranei ~/.zshrc ka whakaara ano i to anga.

Te whakamahi monomai

Ka taea e Kubectl te uta i nga monomai e mahia ana kia rite ki nga whakahau taketake. Ka taea e koe, hei tauira, te whakauru i te mono kubectl-foo ka whakahaere ma te whakahaere i te whakahau kubectl foo.

He pai ki te whakarereke i te horopaki me te mokowā ingoa penei, hei tauira ma te rere kubectl ctx ki te huri i te horopaki me te kubectl ns ki te huri i te mokowā ingoa.

Kua tuhia e ahau nga taputapu e rua hei mahi i tenei:

Ko te mahi o nga mono kei runga i nga ingoa ingoa mai i te waahanga o mua.

Anei te mahi a raatau:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Kia mahara ko nga monomai e whakamahi ana i te fzf hei whakarato i tetahi atanga rapu utu kore utu (penei i te aratau tauwhitiwhiti a kubectx). Ko te tikanga me hiahia koe tāuta fzfki te whakamahi i enei ingoa ingoa.

Hei whakauru monomai, me tango e koe nga tuhinga anga kua whakaingoatia kubectl-ctx и kubectl-ns ki tetahi whaiaronga i roto i to taurangi PATH ka taea te whakahaere me te tauira. chmod +x. I muri tonu i tenei ka taea e koe te whakamahi kubectl ctx и kubectl ns.

5. Whakaitihia te whakauru me nga ingoa ingoa aunoa

Ko nga ingoa ingoa anga he huarahi pai ki te tere ake te whakauru. Kaupapa kubectl-aliases kei roto tata ki te 800 nga pokatata mo nga tono kubectl taketake.

Kei te miharo pea koe - me pehea e maumahara ai koe ki nga ingoa ingoa 800? Engari kaore koe e mahara ki a raatau katoa, na te mea i hangaia i runga i te kaupapa ngawari, e whakaatuhia ana i raro nei:

Me pehea te whakamahi pai ake i te kubectl: he aratohu taipitopito
Hei tauira:

  1. kgpooyaml - kubectl tiki hua oyaml
  2. ksysgsvcw - kubectl -n kube-pūnaha whiwhi svc w
  3. ksysrmcm -kubectl -n kube-pūnaha rm cm
  4. kgdepallsl - kubectl whiwhi tukunga sl katoa

Ka taea e koe te kite, ko nga ingoa ingoa kei roto i nga waahanga, ko ia waahanga he tohu motuhake o te whakahau kubectl. Ka taea e ia ingoa ingoa tetahi waahanga mo te tono turanga, te mahi, me te rauemi, me nga waahanga maha mo nga tawhā. Ka "whakakiia" enei waahanga mai i te maui ki te taha matau kia rite ki te hoahoa o runga.

Ko te hoahoa taipitopito o naianei kei GitHub. I reira ka kitea ano e koe rarangi katoa o ingoa ingoa.

Hei tauira, he rite te ingoakē kgpooyamlall ki te whakahau kubectl get pods -o yaml --all-namespaces.

Ehara i te mea nui te raupapa o nga whiringa: whakahau kgpooyamlall he rite ki te whakahau kgpoalloyaml.

Kaore koe e whakamahi i nga waahanga katoa hei ingoa ingoa. Hei tauira k, kg, klo, ksys, kgpo ka taea hoki te whakamahi. I tua atu, ka taea e koe te whakakotahi i nga ingoa ingoa me nga whakahau auau, nga whiringa ranei i runga i te raina whakahau:

Hei tauira:

  1. Tuhinga o mua kubectl proxy ka taea e koe te tuhi k proxy.
  2. Tuhinga o mua kubectl get roles ka taea e koe te tuhi kg roles (i tenei wa kaore he ingoa ingoa mo te rauemi Roles).
  3. Ki te tiki raraunga mo tetahi poti motuhake, ka taea e koe te whakamahi i te whakahau kgpo my-pod — kubectl get pod my-pod.

Kia mahara ko etahi ingoa ingoa e hiahia ana ki te tohenga rarangi whakahau. Hei tauira, ingoa ingoa kgpol te tikanga kubectl get pods -l. Kōwhiringa -l me whai tautohe - he tohu tapanga. Mena ka whakamahi koe i te ingoa ingoa ka rite te ahua kgpol app=ui.

Na te mea he tohenga tohenga a etahi ingoa ingoa, me whakamahi nga ingoa ingoa a, f, me te l.

I te nuinga o te waa, ka tae koe ki tenei kaupapa, ka taea e koe te whakaputa ingoa ingoa mai i nga whakahau e hiahia ana koe ki te mahi me te penapena i te waa pato.

tāutanga

Hei whakauru i nga kubectl-alias, me tango e koe te konae .kubectl_aliases mai i GitHub ka whakauruhia ki roto i te konae ~/.bashrc ranei ~/.zshrc:

source ~/.kubectl_aliases

WhakaotiAunoa

Ka rite ki ta matou korero i mua, he maha nga wa ka taapirihia e koe etahi atu kupu ki tetahi ingoa i runga i te raina whakahau. Hei tauira:

$ kgpooyaml test-pod-d4b77b989

Mena ka whakamahi koe i te whakaotinga whakahau kubectl, kua whakamahia pea e koe te whakaoti-aunoa mo nga mea penei i nga ingoa rauemi. Engari ka taea tenei ina whakamahia nga ingoa ingoa?

He patai tino nui tenei na te mea ki te kore e mahi te whakaoti-aunoa, ka ngaro etahi o nga hua o nga ingoa ingoa.

Ko te whakautu ka whakawhirinaki ki te anga e whakamahia ana e koe:

  1. Mo Zsh, ko te whakaotinga ingoa ka puta mai i te pouaka.
  2. Mo Bash, engari, me mahi etahi mahi kia tutuki ai te mahi.

Whakahohe te whakaoti-aunoa mo nga ingoa ingoa i Bash

Ko te raruraru ki a Bash ko tana ngana ki te whakaoti (i nga wa katoa ka pehi koe i te Ripa) te ingoa ingoa, ehara i te whakahau e tohuhia ana e te ingoa (penei i a Zsh, hei tauira). I te mea karekau he tuhinga whakaoti mo nga ingoa ingoa 800 katoa, karekau e mahi te whakaoti-aunoa.

Ko te kaupapa oti-ingoa ka whakarato i te otinga whanui mo tenei raru. Ka hono atu ki te tikanga whakaotinga mo nga ingoa ingoa, ka whakawhanui i roto i te ingoa ingoa ki tetahi whakahau, ka whakahoki i nga whiringa otinga mo te whakahau kua oti. Ko te tikanga he rite tonu te ahua o te padding mo te ingoa ingoa ki tetahi whakahau katoa.

Ka whai ake nei, ka whakamarama tuatahi ahau me pehea te whakauru i nga ingoa ingoa-katoa katahi me pehea te whirihora kia taea ai te whakaoti mo nga ingoa ingoa kubectl katoa.

Kei te whakauru i nga ingoa-katoa

Tuatahi o te katoa, oti-ingoakanga whakawhirinaki i runga i bash-otinga. Na reira, i mua i te whakaurunga-ingoa-ingoa, me mohio koe kua whakauruhia te bash-completion. Kua tukuna nga tohutohu whakaurunga i mua mo Linux me MacOS.

Tuhipoka Nui mo nga Kaiwhakamahi MacOS: Pērā i te kubectl autocompletion hōtuhi, complete-alias e kore e mahi me Bash 3.2, koinei te taunoa i runga i te MacOS. Ina koa, ko nga ingoa-whakaoti ka whakawhirinaki ki te bash-completion v2 (brew install bash-completion@2), e hiahia ana kia Bash 4.1. Ko te tikanga mo te whakamahi ingoa-katoa i runga i te MacOS me whakauru koe i tetahi putanga hou o Bash.

Me tango e koe te tuhinga bash_completion.sh Tuhinga ka whai mai Putanga GitHub ka whakauruhia ki roto i to konae ~/.bashrc:

source ~/bash_completion.sh

I muri i te whakaara ano i te anga, ka oti katoa te whakauru-ingoa ingoa.

Whakahohe te whakaoti-aunoa mo nga ingoa ingoa kubectl

Hangarau oti-ingoaingo whakarato mahi takai _complete_alias. Ka tirohia e tenei mahi te ingoa ingoa ka whakahoki mai i nga tohu whakaotinga mo te tono ingoa ingoa.

Hei hono i tetahi mahi ki tetahi ingoa ingoa motuhake, me whakamahi koe i te tikanga Bash i hangaia oti, ki te tāuta _complete_alias hei mahi whakaoti ingoa ingoa.

Hei tauira, me tango te ingoa ingoa k, e tohu ana mo te whakahau kubectl. ki te tāuta _complete_alias Hei mahi taapiri mo tenei ingoa ingoa, me whakahaere e koe te whakahau e whai ake nei:

$ complete -F _complete_alias k

Ko te hua o tenei ko nga wa katoa ka whakaoti aunoa koe i tetahi ingoa ingoa k, ka karangahia te mahi _complete_alias, ka taki i te ingoa ingoa ka whakahoki mai i nga tohu whakaotinga mo te whakahau kubectl.

Hei tauira tuarua, me tango te ingoa ingoa kg, e tohu ana kubectl get:

$ complete -F _complete_alias kg

Pērā i te tauira o mua, ka whakakī aunoa koe i te kg, ka whiwhi koe i nga tohu whakaotinga ka whiwhi koe mo kubectl get.

Kia mahara ka taea e koe te whakamahi ingoa-katoa mo tetahi ingoa i runga i to punaha.

No reira, kia taea ai te whakaoti-aunoa mo nga ingoa ingoa kubectl katoa, me whakahaere e koe te whakahau i runga ake mo ia o ratou. Ko te snippet e whai ake nei ka mahi pera, mena kua tautuhia e koe nga kubectl-alias ki ~/.kubectl-aliases:

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

Me whakauru tenei waahanga waehere ki roto i to ~/.bashrc, whakaara ano i te anga whakahau ka watea te whakaoti-aunoa mo nga ingoa ingoa kubectl 800 katoa.

6. Te whakawhānui i te kubectl me nga monomai

Tuhinga ka whai mai putanga 1.12, tautoko kubectl tikanga mono, ka taea e koe te whakawhānui ake i ana mahi me etahi atu whakahau.

Mena kei te mohio koe Git taputapu mono, katahi ka hangaia nga taputapu kubectl i runga i te kaupapa kotahi.

I roto i tenei upoko, ka korerohia me pehea te whakauru i nga monomai, kei hea ka kitea, me pehea te hanga i a koe ake mono.

Tāuta monomai

Ka tohatohahia nga monomai Kubectl hei konae ngawari me te ingoa penei kubectl-x. Prefix kubectl- e hiahiatia ana, ka whai i tetahi whakahau kubectl hou e taea ai e koe te karanga i te mono.

Hei tauira, ka tohatohahia te mono hello hei konae e kiia ana kubectl-hello.

Hei whakauru i te mono, me kape koe i te konae kubectl-x ki tetahi whaiaronga i roto i to PATH ka taea te whakahaere, hei tauira me chmod +x. I muri tonu i tenei ka taea e koe te karanga i te mono me kubectl x.

Ka taea e koe te whakamahi i te whakahau e whai ake nei ki te whakarārangi i nga monomai katoa kua whakauruhia ki runga i to punaha:

$ kubectl plugin list

Ka whakaatu hoki tenei whakahau i nga whakatupato mena he maha nga monomai he rite te ingoa, mena he konae mono kaore e taea te whakahaere.

Te kimi me te whakauru monomai ma te whakamahi i a Krew

Ka taea te tiritiri me te whakamahi ano i nga monomai Kubectl penei i nga kohinga rorohiko. Engari kei hea koe e kitea ai nga monomai kua tohatohahia e etahi atu?

Kaupapa Krew Ko te whai ki te whakarato i tetahi otinga whakakotahi mo te tiri, te rapu, te whakauru me te whakahaere i nga monomai kubectl. Ko te kaupapa e kii ana he "kaiwhakahaere kete mo te kubectl monomai" (He rite a Krew ki Tuhinga).

Ko Krew he rarangi o nga taputapu kubectl ka taea e koe te kowhiri me te whakauru. I te wa ano, ko Krew he mono mo te kubectl.

Ko te tikanga ko te whakauru i a Krew he rite ki te whakauru i etahi atu mono kubectl. Ka kitea e koe nga tohutohu taipitopito i Whārangi GitHub.

Ko nga whakahau a Krew tino nui ko:

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

Kia mahara ko te whakauru i nga mono ma te whakamahi i a Krew kaore e pokanoa ki te whakauru i nga taputapu ma te whakamahi i te tikanga paerewa kua whakaahuahia i runga ake nei.

Kia mahara ko te whakahau kubectl krew list ka whakaatu noa i nga monomai i whakauruhia ma te whakamahi i a Krew, engari ko te whakahau kubectl plugin list ka whakarārangihia nga monomai katoa, ara, nga mea i whakauruhia ma te whakamahi i a Krew me nga mea i whakauruhia e etahi atu tikanga.

Te kimi monomai ki etahi atu waahi

He kaupapa rangatahi a Krew, kei roto i tana kaupapa te raarangi anake e pā ana ki 30 monomai. Ki te kore e kitea e koe nga mea e hiahia ana koe, ka kitea e koe nga monomai ki etahi atu waahi, penei i a GitHub.

Ka tūtohu ahau ki te titiro ki te waahanga GitHub kubectl-monomai. I reira ka kitea e koe te maha o nga taputapu e waatea ana hei tirotiro.

Te tuhi i a koe ake monomai

ka taea e koe ake hanga monomai - Ehara i te mea uaua. Me hanga e koe he kaikawe e mahi ana i taau e hiahia ana, whakaingoatia kubectl-x me te whakauru kia rite ki te korero i runga ake nei.

Ko te konae he tuhinga bash, he tuhinga python, he tono GO whakahiato ranei - kaore he aha. Ko te tikanga anake ka taea te mahi tika i roto i te punaha whakahaere.

Me hanga he tauira mono i tenei wa tonu. I te waahanga o mua, i whakamahia e koe te whakahau kubectl ki te whakararangi i nga ipu mo ia pene. He ngawari te huri i tenei whakahau hei mono ka taea e koe te waea me te tauira. kubectl img.

Waihangatia he kōnae kubectl-img te ihirangi e whai ake nei:

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

Inaianei kia taea te whakahaere i te konae me chmod +x kubectl-img ka nukuhia ki tetahi whaiaronga i to PATH. I muri tonu i tenei ka taea e koe te whakamahi i te mono kubectl img.

Ka rite ki te korero, ka taea te tuhi i nga monomai kubectl i roto i tetahi reo hotaka, reo tuhi ranei. Mena kei te whakamahi koe i nga tuhinga anga, ko te painga o te waea ngawari ki te kubectl mai i roto i te mono. Heoi, ka taea e koe te tuhi i nga taapiri uaua ake i roto i nga reo hotaka tuuturu ma te whakamahi whare pukapuka kiritaki Kubernetes. Mena kei te whakamahi koe i te Haere, ka taea hoki e koe te whakamahi whare pukapuka cli-runtime, he mea motuhake mo te tuhi kubectl monomai.

Me pehea te tiri i o monomai

Ki te whakaaro koe ka whai hua to mono ki etahi atu, tena koa toha ki a GitHub. Me tino taapiri atu ki te kaupapa kubectl-monomai.

Ka taea hoki te tono kia taapirihia to mono ki Rarangi Krew. Ko nga tohutohu mo te mahi i tenei kei roto Nga putunga putunga GitHub.

Te whakaotinga whakahau

Karekau nga monomai i te tautoko i te whakaotinga aunoa. Arā, me whakauru koe i te ingoa katoa o te mono me nga ingoa katoa o nga tautohetohe.

Kei te putunga kubectl GitHub mo tenei mahi tono tuwhera. Na tera pea ka whakatinanahia tenei waahanga a muri ake nei.

Waimarie!!!

He aha atu hei panui mo te kaupapa:

  1. E toru nga taumata o te tauine-aunoa i Kubernetes me pehea te whakamahi tika.
  2. Kubernetes i roto i te wairua o te kaipahua me te tauira mo te whakatinanatanga.
  3. To tatou hongere huri noa i Kubernetes i Telegram.

Source: will.com

Tāpiri i te kōrero