Utauta mo nga kaiwhakawhanake tono e rere ana i runga i te Kubernetes

Utauta mo nga kaiwhakawhanake tono e rere ana i runga i te Kubernetes

Ko te huarahi hou ki nga mahi e whakaoti ana i nga raru pakihi maha. Ko nga ipu me nga kaitoi he mea ngawari ki te tarai i nga kaupapa o nga mea uaua, te whakangawari i te tukunga o nga putanga hou, kia pono ake ai, engari i te wa ano ka hanga raru ano mo nga kaihanga. Ko te kaihōtaka, tuatahi, e aro nui ana ki tana waehere: hoahoanga, kounga, mahi, huatau - kauaka me pehea te mahi i roto i te Kubernetes me pehea te whakamatautau me te patuiro i muri i nga huringa iti noa. Na reira, he mea maori ano kei te kaha te whakawhanake i nga taputapu mo nga Kubernetes, e awhina ana ki te whakatau i nga raru o nga kaiwhakawhanake tino "ahua" me te tuku kia aro ratou ki te mea nui.

Ko tenei arotake he korero poto mo etahi o nga taputapu e ngawari ake ai te oranga mo te kaitohatu e rere ana tana waehere i roto i te pod'ax o te kahui Kubernetes.

Kaiawhina ngawari

Kubectl-debug

  • Ko te raina raro: tāpirihia to ipu ki te Pod ka kite he aha te mahi i roto.
  • GitHub.
  • Nga tatauranga GH poto: 715 nga whetu, 54 nga mahi, 9 nga kaituku.
  • Reo: Haere.
  • Raihana: Raihana Apache 2.0.

Ko tenei mono mo te kubectl ka taea e koe te hanga i tetahi ipu taapiri ki roto i te putea o te hiahia, ka tohatoha i te waahi ingoa tukanga ki etahi atu ipu. I roto ka taea e koe te patuiro i te mahi a te pod: tirohia te whatunga, whakarongo ki nga hokohoko whatunga, mahi i tetahi waahanga o te tukanga o te hiahia, etc.

Ka taea hoki te huri ki te ipu tukanga ma te rere chroot /proc/PID/root - he tino watea tenei ina hiahia koe ki te tiki i te anga pakiaka ki roto i te ipu ka whakatakotoria ki te whakaaturanga securityContext.runAs.

He maamaa, he whai hua hoki te taputapu, na reira ka whai hua ki ia kaiwhakawhanake. I tuhia e matou etahi atu korero i roto tuhinga wehe.

Waatea

  • Ko te raina raro: whakawhiti i te tono ki to rorohiko. Whakawhanakehia me te patuiro i te rohe.
  • paetukutuku; GitHub.
  • Nga tatauranga poto mo te GH: 2131 whetu, 2712 mahi, 33 kaikohaoha.
  • Reo: Python.
  • Raihana: Raihana Apache 2.0.

Ko te whakaaro o tenei mapi-i roto ko te whakarewa i tetahi ipu me te tono i runga i te rorohiko kaiwhakamahi a-rohe me te takawaenga i nga waka katoa mai i te tautau ki reira, ki muri. Ma tenei huarahi ka taea e koe te whakawhanake i te rohe ma te whakatika noa i nga konae kei roto i to IDE tino pai: ka waatea tonu nga hua.

Ko nga painga o te whakahaere i te rohe ko te waatea o nga whakarereketanga me nga hua tonu, te kaha ki te patuiro i te tono i roto i te huarahi o mua. Ko te taha ki raro ko te tono mo te tere hononga, he mea tino kitea i te wa e mahi ana koe me tetahi tono me te RPS tino tiketike me nga waka. I tua atu, he raruraru a Telepresence me nga pikinga rōrahi i runga i te Matapihi, ka taea te whakatau mo nga kaihanga kua waia ki tenei OS.

Kua tohatohahia e matou o maatau wheako mo te whakamahi Telepresence konei.

Ksync

  • Ko te raina raro: tata tonu te tukutahitanga o te waehere me te ipu kei roto i te tautau.
  • GitHub.
  • Nga tatauranga GH poto: 555 nga whetu, 362 nga mahi, 11 nga kaituku.
  • Reo: Haere.
  • Raihana: Raihana Apache 2.0.

Ma te whaipainga ka taea e koe te tukutahi i nga ihirangi o te raarangi rohe me te raarangi o tetahi ipu e rere ana i roto i te roopu. Ko taua taputapu he tino pai mo nga kaiwhakawhanake i roto i te tuhi i nga reo whakahōtaka, ko te raru nui ko te tuku waehere ki te ipu rere. I hangaia a Ksync hei whakamama i tenei mahunga.

I te wa kotahi i arawhitihia e te whakahau ksync init ka hangaia he DaemonSet i roto i te kohinga, ka whakamahia hei aroturuki i te ahua o te punaha konae o te ipu kua tohua. I runga i tana rorohiko rohe, ka whakahaerehia e te kaiwhakawhanake te whakahau ksync watch, e aro turuki ana i nga whirihoranga me te rere tukutahi, e tukutahi tika ana i nga konae me te tautau.

Ko nga mea e toe ana ko te ako ki te ksync he aha te tukutahi me te aha. Hei tauira, tenei whakahau:

ksync create --name=myproject --namespace=test --selector=app=backend --container=php --reload=false /home/user/myproject/ /var/www/myproject/

...ka hanga he kaitutei ingoa myprojectka rapua he poti whai tapanga app=backend ka ngana ki te tukutahi i te whaiaronga paetata /home/user/myproject/ me te pukapuka /var/www/myproject/ i te ipu i kiia php.

Nga raruraru me nga korero mo te ksync mai i o maatau wheako:

  • Me whakamahi i runga i nga node kahui Kubernetes overlay2 hei taraiwa rokiroki mo Docker. E kore e mahi tahi te taputapu me etahi atu.
  • I te wa e whakamahi ana a Windows hei OS kiritaki, kare pea te kaitirotiro punaha konae e mahi tika. I kitea tenei bug i te wa e mahi ana me nga raarangi nui - me te maha o nga konae kohanga me nga raarangi. I hanga e matou take whaitake i roto i te kaupapa tukutahi, engari kaore ano kia ahu whakamua (mai i te timatanga o Hurae).
  • Whakamahia te kōnae .stignore ki te tautuhi i nga ara, i nga tauira konae ranei kaore e tika kia tukutahia (hei tauira, whaiaronga app/cache и .git).
  • Ma te taunoa, ka whakaara ano a ksync i te ipu ka huri nga konae. Mo Node.js he watea tenei, engari mo te PHP he tino kore rawa. He pai ake te whakaweto i te opcache me te whakamahi i te haki --reload=false.
  • Ka taea te whakatika i te whirihoranga i nga wa katoa $HOME/.ksync/ksync.yaml.

Squash

  • Ko te raina raro: nga tukanga patuiro tika i roto i te tautau.
  • GitHub.
  • Nga tatauranga poto mo te GH: 1154 nga whetu, 279 nga mahi, 23 nga kaituku.
  • Reo: Haere.
  • Raihana: Raihana Apache 2.0.

I hoahoatia tenei taputapu mo nga mahi patuiro tika i roto i nga poro. He ngawari te whaipainga me te taunekeneke ka taea e koe te kowhiri i te kaipatu e hiahiatia ana (tirohia ki raro) me te mokowā ingoa + pod, i roto i te tukanga e hiahia ana koe ki te wawao. Kei te tautokohia inaianei:

  • ruri - mo nga tono Haere;
  • GDB - na roto i te whaainga mamao + tauranga whakamua;
  • Te tauranga whakamua JDWP mo te patuiro i nga tono Java.

I te taha IDE, kei te waatea noa te tautoko i te VScode (ma te whakamahi whakawhānui), heoi, ko nga mahere mo tenei tau (2019) ko Eclipse me Intellij.

Hei patuiro i nga tukanga, ka whakahaere a Squash i tetahi ipu whaimana i runga i nga pokapu tautau, na me mohio koe ki nga kaha aratau haumaru ki te karo i nga raruraru haumaru.

Whakaoti otinga

Ka anga whakamua ki te mahi toi taumaha - he maha atu nga kaupapa "tauine-nui" i hangaia hei whakatutuki tonu i nga hiahia maha o nga kaihanga.

NB: I roto i tenei rarangi, o te akoranga, he wahi mo to tatou taputapu Open Source werf (i mohiotia i mua ko dapp). Heoi ano, kua oti ke te tuhi me te korero mo taua mea neke atu i te kotahi, na reira i whakatau kia kaua e whakauruhia ki roto i te arotake. Mo te hunga e hiahia ana kia waia ake ki ona kaha, ka tūtohu kia panui/whakarongo ki te purongo “Ko werf ta matou taputapu mo CI/CD i Kubernetes".

DevSpace

  • Ko te raina raro: mo te hunga e hiahia ana ki te timata ki te mahi i Kubernetes, engari kaore e hiahia ki te ruku hohonu ki roto i tana ngahere.
  • GitHub.
  • Nga tatauranga poto mo te GH: 630 nga whetu, 1912 te mahi, 13 nga kaikoha.
  • Reo: Haere.
  • Raihana: Raihana Apache 2.0.

He otinga mai i te kamupene he rite te ingoa, e whakarato ana i nga tautau whakahaere me nga Kubernetes mo te whakawhanaketanga roopu. I hangaia te taputapu mo nga tautau arumoni, engari he pai te mahi me etahi atu.

I te wa e whakahaere ana i te whakahau devspace init i roto i te putumōhio kaupapa ka tukuna ki a koe (he pahekoheko):

  • tīpakohia he kāhui Kubernetes mahi,
  • whakamahi i nga wa Dockerfile (whakaputahia he mea hou ranei) hei hanga ipu i runga i taua mea,
  • tīpakohia he putunga mo te penapena whakaahua ipu, aha atu.

I muri i enei mahi whakarite katoa, ka taea e koe te timata te whanaketanga ma te whakahaere i te whakahau devspace dev. Ka hanga e ia te ipu, ka tukuna atu ki te putunga, ka hurihia te tukunga ki te kahui ka tiimata te tuku tauranga whakamua me te tukutahi o te ipu me te raarangi rohe.

Ko te hiahia, ka akihia koe ki te nuku i te tauranga ki te ipu. Kaua koe e paopao, na te mea ka tiimata te ipu ki te whakahau moe, a mo te tino whakamatautau me whakarewahia te tono.

Ka mutu, ko te kapa devspace deploy ka hurihia te tono me nga hanganga e hono ana ki te roopu, ka mutu ka timata nga mea katoa ki te mahi i roto i te aratau whawhai.

Ko nga whirihoranga kaupapa katoa ka rongoa ki tetahi konae devspace.yaml. I tua atu i nga tautuhinga taiao whanaketanga, ka kitea ano e koe he whakamaarama mo nga hanganga kei roto, he rite ki nga whakaaturanga Kubernetes paerewa, he tino ngawari noa iho.

Utauta mo nga kaiwhakawhanake tono e rere ana i runga i te Kubernetes
Te hoahoanga me nga waahanga matua o te mahi tahi me DevSpace

I tua atu, he ngawari te taapiri i tetahi waahanga kua tautuhia (hei tauira, he MySQL DBMS) he tūtohi Helm ranei ki te kaupapa. Pānuitia atu i roto i tuhinga - ehara i te mea uaua.

Tauira

  • paetukutuku; GitHub.
  • Nga tatauranga GH poto: 7423 whetu, 4173 mahi, 136 kaikoha.
  • Reo: Haere.
  • Raihana: Raihana Apache 2.0.

Ko tenei taputapu mai i a Google e kii ana ki te kapi i nga hiahia katoa o te kaiwhakawhanake ka rere tana waehere i runga i te roopu Kubernetes. Ko te tiimata ki te whakamahi ehara i te mea ngawari penei i te devspace: kaore he tauwhitiwhitinga, he kitenga reo me te hanga-aunoa Dockerfile e kore ratou e tuku ki a koe i konei.

Heoi, ki te kore koe e mataku, koinei te mea ka taea e Skaffold te mahi:

  • Aroturuki i nga huringa waehere puna.
  • Tukutahitia ki te ipu pākākano mena karekau he hui.
  • Kohikohia nga ipu whai tohu, mena ka whakamaoritia te reo, whakahiatohia ranei nga taonga ka kohia ki roto i nga ipu.
  • Ko nga whakaahua ka puta ka tirohia aunoa ma te whakamahi ipu-hanganga-whakamatautau.
  • Te tohu me te tuku whakaahua ki te Rehita Docker.
  • Tukuna he tono ki roto i te tautau ma te whakamahi i te kubectl, Helm, kustomize ranei.
  • Mahi whakamua tauranga.
  • Nga tono patuiro i tuhia ki Java, Node.js, Python.

Ko te rerengamahi i roto i nga momo rerekee kua whakamaramatia i roto i te konae skaffold.yaml. Mo te kaupapa, ka taea hoki e koe te tautuhi i nga korero maha ka taea e koe te whakarereke i te waahanga me te whakarereke katoa i nga waahanga huihuinga me te whakatakotoranga. Hei tauira, mo te whakawhanaketanga, tohuhia he ahua ahua pai mo te kaiwhakawhanake, mo te whakaari me te hanga - he iti noa (+ whakamahi securityContext nga ipu, te tautuhi ano ranei i te tautau ka tukuna te tono).

Ka taea te hanga i nga ipu Docker ki te takiwa, ki tawhiti ranei: in Hanganga Kapua a Google ranei i roto i te tautau whakamahi Kaniko. Ka tautokohia ano a Bazel me Jib Maven/Gradle. Mo te tohu tohu, he maha nga rautaki e tautokohia ana e Skaffold: na te git commit hash, te ra/wa, sha256-tapeke o nga puna, aha atu.

Ma te wehe, he mea tika kia mohiohia te kaha ki te whakamatautau i nga ipu. Ko te anga-hanganga-whakamatautau kua whakahuahia ake nei e tuku ana i nga tikanga manatoko e whai ake nei:

  • Te whakahaere i nga whakahau i roto i te horopaki o te ipu me te aroturuki i nga mana puta me te tirotiro i te putanga kuputuhi o te tono.
  • Te tirotiro i te noho mai o nga konae kei roto i te ipu me te whakarite i nga huanga kua tohua.
  • Te whakahaere i nga ihirangi o nga konae ma te whakamahi i nga korero auau.
  • Manatokonga raraunga meta whakaahua (ENV, ENTRYPOINT, VOLUMES me nga mea pena).
  • Te tirotiro i te hototahitanga raihana.

Ko te tukutahi i nga konae me te ipu kaore i te tino pai te mahi: Ka hanga noa e Skaffold he puranga me nga puna, ka kape ka wetewete i roto i te ipu (me whakauru te taara). No reira, mena ko to mahi matua ko te tukutahi waehere, he pai ake te titiro ki tetahi otinga motuhake (ksync).

Utauta mo nga kaiwhakawhanake tono e rere ana i runga i te Kubernetes
Nga waahanga matua o te mahi Skaffold

I te nuinga o te waa, kaore e taea e te taputapu te tango mai i nga whakaaturanga Kubernetes me te kore he taunekeneke, na reira he uaua ki te mohio. Engari koinei hoki tana painga - he nui ake te mana whakahaere.

Garden

  • paetukutuku; GitHub.
  • Nga tatauranga poto mo te GH: 1063 nga whetu, 1927 ka mahi, 17 nga kaikoha.
  • Reo: TypeScript (kua whakamaheretia kia wehewehea te kaupapa ki etahi waahanga, ko etahi ka uru ki te Haere, ka hanga ano he SDK mo te hanga taapiri ki te TypeScript/JavaScript me te Haere).
  • Raihana: Raihana Apache 2.0.

Pērā i a Skaffold, ko te whai a Garden ki te whakaaunoa i nga tukanga o te tuku waehere tono ki te roopu K8s. Hei mahi i tenei, me whakaahua tuatahi koe i te hanganga kaupapa i roto i te konae YAML, katahi ka whakahaere i te whakahau garden dev. Ka mahia e ia nga mahi makutu katoa:

  • Kohia nga ipu me nga momo waahanga o te kaupapa.
  • Ka whakahaere i nga whakamatautau whakauru me nga waahanga, mena kua whakaahuahia etahi.
  • Ka huri i nga waahanga kaupapa katoa ki te kohinga.
  • Mena ka huri te waehere puna, ka timata ano te paipa katoa.

Ko te kaupapa matua o te whakamahi i tenei taputapu ko te tohatoha i tetahi roopu mamao me tetahi roopu whanaketanga. I tenei keehi, ki te mea kua oti etahi o nga waahanga o te whare me te whakamatautau, ka tere ake te mahi katoa, na te mea ka taea e te Maara te whakamahi i nga hua keteroki.

Ko te kōwae kaupapa he ipu, he ipu Maven, he tūtohi Helm, he whakaaturanga mo kubectl apply he mahi OpenFaaS ranei. I tua atu, ka taea te tango i tetahi o nga waahanga mai i te putunga Git mamao. Ka taea e te kōwae te tautuhi ratonga, mahi, me nga whakamatautau. Ka taea e nga ratonga me nga mahi te whakawhirinaki, ka taea e koe te whakatau i te raupapa tukunga o tetahi ratonga me te whakarite i te whakarewatanga o nga mahi me nga whakamatautau.

Ka whakawhiwhia e te kari ki te kaiwhakamahi he papatohu ataahua (kei roto i tenei wa ahua whakamatautau), e whakaatu ana i te kauwhata kaupapa: nga waahanga, te raupapa huihuinga, te mahi o nga mahi me nga whakamatautau, o raatau hononga me o raatau whakawhirinaki. I roto tonu i te kaitirotiro, ka taea e koe te tiro i nga raarangi o nga waahanga kaupapa katoa me te tirotiro he aha nga hua o tetahi waahanga ma te HTTP (mehemea, ka kiia he rauemi whakauru mo taua mea).

Utauta mo nga kaiwhakawhanake tono e rere ana i runga i te Kubernetes
Paewhiri mo te Maara

Ko tenei taputapu ano he aratau wera-hou, e tukutahi noa ana i nga huringa tuhinga me te ipu kei roto i te kohinga, he tere ake te mahi patuiro tono. He pai te kari te tuhi a ehara i te kino huinga tauira, ka taea e koe te waia tere me te timata ki te whakamahi. I te ara, no tata nei i whakaputahia e matou whakamaoritanga o te tuhinga mai i ona kaituhi.

mutunga

Ae ra, ko tenei rarangi taputapu mo te whakawhanake me te patuiro i nga tono i Kubernetes ehara i te mea iti ki. He maha atu nga taputapu whaihua me te whaihua e tika ana, mena ehara i te tuhinga motuhake, katahi ka whakahuahia. Korerotia mai he aha taau e whakamahi ana, he aha nga raru i pa ki a koe me te pehea i whakatauhia e koe!

PS

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero