
Ụzọ ọgbara ọhụrụ iji rụọ ọrụ na-edozi ọtụtụ nsogbu azụmahịa dị egwu. Ngwongwo na ndị na-egwu egwu na-eme ka ọ dị mfe ịmepụta ọrụ nke mgbagwoju anya ọ bụla, mee ka ntọhapụ nke nsụgharị ọhụrụ dị mfe, na-eme ka ha bụrụ ndị a pụrụ ịdabere na ya, ma n'otu oge ahụ ha na-emepụta nsogbu ndị ọzọ maka ndị mmepe. Onye mmemme, nke mbụ, na-eche banyere koodu ya: ụkpụrụ ụlọ, àgwà, arụmọrụ, ịdị mma - ọ bụghị otú ọ ga-esi arụ ọrụ na Kubernetes na otu esi anwale na debug ya mgbe ọ na-eme ọbụna obere mgbanwe. Ya mere, ọ bụkwa ihe okike na a na-arụsi ọrụ ike ngwá ọrụ maka Kubernetes, na-enyere aka dozie nsogbu nke ọbụna ndị mmepe "archaic" kachasị ma na-enye ha ohere ilekwasị anya na isi ihe.
Nyochaa a na-enye ozi dị nkenke gbasara ụfọdụ ngwaọrụ na-eme ka ndụ dịrị mfe maka onye mmemme nke koodu ya na-agba na pod'ax nke ụyọkọ Kubernetes.
Ndị enyemaka dị mfe
Kubectl-debug
- Usoro nke ala: tinye akpa gị na pọd wee hụ ihe na-eme na ya.
- .
- Nchịkọta GH dị nkenke: kpakpando 715, 54 eme, ndị ntinye aka 9.
- Asụsụ: Gaa.
- Ikikere: Akwụkwọ ikike Apache 2.0.
Ngwa mgbakwunye a maka kubectl na-enye gị ohere ịmepụta akpa ọzọ n'ime pọd mmasị, nke ga-ekekọrịta usoro aha na arịa ndị ọzọ. N'ime ya ị nwere ike mebie ọrụ pod: lelee netwọkụ, gee ntị na okporo ụzọ netwọkụ, mee usoro nke mmasị, wdg.
Ị nwekwara ike ịgbanwe na akpa usoro site na-agba ọsọ chroot /proc/PID/root - nke a nwere ike ịdị mma nke ukwuu mgbe ịchọrọ ịnweta shei mgbọrọgwụ n'ime akpa nke edobere ya na ngosipụta securityContext.runAs.
Ngwá ọrụ dị mfe ma dị irè, ya mere ọ nwere ike ịba uru nye onye nrụpụta ọ bụla. Anyị dere ihe banyere ya n'ime .
Ekwentị
- Usoro nke ala: nyefee ngwa na kọmputa gị. Zụlite ma mebie na mpaghara.
- ; .
- Nchịkọta GH dị nkenke: kpakpando 2131, 2712 eme, ndị ntinye aka 33.
- Asụsụ: Python.
- Ikikere: Akwụkwọ ikike Apache 2.0.
Echiche nke ọnyà a bụ ibido akpa nwere ngwa na kọmputa onye ọrụ mpaghara wee megharịa okporo ụzọ niile site na ụyọkọ gaa na ya na azụ. Usoro a na-enye gị ohere imepe obodo site na ịdezi faịlụ na IDE ọkacha mmasị gị: nsonaazụ ya ga-adị ozugbo.
Плюсы локального запуска — удобство правок и моментальный результат, возможность отлаживать приложение привычным способом. Из минусов — требовательность к скорости соединения, что особенно заметно, когда приходится работать с приложением с достаточно высоким RPS и трафиком. Кроме того, у Telepresence есть проблемы с volume mounts в Windows, что может стать решающим ограничителем для разработчиков, привыкшим к этой ОС.
Anyị ekekọrịtala ahụmịhe anyị nke iji Telepresence .
Ksync
- Usoro nke ala: ihe fọrọ nke nta ka ọ bụrụ ozugbo ịmekọrịta koodu yana akpa dị na ụyọkọ ahụ.
- .
- Nchịkọta GH dị nkenke: kpakpando 555, 362 eme, ndị ntinye aka 11.
- Asụsụ: Gaa.
- Ikikere: Akwụkwọ ikike Apache 2.0.
Ngwa ahụ na-enye gị ohere ịmekọrịta ọdịnaya nke akwụkwọ ndekọ aha mpaghara yana ndekọ nke akpa na-agba na ụyọkọ ahụ. Ngwá ọrụ dị otú ahụ zuru oke maka ndị mmepe na-edepụta asụsụ mmemme, nke isi nsogbu ya bụ ịnye koodu na akpa na-agba ọsọ. Emebere Ksync iji belata isi ọwụwa a.
Mgbe ibido ya otu ugboro site na iwu ksync init A na-emepụta DaemonSet na ụyọkọ ahụ, nke a na-eji nyochaa ọnọdụ nke usoro faịlụ nke akpa ahọpụtara. Na kọmpụta mpaghara ya, onye nrụpụta na-eme iwu ahụ ksync watch, nke na-enyocha nhazi ma na-agba ọsọ , nke na-emekọrịta faịlụ na ụyọkọ.
Naanị ihe fọdụrụ bụ ịkụziri ksync ihe a ga-emekọrịta na ihe. Dịka ọmụmaatụ, iwu a:
ksync create --name=myproject --namespace=test --selector=app=backend --container=php --reload=false /home/user/myproject/ /var/www/myproject/ ... ga-emepụta onye nche aha ya myprojectnke ga-achọ pọd nwere akara app=backend ma nwaa imekọrịta ndekọ ndekọ aha mpaghara /home/user/myproject/ ya na katalọgụ /var/www/myproject/ na akpa a na-akpọ php.
Nsogbu na ndetu na ksync sitere na ahụmịhe anyị:
- Ekwesịrị iji ya na ọnụ ụyọkọ Kubernetes
overlay2dị ka onye ọkwọ ụgbọ ala nchekwa maka Docker. Ngwa ahụ agaghị arụ ọrụ na ndị ọzọ. - Mgbe ị na-eji Windows в качестве ОС клиента возможна некорректная работа watcher’а файловой системы. Данный баг замечен при работе с крупными каталогами — с большим количеством вложенных файлов и директорий. Мы создали na ọrụ mmekọrịta, ma ọ dịghị ọganihu na ya (ebe ọ bụ na mmalite nke July).
- Jiri faịlụ ịkọwapụta ụzọ ma ọ bụ usoro faịlụ na-achọghị ka emekọrịta ya (dịka ọmụmaatụ, akwụkwọ ndekọ aha
app/cacheи.git). - Site na ndabara, ksync ga-amalitegharị akpa ahụ mgbe ọ bụla faịlụ gbanwere. Maka Node.js nke a dabara adaba, mana maka PHP ọ dịghị mkpa kpamkpam. Ọ ka mma ịgbanyụ opcache wee jiri ọkọlọtọ
--reload=false. - Enwere ike idozi nhazi ahụ mgbe niile na
$HOME/.ksync/ksync.yaml.
Skwọsh
- Usoro nke ala: usoro nbipu ozugbo na ụyọkọ.
- .
- Nchịkọta GH dị nkenke: kpakpando 1154, 279 na-eme, ndị ntinye aka 23.
- Asụsụ: Gaa.
- Ikikere: Akwụkwọ ikike Apache 2.0.
Emebere ngwá ọrụ a maka nhazi nhazi ozugbo na pods. Ihe bara uru dị mfe ma na-emekọrịta ihe na-enye gị ohere ịhọrọ onye nbibi chọrọ (hụ okpuru) na aha oghere + pod, na usoro nke ị kwesịrị itinye aka. Akwado ugbu a:
- delve - maka ngwa ngwa Go;
- GDB - site n'ebe dịpụrụ adịpụ + ebuga ọdụ ụgbọ mmiri;
- Mbugharị ọdụ ụgbọ mmiri JDWP maka imezi ngwa Java.
N'akụkụ IDE, nkwado dị na VScode (iji ), Otú ọ dị, atụmatụ maka afọ dị ugbu a (2019) gụnyere Eclipse na Intellij.
Iji mebie usoro, Squash na-ebu akpa nwere ohere na ọnụ ụyọkọ, yabụ ị ga-ebu ụzọ mara onwe gị nke ọma na ikike ndị ahụ. iji zere nsogbu nchekwa.
Ngwọta agbakwunyere
Ka anyị gaa n'ihu n'ọgbọ ogbunigwe dị arọ - ọrụ "nnukwu" ndị ọzọ emebere iji gboo ọtụtụ mkpa nke ndị mmepe ozugbo.
NB: Na ndepụta a, n'ezie, e nwere ebe anyị Open Source ịba uru (nke a na-akpọbu dapp). Otú ọ dị, anyị edeworị ma kwuo banyere ya ihe karịrị otu ugboro, ya mere kpebie ịghara itinye ya na nyocha ahụ. Maka ndị chọrọ ịmatakwu ikike ya, anyị na-akwado ịgụ / gee akụkọ ahụ "".
DevSpace
- Usoro nke ala: maka ndị chọrọ ịmalite ịrụ ọrụ na Kubernetes, mana ha achọghị ịbanye n'ime ọhịa ya.
- .
- Nchịkọta GH dị mkpirikpi: kpakpando 630, 1912 eme, ndị ntinye aka 13.
- Asụsụ: Gaa.
- Ikikere: Akwụkwọ ikike Apache 2.0.
Ihe ngwọta sitere na ụlọ ọrụ nke otu aha ahụ, nke na-enye ụyọkọ jisiri ike na Kubernetes maka mmepe otu. Emepụtara ngwa ahụ maka ụyọkọ azụmahịa, mana ọ na-arụ ọrụ nke ọma na ndị ọzọ.
Mgbe ị na-agba ọsọ iwu devspace init na katalọgụ oru ngo a ga-enye gị (na-emekọrịta ihe):
- họrọ ụyọkọ Kubernetes na-arụ ọrụ,
- jiri dị adị
Dockerfile(ma ọ bụ mepụta nke ọhụrụ) iji mepụta akpa dabere na ya, - họrọ ebe nchekwa maka ịchekwa onyonyo akpa, wdg.
Mgbe usoro nkwado ndị a niile gasịrị, ị nwere ike ịmalite mmepe site na ịme iwu ahụ devspace dev. Ọ ga-ewu akpa ahụ, bulite ya na ebe a na-edebe ihe, bufee ntinye ya na ụyọkọ wee malite mbugharị ọdụ ụgbọ mmiri na mmekọrịta nke akpa na ndekọ ndekọ mpaghara.
Nhọrọ, a ga-akpali gị ịkwaga ọnụ na akpa ahụ. I kwesịghị ịjụ, n'ihi na n'eziokwu, akpa ahụ na-amalite site na iwu ụra, na maka nyocha n'ezie, ọ dị mkpa ka ejiri aka malite ngwa ahụ.
N'ikpeazụ, otu devspace deploy na-atụgharị ngwa na akụrụngwa metụtara ya na ụyọkọ, mgbe nke ahụ gasịrị, ihe niile na-amalite ịrụ ọrụ na ọnọdụ ọgụ.
A na-echekwa nhazi ọrụ niile na faịlụ devspace.yaml. Na mgbakwunye na ntọala gburugburu ebe mmepe, ị nwekwara ike ịhụ nkọwa nke akụrụngwa dị na ya, dị ka ọkọlọtọ Kubernetes gosipụtara, naanị dị mfe.

Nhazi na isi usoro nke ịrụ ọrụ na DevSpace
Na mgbakwunye, ọ dị mfe ịgbakwunye akụrụngwa eburu ụzọ kọwaa (dịka ọmụmaatụ, MySQL DBMS) ma ọ bụ eserese Helm na ọrụ ahụ. Gụkwuo n'ime - ọ bụghị mgbagwoju anya.
Skaffold
- ; .
- Nchịkọta GH dị nkenke: kpakpando 7423, 4173 na-eme, ndị ntinye aka 136.
- Asụsụ: Gaa.
- Ikikere: Akwụkwọ ikike Apache 2.0.
Ngwa a sitere na Google na-ekwu na ọ na-ekpuchi mkpa onye nrụpụta nke koodu ya ga-agba ọsọ na ụyọkọ Kubernetes. Ịmalite iji ya adịghị mfe dị ka devspace: enweghị mmekọrịta, nchọpụta asụsụ na ịmepụta onwe Dockerfile ha agaghị enye gị ya ebe a.
Agbanyeghị, ọ bụrụ na nke a anaghị atụ gị egwu, nke a bụ ihe Skaffold na-enye gị ohere ime:
- Sochie mgbanwe koodu isi mmalite.
- Mekọrịta ya na akpa pọd ma ọ bụrụ na ọ chọghị mgbakọ.
- Chịkọta arịa nwere koodu, ọ bụrụ na a na-atụgharị asụsụ ahụ, ma ọ bụ chịkọta ihe arịa ma kwaba ha n'ime akpa.
- A na-enyocha onyonyo nke arụpụta na-akpaghị aka .
- Ịkpado na ibugo onyonyo na ndekọ Docker.
- Were kubectl, Helm ma ọ bụ kustomize tinye ngwa n'ime ụyọkọ.
- Mee mbugharị ọdụ ụgbọ mmiri.
- Ngwa debug edere na Java, Node.js, Python.
A na-akọwapụta usoro ọrụ n'ụdị dị iche iche na faịlụ ahụ skaffold.yaml. Maka oru ngo, ị nwekwara ike kọwapụta ọtụtụ profaịlụ nke ị nwere ike ịgbanwe akụkụ ma ọ bụ kpamkpam n'usoro mgbakọ na ntinye. Dịka ọmụmaatụ, maka mmepe, kọwaa isi ihe oyiyi dị mma maka onye mmepụta, yana maka nhazi na mmepụta - nke pere mpe (+ iji. securityContext arịa ma ọ bụ degharịa ụyọkọ nke a ga-ebuga ngwa ahụ).
Enwere ike wuo arịa docker na mpaghara ma ọ bụ nke dịpụrụ adịpụ: n'ime ma ọ bụ na ụyọkọ na-eji . Bazel na Jib Maven/Gradle na-akwadokwa. Maka mkpado, Skaffold na-akwado ọtụtụ atụmatụ: site na git hash, ụbọchị/oge, sha256-nchikota isi mmalite, wdg.
Iche iche, ọ bara uru ịmara na enwere ike ịnwale arịa. Usoro nnwale akpa-nhazi-ụba nke akpọtụrụla na-enye ụzọ nkwenye ndị a:
- Na-eme iwu na ọnọdụ nke akpa nwere nsochi ụzọ ọpụpụ na ịlele mmepụta ederede nke iwu ahụ.
- Na-enyocha ọnụnọ nke faịlụ na akpa na dakọtara àgwà ndị akọwapụtara.
- Njikwa ọdịnaya faịlụ site na iji okwu oge niile.
- Nyochaa metadata onyonyo (
ENV,ENTRYPOINT,VOLUMESwere gabazie.). - Na-enyocha ndakọrịta akwụkwọ ikike.
A naghị emekọrịta faịlụ na akpa n'ụzọ kachasị mma: Skaffold na-emepụta ebe nchekwa na isi mmalite, depụta ya ma bupu ya na akpa (a ga-etinyerịrị tar). Ya mere, ọ bụrụ na isi ọrụ gị bụ mmekọrịta koodu, ọ ka mma ile anya na ngwọta pụrụ iche (ksync).

Isi nkebi nke ọrụ Skaffold
N'ozuzu, ngwá ọrụ ahụ anaghị ekwe ka ị nweta nkọwa nke Kubernetes na enweghị mmekọrịta ọ bụla, ya mere ọ nwere ike iyi ihe siri ike ịmụta. Mana nke a bụkwa uru ya - nnwere onwe ime ihe ka ukwuu.
Garden
- ; .
- Nchịkọta GH dị mkpirikpi: kpakpando 1063, 1927 na-eme, ndị ntinye aka 17.
- Asụsụ: TypeScript (a na-eme atụmatụ ikewa ọrụ ahụ n'ọtụtụ akụkụ, ụfọdụ n'ime ha ga-adị na Go, ma meekwa SDK maka ịmepụta add-ons na TypeScript/JavaScript na Go).
- Ikikere: Akwụkwọ ikike Apache 2.0.
Dịka Skaffold, Ogige na-achọ imezi usoro nke ibuga koodu ngwa na ụyọkọ K8s. Iji mee nke a, ị ga-ebu ụzọ kọwaa nhazi ọrụ na faịlụ YAML, wee mee iwu ahụ garden dev. Ọ ga-eme anwansi niile:
- Na-anakọta akpa nwere akụkụ dị iche iche nke ọrụ ahụ.
- Na-eme mwekota na ule otu, ma ọ bụrụ na akọwara.
- Na-ebupụ akụkụ ọrụ niile na ụyọkọ ahụ.
- Ọ bụrụ na koodu isi mmalite gbanwere, ọ ga-amalitegharị pipeline dum.
Isi ihe a na-elekwasị anya n'iji ngwá ọrụ a bụ ịkekọrịta ụyọkọ dịpụrụ adịpụ na otu mmepe. N'okwu a, ọ bụrụ na emelarị ụfọdụ n'ime usoro ụlọ na ule, nke a ga-eme ka usoro ahụ dịkwuo ngwa ngwa, ebe ọ bụ na ubi ga-enwe ike iji nsonaazụ echekwabara.
Modul oru ngo nwere ike ịbụ akpa, akpa Maven, eserese Helm, ihe ngosi maka kubectl apply ma ọ bụ ọbụna ọrụ OpenFaaS. Ọzọkwa, enwere ike ịdọrọ modul ọ bụla site na ebe nchekwa Git dịpụrụ adịpụ. Otu modul nwere ike ma ọ bụ ọ gaghị akọwapụta ọrụ, ọrụ na ule. Ọrụ na ọrụ nwere ike ịdabere na ya, yabụ ị nwere ike ikpebi usoro ntinye nke otu ọrụ ma hazie mmalite nke ọrụ na ule.
Ogige na-enye onye ọrụ ọmarịcha dashboard (ugbu a ), nke na-egosiputa eserese ọrụ: components, usoro mgbakọ, mmezu nke ọrụ na ule, njikọ ha na ndabere. N'ime ihe nchọgharị ahụ, ị nwere ike ịlele ndekọ nke akụrụngwa ọrụ niile wee lelee ihe otu akụrụngwa na-esi na HTTP pụta (ọ bụrụ n'ezie, ekwuputara akụrụngwa ingress maka ya).

Ogwe maka ubi
Ngwá ọrụ a nwekwara ọnọdụ ibugharị ọkụ, nke na-emekọrịta mgbanwe ederede na akpa dị na ụyọkọ ahụ, na-eme ka usoro nbipu ngwa ngwa ngwa ngwa. Ubi nwere nke ọma na ọ bụghị ihe ọjọọ , na-enye gị ohere ịme ngwa ngwa ma malite iji ya. N'agbanyeghị, dị nnọọ nso nso anyị bipụtara site n'aka ndị dere ya.
nkwubi
N'ezie, ndepụta a nke ngwaọrụ maka ịmepụta na debugging ngwa na Kubernetes abụghị nanị. Enwere ọtụtụ ihe bara uru na nke bara uru nke kwesịrị ekwesị, ma ọ bụrụ na ọ bụghị isiokwu dị iche, mgbe ahụ ọ dịkarịa ala ịkọ. Gwa anyị ihe ị na-eji, nsogbu ndị ị zutere na otu i siri dozie ha!
PS
Gụọkwa na blọọgụ anyị:
- «»;
- «»;
- «»;
- «".
isi: www.habr.com
