Lisebelisoa bakeng sa baetsi ba lits'ebetso tse sebetsang ho Kubernetes

Lisebelisoa bakeng sa baetsi ba lits'ebetso tse sebetsang ho Kubernetes

Mokhoa oa sejoale-joale oa ts'ebetso o rarolla mathata a mangata a hatellang a khoebo. Li-container le li-orchestrator li etsa hore ho be bonolo ho lekanya merero ea ho rarahana leha e le efe, ho nolofatsa ho lokolloa ha liphetolelo tse ncha, ho etsa hore e be tse ka tšeptjoang haholoanyane, empa ka nako e ts'oanang li baka mathata a eketsehileng bakeng sa bahlahisi. Moetsi oa lenaneo, pele ho tsohle, o tsotella khoutu ea hae: meralo, boleng, ts'ebetso, bokhabane - eseng hore na e tla sebetsa joang Kubernetes le mokhoa oa ho e hlahloba le ho e lokisa ka mor'a ho etsa liphetoho tse nyane. Ka hona, ke ntho ea tlhaho hore lisebelisoa tsa Kubernetes li ntse li ntlafatsoa ka mafolofolo, li thusa ho rarolla mathata a bahlahisi ba "archaic" le ho ba lumella ho tsepamisa maikutlo ho ntho ea mantlha.

Tlhahlobo ena e fana ka tlhaiso-leseling e khutšoane mabapi le lisebelisoa tse ling tse nolofatsang bophelo ho moqapi oa lenaneo leo khoutu ea hae e tsamaeang ka har'a pod'ax ea sehlopha sa Kubernetes.

Bathusi ba bonolo

Ho bectl-debug

  • Bohlokoa: Kenya setshelo sa hau ho Pod 'me u bone se etsahalang ho eona.
  • GitHub.
  • Lipalopalo tse khutšoane tsa GH: linaleli tsa 715, boitlamo ba 54, bafani ba 9.
  • Puo: Tsamaea.
  • License: Apache License 2.0.

Plugin ena ea kubectl e u lumella ho theha setshelo se eketsehileng ka har'a pod ea thahasello, e tla arolelana sebaka sa lebitso la ts'ebetso le lijana tse ling. Ho eona o ka lokisa ts'ebetso ea pod: hlahloba marang-rang, mamela sephethephethe sa marang-rang, etsa letoto la ts'ebetso ea thahasello, joalo-joalo.

U ka boela ua fetohela ho setshelo sa ts'ebetso ka ho matha chroot /proc/PID/root - sena se ka ba bonolo haholo ha o hloka ho fumana khetla ea motso ka har'a sets'oants'o seo e se behileng ho manifest securityContext.runAs.

Sesebelisoa se bonolo ebile se sebetsa, kahoo se ka ba molemo ho mohlahlami e mong le e mong. Re ngotse ho eketsehileng ka eona ho sehlooho se arohaneng.

telepresence

  • Bohlokoa: fetisetsa tshebediso khomphuteng ya hao. Ntlafatsa le ho lokisa bothata sebakeng sa heno.
  • websaeteng; GitHub.
  • Lipalopalo tse khutšoane tsa GH: linaleli tsa 2131, boitlamo ba 2712, bafani ba 33.
  • Puo: Python.
  • License: Apache License 2.0.

Mohopolo oa snap-in ena ke ho qala setshelo se nang le ts'ebeliso komporong ea mosebelisi ea lehae le ho emela sephethephethe sohle ho tloha sehlopheng ho ea ho sona le morao. Mokhoa ona o u lumella ho nts'etsapele sebakeng sa heno ka ho hlophisa lifaele ho IDE eo u e ratang haholo: liphetho li tla fumaneha hanghang.

Melemo ea ho sebetsa sebakeng sa heno ke boiketlo ba liphetoho le liphetho tsa hang-hang, bokhoni ba ho lokisa ts'ebeliso ka mokhoa o tloaelehileng. Taba e nyahamisang ke hore e batla lebelo la khokahano, le hlokomelehang haholo ha o tlameha ho sebetsa le kopo e nang le RPS e phahameng haholo le sephethephethe. Ntle le moo, Telepresence e na le mathata a ho phahamisa molumo ho Windows, e ka bang moeli oa makhaola-khang ho baetsi ba tloaetseng OS ena.

Re se re arolelane boiphihlelo ba rona ba ho sebelisa Telepresence mona.

Ksync

  • Bohlokoa: e batla e amahanngoa hang hang ha khoutu le setshelo se sehlopheng.
  • GitHub.
  • Lipalopalo tse khutšoane tsa GH: linaleli tsa 555, boitlamo ba 362, bafani ba 11.
  • Puo: Tsamaea.
  • License: Apache License 2.0.

Ts'ebeliso e u lumella ho amahanya litaba tsa bukana ea lehae le bukana ea sets'oants'o se sebetsang sehlopheng. Sesebelisoa se joalo se nepahetse bakeng sa bahlahisi ba lipuo tsa scripting programming, bao bothata ba bona bo ka sehloohong e leng ho fana ka khoutu ho setshelo se sebetsang. Ksync e etselitsoe ho imolla hlooho ena.

Ha e qalisoa hang ka taelo ksync init DaemonSet e entsoe ka har'a sehlopha, se sebelisetsoang ho lekola boemo ba sistimi ea faele ea setshelo se khethiloeng. K'homphieutheng ea hae ea lehae, moqapi o tsamaisa taelo ksync watch, e hlokomelang litlhophiso le ho sebetsa ho lumellana, e hokahanyang lifaele ka kotloloho le sehlopha.

Ho setseng ke ho laela ksync hore na e lumellana le eng. Ka mohlala, taelo ena:

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

... e tla theha molebeli ea bitsoang myprojecte tla batlana le letlapa le nang le leibole app=backend 'me u leke ho hokahanya bukana ea lehae /home/user/myproject/ e nang le lethathamo /var/www/myproject/ setshelong se bitsitsweng php.

Mathata le lintlha tse mabapi le ksync ho tsoa ho boiphihlelo ba rona:

  • E tlameha ho sebelisoa ho li-cluster node tsa Kubernetes overlay2 joalo ka mokhanni oa polokelo bakeng sa Docker. Sesebelisoa se ke ke sa sebetsa le tse ling.
  • Ha o sebelisa Windows joalo ka OS ea bareki, sebali sa sistimi ea faele se kanna sa se sebetse hantle. Phoso ena e ile ea hlokomeloa ha e sebetsa le li-directory tse kholo - ka palo e kholo ea lifaele le li-directory. Re bopile taba e amehang morerong oa syncthing, empa ha ho na tsoelo-pele ho eona (ho tloha qalong ea Phupu).
  • Sebelisa faele .stignore ho hlakisa litsela kapa lipaterone tsa faele tse sa hlokeng ho amahanngoa (mohlala, li-directory app/cache и .git).
  • Ka tsela e iketsang, ksync e tla qala setshelo bocha neng kapa neng ha lifaele li fetoha. Bakeng sa Node.js sena se bonolo, empa bakeng sa PHP ha se hlokahale ho hang. Ho molemo ho tima opcache le ho sebelisa folakha --reload=false.
  • Tlhophiso e ka lula e lokisoa ho $HOME/.ksync/ksync.yaml.

Sekoashe

  • Bohlokoa: debug process ka kotloloho sehlopheng.
  • GitHub.
  • Lipalopalo tse khutšoane tsa GH: linaleli tsa 1154, boitlamo ba 279, bafani ba 23.
  • Puo: Tsamaea.
  • License: Apache License 2.0.

Sesebelisoa sena se etselitsoe ho lokisa lits'ebetso ka kotloloho ho li-pods. Sesebelisoa se bonolo ebile se u lumella ho khetha debugger eo u e batlang (sheba ka tlase) le namespace + pod, ts'ebetsong eo u hlokang ho kenella. E tšehetsoa hajoale:

  • delve - bakeng sa likopo tsa Go;
  • GDB - ka sepheo sa hole + ho fetisa koung;
  • Phetiso ea boema-kepe ea JDWP bakeng sa ho lokisa lits'ebetso tsa Java.

Ka lehlakoreng la IDE, tšehetso e fumaneha feela ho VScode (ho sebelisa katoloso), leha ho le joalo, merero ea selemo sa hona joale (2019) e kenyelletsa Eclipse le Intellij.

Ho lokisa lits'ebetso, Squash e tsamaisa setshelo se lehlohonolo ho li-node tsa sehlopha, kahoo o tlameha ho qala ho itloaetsa bokhoni. mokhoa o bolokehileng ho qoba mathata a tshireletso.

Litharollo tse felletseng

Ha re feteleng ho lithunya tse boima - merero e mengata e "khōlō" e etselitsoeng ho fihlela litlhoko tse ngata tsa batho ba ntlafatsang hanghang.

NB: Lethathamong lena, ehlile, ho na le sebaka sa ts'ebeliso ea rona ea Open Source werf (eo pele e neng e tsejoa e le dapp). Leha ho le joalo, re se re ngotse le ho bua ka eona ka makhetlo a fetang a le mong, kahoo re entse qeto ea ho se kenyelle tlhahlobo. Bakeng sa ba lakatsang ho tloaelana le bokhoni ba eona, re khothaletsa ho bala / ho mamela tlaleho "werf ke sesebelisoa sa rona sa CI / CD ho Kubernetes".

DevSpace

  • Bohlokoa: bakeng sa ba batlang ho qala ho sebetsa Kubernetes, empa ba sa batle ho teba ka har'a moru oa eona.
  • GitHub.
  • Lipalopalo tse khutšoane tsa GH: linaleli tsa 630, boitlamo ba 1912, bafani ba 13.
  • Puo: Tsamaea.
  • License: Apache License 2.0.

Tharollo e tsoang k'hamphaning ea lebitso le le leng, e fanang ka lihlopha tse laoloang le Kubernetes bakeng sa nts'etsopele ea sehlopha. Sesebelisoa se etselitsoe lihlopha tsa khoebo, empa se sebetsa hantle le tse ling.

Ha o tsamaisa taelo devspace init lethathamong la morero o tla fuoa (ka lipuisano):

  • khetha sehlopha se sebetsang sa Kubernetes,
  • sebelisa tse teng Dockerfile (kapa hlahisa e ncha) ho theha setshelo se thehiloeng ho eona,
  • khetha sebaka sa polokelo bakeng sa ho boloka litšoantšo tsa setshelo, joalo-joalo.

Kamora mehato ena eohle ea litokisetso, o ka qala nts'etsopele ka ho tsamaisa taelo devspace dev. E tla haha ​​​​sets'oants'o, e e kenye sebakeng sa polokelo, e ntše thomello ho sehlopha ebe e qala ho fetisa koung le ho hokahanya setshelo le bukana ea lehae.

Ka boikhethelo, o tla kopuoa ho suthisetsa terminal ho sets'oants'o. Ha ua lokela ho hana, hobane ha e le hantle setshelo se qala ka taelo ea boroko, 'me bakeng sa tlhahlobo ea sebele kopo e hloka ho qalisoa ka letsoho.

Qetellong, sehlopha devspace deploy e hlahisa kopo le lisebelisoa tse amanang le tsona ho sehlopha, ka mor'a moo ntho e 'ngoe le e' ngoe e qala ho sebetsa ka mokhoa oa ntoa.

Litlhophiso tsohle tsa projeke li bolokiloe faeleng devspace.yaml. Ntle le litlhophiso tsa tikoloho ea nts'etsopele, o ka fumana le tlhaloso ea lits'ebetso ho eona, e ts'oanang le lipontšo tse tloaelehileng tsa Kubernetes, tse nolofalitsoeng haholo feela.

Lisebelisoa bakeng sa baetsi ba lits'ebetso tse sebetsang ho Kubernetes
Mehaho le mekhahlelo ea mantlha ea ho sebetsa le DevSpace

Ho phaella moo, ho bonolo ho kenya karolo e boletsoeng esale pele (mohlala, MySQL DBMS) kapa chate ea Helm ho morero. Bala haholoanyane ho litokomane - ha e thata.

Skaffold

  • websaeteng; GitHub.
  • Lipalopalo tse khutšoane tsa GH: linaleli tsa 7423, boitlamo ba 4173, bafani ba 136.
  • Puo: Tsamaea.
  • License: Apache License 2.0.

Ts'ebeliso ena e tsoang ho Google e bolela hore e fana ka litlhoko tsohle tsa mohlahlami eo khoutu ea hae e tla sebetsa ho sehlopha sa Kubernetes. Ho qala ho e sebelisa ha ho bonolo joaloka devspace: ha ho na tšebelisano, ho lemoha puo le ho iketsetsa Dockerfile ba ke ke ba u fa eona mona.

Leha ho le joalo, haeba sena se sa u tšose, sena ke seo Skaffold e u lumellang ho se etsa:

  • Latela liphetoho tsa khoutu ea mohloli.
  • E amahanya le setshelo sa pod haeba e sa hloke kopano.
  • Bokella lijana tse nang le khoutu, haeba puo e tolokoa, kapa bokella lintho tsa khale ebe u li paka ka har'a linkho.
  • Litšoantšo tse hlahisoang li hlahlojoa ka bo eona ho sebelisoa teko-sebopeho-setshelo.
  • Ho kenya litšoantšo le ho kenya litšoantšo ho Registry ea Docker.
  • Kenya kopo ka har'a sehlopha u sebelisa kubectl, Helm kapa kustomize.
  • Etsa phetiso ea koung.
  • Lisebelisoa tsa ho lokisa liphoso tse ngotsoeng ka Java, Node.js, Python.

Phallo ea mosebetsi ka mefuta e fapaneng e hlalosoa ka mokhoa o hlakileng faeleng skaffold.yaml. Bakeng sa morero, o ka boela oa hlalosa li-profiles tse 'maloa tseo ho tsona u ka fetolang karolo kapa ka ho feletseng mekhahlelo ea kopano le ea ho tsamaisa. Mohlala, bakeng sa nts'etsopele, hlakisa setšoantšo sa mantlha se loketseng mohlahlami, le bakeng sa sethala le tlhahiso - e nyane (+ sebelisa securityContext lijana kapa ho hlalosa bocha sehlopha seo kopo e tla romelloa ho sona).

Lijana tsa Docker li ka hahoa sebakeng sa heno kapa hole: ka hare Google Cloud Build kapa sehlopheng se sebedisang Kaniko. Bazel le Jib Maven/Gradle le bona ba tšehelitsoe. Bakeng sa ho tšoaea, Skaffold e ts'ehetsa maano a mangata: ka git commit hash, letsatsi / nako, sha256-kakaretso ea mehloli, jj.

Ka thoko, ho bohlokoa ho ela hloko monyetla oa ho hlahloba lijana. Moralo o seng o boletsoe oa tlhahlobo ea sebopeho sa setshelo o fana ka mekhoa e latelang ea netefatso:

  • Ho etsa litaelo maemong a setshelo se nang le maemo a ho tsoa le ho lekola tlhahiso ea mongolo oa taelo.
  • Ho hlahloba boteng ba lifaele ka har'a setshelo le ho bapisa litšobotsi tse boletsoeng.
  • Taolo ea litaba tsa faele ka ho sebelisa lipolelo tse tloaelehileng.
  • Netefatso ea litšoantšo tsa metadata (ENV, ENTRYPOINT, VOLUMES joalo joalo.).
  • Ho hlahloba ho lumellana ha laesense.

Ho hokahanya lifaele le setshelo ha ho etsoe ka tsela e nepahetseng ka ho fetesisa: Skaffold e mpa e theha polokelo ea litaba e nang le mehloli, ea e kopitsa ebe e e bula ka sejaneng (tar e tlameha ho kenngoa). Ka hona, haeba mosebetsi oa hau oa mantlha e le khokahano ea khoutu, ho molemo ho sheba tharollo e ikhethileng (ksync).

Lisebelisoa bakeng sa baetsi ba lits'ebetso tse sebetsang ho Kubernetes
Mehato e ka sehloohong ea ts'ebetso ea Skaffold

Ka kakaretso, sesebelisoa ha se u lumelle ho iponahatsa ho Kubernetes mme ha se na tšebelisano, ka hona ho ka bonahala ho le thata ho e tseba. Empa sena hape ke molemo oa eona - tokoloho e kholo ea ketso.

Garden

  • websaeteng; GitHub.
  • Lipalopalo tse khutšoane tsa GH: linaleli tsa 1063, boitlamo ba 1927, bafani ba 17.
  • Puo: TypeScript (ho reriloe ho arola projeke ka likarolo tse 'maloa, tse ling tsa tsona li tla ba ho Go, hape le ho etsa SDK bakeng sa ho theha li-add-on ho TypeScript/JavaScript le Go).
  • License: Apache License 2.0.

Joalo ka Skaffold, Serapa se ikemiselitse ho iketsetsa lits'ebetso tsa ho fana ka khoutu ea kopo ho sehlopha sa K8s. Ho etsa sena, pele o hloka ho hlalosa sebopeho sa projeke faeleng ea YAML, ebe o tsamaisa taelo garden dev. O tla etsa boselamose bohle:

  • Bokella lijana tse nang le likarolo tse fapaneng tsa morero.
  • E etsa liteko tsa ho kopanya le tsa likarolo, haeba ho na le tse hlalositsoeng.
  • Arola likarolo tsohle tsa projeke ho sehlopha.
  • Haeba khoutu ea mohloli e fetoha, e tla qala hape phala eohle.

Sepheo se seholo sa ho sebelisa sesebelisoa sena ke ho arolelana sehlopha se hole le sehlopha sa nts'etsopele. Tabeng ena, haeba mehato e meng ea moaho le tlhahlobo e se e entsoe, sena se tla potlakisa ts'ebetso eohle haholo, kaha Serapa se tla khona ho sebelisa liphetho tse bolokiloeng.

Mojule oa morero e ka ba setshelo, setshelo sa Maven, chate ea Helm, pontšo ea kubectl apply kapa esita le mosebetsi oa OpenFaaS. Ho feta moo, leha e le efe ea li-module e ka huloa sebakeng se hole sa Git. Mojule o ka hlalosa kapa oa seke oa hlalosa lits'ebeletso, mesebetsi le liteko. Litšebeletso le mesebetsi li ka ba le lintho tse itšetlehileng ka tsona, kahoo u ka tseba tatellano ea ts'ebetso ea ts'ebeletso e itseng le ho hlophisa ho qalisoa ha mesebetsi le liteko.

Garden e fa mosebelisi dashboard e ntle (eo hajoale e leng teng boemo ba teko), e bonts'ang kerafo ea morero: likaroloana, tatellano ea kopano, ts'ebetso ea mesebetsi le liteko, likhokahano le litšepeho tsa bona. Hantle ka har'a sebatli, u ka sheba lits'oants'o tsa likarolo tsohle tsa projeke mme u hlahlobe hore na karolo e itseng e hlahisa eng ka HTTP (haeba, ehlile, ho phatlalatsoa mohloli oa ingress bakeng sa eona).

Lisebelisoa bakeng sa baetsi ba lits'ebetso tse sebetsang ho Kubernetes
Panel bakeng sa Serapa

Sesebelisoa sena se boetse se na le mokhoa oa ho kenya hape o chesang, o hokahanyang liphetoho tsa script le setshelo se ka har'a sehlopha, se potlakisa haholo ts'ebetso ea ts'ebetso ea ts'ebetso. Serapa se na le se setle litokomane mme eseng bobe sete ya mehlala, ho u lumella hore u potlakele ho e tloaela 'me u qale ho e sebelisa. Ka tsela, re sa tsoa phatlalatsa phetolelo ea sehlooho ho tsoa ho bangoli ba eona.

fihlela qeto e

Ehlile, lenane lena la lisebelisoa tsa ho nts'etsapele le ho lokisa lits'ebetso ho Kubernetes ha le felle feela ho. Ho na le lisebelisoa tse ling tse ngata tse molemo le tse sebetsang tse loketseng, haeba e se sengoloa se arohaneng, bonyane ho buuoa ka sona. Re bolelle hore na u sebelisa eng, u kopane le mathata afe le hore na u a rarolle joang!

PES

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso