Meafaigaluega mo tagata atiaʻe o talosaga o loʻo faʻaogaina i Kubernetes

Meafaigaluega mo tagata atiaʻe o talosaga o loʻo faʻaogaina i Kubernetes

O se faiga fa'aonaponei i fa'agaioiga e fo'ia ai le tele o fa'afitauli faigata tau pisinisi. O koneteina ma le au faʻataʻitaʻiga e faʻafaigofie ai le fuaina o galuega faatino o soʻo se lavelave, faʻafaigofie le tuʻuina atu o lomiga fou, faʻamalosia atili, ae i le taimi lava e tasi latou te faia ai faʻafitauli faʻaopoopo mo tagata atiaʻe. O le tagata fai polokalame, muamua lava, e popole i lana tulafono: fausaga, tulaga lelei, faʻatinoga, faʻalelei - ae le o le auala e galue ai i Kubernetes ma pe faʻafefea ona faʻataʻitaʻi ma debug pe a uma ona faia ni suiga laiti. O le mea lea, o se mea masani foi o meafaigaluega mo Kubernetes o loʻo faʻatupuina malosi, fesoasoani e foia faʻafitauli e oʻo lava i le sili ona "faʻapitoa" atinaʻe ma faʻatagaina i latou e taulaʻi i le mea autu.

O lenei iloiloga o loʻo tuʻuina atu ai faʻamatalaga puʻupuʻu e uiga i nisi o mea faigaluega e faʻafaigofie ai le olaga mo se tagata fai polokalame o loʻo faʻaogaina lona code i le pod'ax o le Kubernetes cluster.

Fesoasoani faigofie

Kubectl-debug

  • O le ute: fa'aopoopo lau atigipusa i se Pod ma va'ai po'o le a le mea e tupu i totonu.
  • GitHub.
  • Fuainumera puupuu GH: 715 fetu, 54 tautinoga, 9 sao.
  • Gagana: Alu.
  • Laisene: Apache Laisene 2.0.

O lenei faʻapipiʻi mo kubectl e faʻatagaina oe e fatuina se atigipusa faaopoopo i totonu o le pusa o tului, lea o le a faʻasoa ai le igoa ole faʻagasologa ma isi koneteina. I totonu e mafai ona e debug le gaioiga o le pod: siaki le fesoʻotaʻiga, faʻalogo i fefaʻatauaiga o fesoʻotaʻiga, fai se faʻasologa o le faagasologa o le fiafia, ma isi.

E mafai fo'i ona e fesuia'i ile koneteina fa'agasologa ile tamo'e chroot /proc/PID/root - e mafai ona faigofie tele pe a manaʻomia le mauaina o se atigi aʻa i totonu o se atigipusa o loʻo tuʻuina i le faʻaaliga securityContext.runAs.

O le meafaigaluega e faigofie ma aoga, o lea e mafai ai ona aoga i tagata atiae uma. Sa matou tusia atili e uiga i ai i totonu ese mea.

fa'asalalauga tele

  • O le ute: fesiita'i le talosaga i lau komepiuta. Atiina ma debug i le lotoifale.
  • website; GitHub.
  • Fa'amaumauga pu'upu'u GH: 2131 fetu, 2712 ta'utino, 33 sao.
  • Gagana: Python.
  • Laisene: Apache Laisene 2.0.

O le manatu o lenei snap-in o le faʻalauiloaina lea o se atigipusa ma le talosaga i luga o le komipiuta faʻaoga i le lotoifale ma sui uma fefaʻatauaiga mai le fuifui i luga ma tua. O lenei auala e mafai ai ona e atiaʻe i le lotoifale e ala i le na o le faʻasaʻoina o faila i lau IDE e sili ona e fiafia i ai: o le a maua vave iʻuga.

O le lelei o le taʻavale i totonu o le lotoifale o le faʻaogaina o faʻataʻitaʻiga ma iʻuga vave, o le mafai ona faʻaogaina le talosaga i le auala masani. O le pito i lalo o le manaʻomia lea o le saoasaoa o fesoʻotaʻiga, lea e sili ona maitauina pe a e galue ma se talosaga ma RPS maualuga ma fefaʻatauaiga. E le gata i lea, Telepresence o loʻo i ai faʻafitauli i le tele o faʻamau i luga o Windows, lea e mafai ona avea ma faʻatapulaʻa faʻatapulaʻa mo tagata atiae masani i lenei OS.

Ua uma ona matou faʻasoa atu lo matou poto masani i le faʻaaogaina o Telepresence iinei.

Ksync

  • O le ute: toetoe lava fa'atasi vave o le code ma le atigipusa i le fuifui.
  • GitHub.
  • Fuainumera puupuu GH: 555 fetu, 362 tautinoga, 11 sao.
  • Gagana: Alu.
  • Laisene: Apache Laisene 2.0.

O le aoga e mafai ai e oe ona fa'amaopoopo mea o lo'o i totonu o se lisi fa'apitonu'u ma le fa'atonuga o se koneteina o lo'o ta'avale i totonu o le fuifui. O sea meafaigaluega e lelei atoatoa mo tagata atiaʻe i le tusiaina o gagana polokalame, o lona faʻafitauli autu o le tuʻuina atu o code i se koneteina tamoʻe. Ksync ua mamanuina e faʻamalolo ai lenei ulu tiga.

Pe a amataina tasi e le poloaiga ksync init ua faia se DaemonSet i le fuifui, lea e faʻaaogaina e mataʻituina ai le tulaga o le faila faila o le pusa filifilia. I luga o lana komepiuta faʻapitonuʻu, e faʻatautaia e le atinaʻe le faʻatonuga ksync watch, lea e mata'ituina fa'atonuga ma tamo'e fealofani, lea e tu'u sa'o ai faila ma le fuifui.

Pau lava le mea o loʻo totoe o le faʻatonu ksync mea e faʻafetaui ma le a. Mo se faʻataʻitaʻiga, o le poloaiga lenei:

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

...o le a faia ai se tagata matamata e igoa myprojectlea o le a su'e ai se pod ma se fa'ailoga app=backend ma taumafai e fa'amaopoopo le lisi fa'apitonu'u /home/user/myproject/ fa'atasi ai ma fa'amaumauga /var/www/myproject/ i le koneteina ua taua php.

Faʻafitauli ma faʻamatalaga ile ksync mai lo matou poto masani:

  • E tatau ona fa'aoga i nodes kulupu Kubernetes overlay2 e fai ma aveta'avale teu mo Docker. Ole aoga ole a le aoga ma isi.
  • A fa'aogaina Windows e fai ma tagata fa'atau OS, atonu e le sa'o lelei le faiga o faila faila. O lenei pusa na maitauina pe a galue i tusitatala tetele - ma le tele o faila faʻapipiʻi ma faʻamaumauga. Sa matou faia mataupu talafeagai i le syncthing project, ae leai se alualu i luma i ai (talu mai le amataga o Iulai).
  • Fa'aaoga faila .stignore e faʻamaonia ai ala poʻo faila faila e le manaʻomia ona faʻamaopoopoina (mo se faʻataʻitaʻiga, directories app/cache и .git).
  • Ona o le faaletonu, o le a toe amata e ksync le atigipusa pe a suia faila. Mo Node.js e faigofie lenei, ae mo PHP e matua le manaʻomia. E sili ona tape le opcache ae fa'aoga le fu'a --reload=false.
  • E mafai ona fa'asa'o i taimi uma le fa'atulagaga $HOME/.ksync/ksync.yaml.

maukeni

  • O le ute: debug faiga sa'o i totonu ole fuifui.
  • GitHub.
  • Fa'amaumauga pu'upu'u GH: 1154 fetu, 279 tautinoga, 23 sao.
  • Gagana: Alu.
  • Laisene: Apache Laisene 2.0.

O lenei meafaigaluega ua mamanuina mo le faʻaogaina o faiga saʻo i pods. O le aoga e faigofie ma fegalegaleai e mafai ai e oe ona filifili le debugger manaʻomia (silasila i lalo) ma namespace + pod, i le faagasologa e te manaʻomia e faʻalavelave ai. Lagolago i le taimi nei:

  • su'esu'e - mo talosaga Go;
  • GDB - e ala i le mamao mamao + faʻafeiloaʻi;
  • JDWP port forwarding mo le debugging Java talosaga.

I le itu IDE, o le lagolago e naʻo le VScode e maua (faʻaaogaina faʻaopoopoga), peitaʻi, o fuafuaga mo le tausaga nei (2019) e aofia ai Eclipse ma Intellij.

Ina ia debug faiga, Squash o loʻo faʻaogaina se pusa faʻapitoa i luga o nodes fuifui, o lea e tatau ai ona e faamasani muamua oe lava i gafatia. faiga saogalemu e aloese ai mai faafitauli saogalemu.

Fofo tu'ufa'atasi

Se'i o tatou aga'i atu i le fana mamafa - o le tele o galuega "tele-tele" ua fuafuaina e fa'afetaui vave ai le tele o mana'oga o tagata atia'e.

NB: I totonu o lenei lisi, ioe, o loʻo i ai se nofoaga mo la tatou Open Source aoga werf (sa taʻua muamua o le dapp). Ae ui i lea, ua uma ona matou tusia ma talanoa e uiga i ai e sili atu ma le tasi, ma o lea na filifili ai e aua neʻi aofia ai i le iloiloga. Mo i latou o loʻo manaʻo e masani atili i ona gafatia, matou te fautuaina le faitau / faʻalogo i le lipoti "werf o la matou meafaigaluega mo CI / CD i Kubernetes".

DevSpace

  • O le ute: mo i latou e fia amata galulue i Kubernetes, ae le manaʻo e suʻe loloto i totonu o lona togavao.
  • GitHub.
  • Fa'amaumauga pu'upu'u GH: 630 fetu, 1912 commit, 13 sao.
  • Gagana: Alu.
  • Laisene: Apache Laisene 2.0.

O se fofo mai le kamupani o le igoa lava e tasi, lea e maua ai fuifui pulea ma Kubernetes mo le atinaʻeina o au. O le aoga na faia mo fuifui pisinisi, ae aoga tele ma isi.

A fa'agaoioia le fa'atonuga devspace init i le lisi o galuega faatino o le a ofoina atu ia te oe (fesoasoani):

  • filifili se vaega galue Kubernetes,
  • fa'aoga iai Dockerfile (pe fa'atupu se mea fou) e fai ai se atigipusa e fa'atatau i ai,
  • filifili se faleteuoloa mo le teuina o ata o pusa, ma isi.

A maeʻa uma nei laasaga sauniuni, e mafai ona e amata atinaʻe e ala i le faʻatinoina o le poloaiga devspace dev. O le a fausia ai le atigipusa, tuʻuina atu i le fale teu oloa, taʻavale le faʻapipiʻiina i le fuifui ma amata le tuʻuina atu o le taulaga ma le faʻamaopoopoina o le pusa ma le lisi faʻapitonuʻu.

I le faitalia, o le a fa'aosofia oe e fa'anofo le fa'amau i le koneteina. E le tatau ona e teena, aua o le mea moni o le pusa e amata i le moe moe, ma mo le suʻega moni e manaʻomia le faʻalauiloaina ma le lima le talosaga.

Mulimuli ane, o le 'au devspace deploy taʻavale le talosaga ma mea faʻapipiʻi fesoʻotaʻi i le fuifui, a maeʻa ona amata lea ona faʻaogaina mea uma i le faiga o le taua.

O fa'atonuga uma o le poloketi o lo'o teuina i totonu o se faila devspace.yaml. I le faʻaopoopoga i le faʻatulagaina o le siosiomaga, e mafai foi ona e mauaina se faʻamatalaga o atinaʻe o loʻo i ai, e tutusa ma tulaga masani Kubernetes faʻaalia, naʻo le faʻafaigofie tele.

Meafaigaluega mo tagata atiaʻe o talosaga o loʻo faʻaogaina i Kubernetes
Faʻataʻitaʻiga ma laʻasaga autu o le galue ma DevSpace

E le gata i lea, e faigofie lava ona faʻaopoopo se vaega faʻatulagaina muamua (mo se faʻataʻitaʻiga, MySQL DBMS) poʻo se siata Helm i le poloketi. Faitau atili ile fa'amaumauga - e le faigata.

Fa'alava

  • website; GitHub.
  • Fa'amaumauga pu'upu'u GH: 7423 fetu, 4173 ta'utino, 136 sao.
  • Gagana: Alu.
  • Laisene: Apache Laisene 2.0.

O lenei faʻaoga mai Google fai mai e aofia uma ai manaʻoga o se tagata atiaʻe o lona code o le a faʻaogaina i luga o le Kubernetes cluster. Amata ona faʻaaogaina e le faigofie pei o le devspace: leai se fegalegaleai, suʻesuʻeina gagana ma le faʻaogaina otometi Dockerfile latou te le ofoina atu ia te oe iinei.

Ae peitaʻi, afai e le faʻafefe oe, o le mea lea e faʻatagaina oe e Skaffold e fai:

  • Su'e suiga ole fa'apogai.
  • Fa'atasi ma le atigi pusa pe a le mana'omia se fa'apotopotoga.
  • Aoina atigipusa ma fa'ailoga, pe a fa'amatalaina le gagana, po'o le tu'ufa'atasia o mea taulima ma teu i totonu o pusa.
  • O ata e maua mai e otometi lava ona siaki fa'aaoga su'ega-fauga-tulaga.
  • Fa'ailoga ma tu'u i luga ata i le Docker Registry.
  • Tu'u se talosaga i se fuifui e fa'aaoga ai le kubectl, Helm po'o le kustomize.
  • Fa'atino le fa'asalalauina o le taulaga.
  • Debug tusi talosaga tusia i Java, Node.js, Python.

Fa'asologa o galuega i fesuiaiga eseese o loʻo faʻamatalaina faʻaalia i le faila skaffold.yaml. Mo se poloketi, e mafai foʻi ona e faʻamalamalamaina le tele o faʻamatalaga e mafai ai ona e suia se vaega pe suia atoa le faʻapotopotoga ma le faʻatulagaina o laʻasaga. Mo se faʻataʻitaʻiga, mo le atinaʻe, faʻamaonia se ata faʻavae e talafeagai mo le atinaʻe, ma mo le faʻatulagaina ma le gaosiga - e laʻititi (+ faʻaoga securityContext atigipusa pe toe fa'avasega le fuifui lea o le a fa'apipi'iina ai le talosaga).

O koneteina Docker e mafai ona fausia i le lotoifale pe mamao: i Google Cloud Build pe i totonu o se fuifui faʻaaogaina Kaniko. E lagolagoina foi Bazel ma Jib Maven/Gradle. Mo le faʻailoga, e lagolagoina e Skaffold le tele o taʻiala: e ala i le git commit hash, aso / taimi, sha256-sum o punaoa, ma isi.

Tuʻueseese, e taua le matauina o le avanoa e suʻe ai pusa. O le fa'asologa o le container-structure-test framework ua ofoina atu auala fa'amaonia nei:

  • Fa'atinoina o fa'atonuga i totonu o se atigipusa fa'atasi ai ma le siakiina o tulaga e alu ese ai ma le siakiina o mea e maua mai i le fa'atonuga.
  • Siaki le iai o faila i totonu o le koneteina ma faʻafetaui uiga faʻamaonia.
  • Puleaina o mea o iai faila e fa'aaoga ai fa'amatalaga masani.
  • Fa'amaoniga metadata ata (ENV, ENTRYPOINT, VOLUMES ma faapena atu ai lava.).
  • Siaki le fetaui lelei o laisene.

O le tuʻufaʻatasia o faila ma le atigipusa e le o faia i se auala sili ona lelei: Skaffold naʻo le fatuina o se faʻamaumauga faʻatasi ma punaoa, kopi ma tatala i totonu o le koneteina (ta e tatau ona faʻapipiʻi). O le mea lea, afai o lau galuega autu o le code synchronization, e sili atu le vaʻai i se fofo faʻapitoa (ksync).

Meafaigaluega mo tagata atiaʻe o talosaga o loʻo faʻaogaina i Kubernetes
Laasaga autu ole fa'agaioiga Skaffold

I se tulaga lautele, o le meafaigaluega e le faʻatagaina oe e vaʻavaʻai mai Kubernetes faʻaalia ma e leai se fesoʻotaʻiga, atonu e foliga faigata ona faʻatautaia. Ae o lona lelei foi lea - sili atu le saolotoga e faatino ai.

Faatoaga

  • website; GitHub.
  • Fa'amaumauga pu'upu'u GH: 1063 fetu, 1927 ta'utino, 17 sao.
  • Gagana: TypeScript (ua fuafua e vaevae le poloketi i ni vaega, o nisi o le a i totonu o le Go, ma faia foi se SDK mo le fatuina o faʻaopoopoga i TypeScript/JavaScript ma Go).
  • Laisene: Apache Laisene 2.0.

E pei o Skaffold, Fa'ato'aga fa'amoemoe e fa'autometi le fa'agasologa o le tu'uina atu o fa'ailoga tusi talosaga ile fa'aputuga K8s. Ina ia faia lenei mea, e te manaʻomia muamua ona faʻamatalaina le fausaga o le poloketi i se faila YAML, ona faʻatautaia lea o le poloaiga garden dev. O le a ia faia uma togafiti:

  • Aoina pusa ma vaega eseese o le poloketi.
  • Fa'atino le tu'ufa'atasiga ma su'ega iunite, pe a iai sa fa'amatalaina.
  • Fa'asolo uma vaega ole poloketi ile fuifui.
  • Afai e suia le code source, o le a toe amata le paipa atoa.

O le taulaiga autu o le faʻaaogaina o lenei meafaigaluega o le faʻasoaina o se fuifui mamao ma se au atinaʻe. I lenei tulaga, afai o nisi o le fausiaina ma le suʻega laasaga ua uma ona faia, o le a matua faʻavavevaveina le faagasologa atoa, talu ai o le a mafai e le Faʻatoʻaga ona faʻaogaina iʻuga natia.

O se vaega o galuega faatino e mafai ona avea ma se atigipusa, se pusa Maven, se siata Helm, se fa'aaliga mo kubectl apply po'o se galuega OpenFaaS. E le gata i lea, o soʻo se modules e mafai ona tosoina mai se faleoloa Git mamao. E mafai e se module ona fa'amatalaina au'aunaga, galuega, ma su'ega. Au'aunaga ma galuega e mafai ona i ai fa'alagolago, fa'afetai e mafai ai ona e fuafuaina le fa'asologa o le fa'atulagaina o se auaunaga fa'apitoa ma fa'atulaga le fa'alauiloaina o galuega ma su'ega.

Fa'ato'aga e tu'uina atu i le tagata fa'aoga se laupapa fa'ailoga matagofie (i le taimi nei i totonu tulaga faataitai), o loʻo faʻaalia ai le kalafi o le poloketi: vaega, faʻasologa o faʻasalalauga, faʻatinoga o galuega ma suʻega, o latou fesoʻotaʻiga ma faʻalagolago. I totonu o le suʻesuʻega, e mafai ona e vaʻavaʻai i ogalaau o vaega uma o le poloketi ma siaki pe o le a le mea o loʻo faia e se vaega faʻapitoa e ala i le HTTP (pe a, ioe, o loʻo faʻaalia se punaoa ulufale).

Meafaigaluega mo tagata atiaʻe o talosaga o loʻo faʻaogaina i Kubernetes
Vaega mo Faatoaga

O lenei meafaigaluega o loʻo i ai foi se faiga vevela-reload, lea e na o le faʻamaopoopoina o suiga o tusitusiga ma le atigipusa i totonu o le fuifui, faʻavavevaveina le faagasologa o le debugging talosaga. E lelei le togalaau tusitusiga ae le leaga seti o faataitaiga, fa'atagaina oe e fa'aanauna vave ma amata fa'aaoga. I le ala, talu ai nei na matou lolomiina fa'aliliuga tala mai ona tusitala.

iʻuga

Ioe, o lenei lisi o meafaigaluega mo le atinaʻeina ma le faʻapipiʻiina o talosaga i Kubernetes e le gata i. E tele isi mea e sili ona aoga ma aoga e aoga, pe a le o se tala ese, ona taʻua lea. Ta'u mai mea e te fa'aogaina, o a fa'afitauli na e feagai ma pe fa'apefea ona e fo'ia!

SALA

Faitau foi i la matou blog:

puna: www.habr.com

Faaopoopo i ai se faamatalaga