Kayan aiki don masu haɓaka aikace-aikacen da ke gudana akan Kubernetes

Kayan aiki don masu haɓaka aikace-aikacen da ke gudana akan Kubernetes

Hanyar zamani don gudanar da ayyuka tana magance matsalolin kasuwanci da yawa. Kwantena da makada suna sauƙaƙa don ƙaddamar da ayyukan kowane rikitarwa, sauƙaƙe sakin sabbin nau'ikan, sanya su mafi aminci, amma a lokaci guda suna haifar da ƙarin matsaloli ga masu haɓakawa. Mai shirye-shiryen, da farko, ya damu da lambarsa: gine-gine, inganci, aiki, ladabi - kuma ba yadda za a yi aiki a Kubernetes ba da kuma yadda za a gwada da kuma cire shi bayan yin ko da ƙananan canje-canje. Sabili da haka, yana da kyau sosai cewa kayan aikin Kubernetes suna haɓaka haɓakawa sosai, suna taimakawa wajen magance matsalolin har ma da mafi yawan masu haɓaka "archaic" da ba su damar mai da hankali kan babban abu.

Wannan bita yana ba da taƙaitaccen bayani game da wasu kayan aikin da ke sauƙaƙa rayuwa ga mai tsara shirye-shirye wanda lambar sa ke gudana a cikin pod’ax na kullin Kubernetes.

Masu taimako masu sauƙi

Kubectl-debug

  • Kasa mai zuwa: ƙara akwati a cikin Pod kuma duba abin da ke faruwa a ciki.
  • GitHub.
  • Takaitaccen kididdigar GH: taurari 715, 54 aikata, masu ba da gudummawa 9.
  • Harshe: Go.
  • Lasisi: Lasisin Apache 2.0.

Wannan plugin ɗin don kubectl yana ba ku damar ƙirƙirar ƙarin akwati a cikin kwas ɗin sha'awa, wanda zai raba sunan tsari tare da sauran kwantena. A ciki zaku iya gyara aikin kwas ɗin: duba hanyar sadarwa, sauraron zirga-zirgar hanyar sadarwa, yin tsarin aiwatar da sha'awa, da sauransu.

Hakanan zaka iya canzawa zuwa kwandon tsari ta gudana chroot /proc/PID/root - wannan na iya zama mai matukar dacewa lokacin da kake buƙatar samun tushen harsashi a cikin akwati wanda aka saita shi a cikin bayyanar securityContext.runAs.

Kayan aiki yana da sauƙi kuma mai tasiri, don haka yana iya zama da amfani ga kowane mai haɓakawa. Mun rubuta ƙarin game da shi a ciki dabam labarin.

Rashin waya

  • Kasa mai zuwa: canja wurin aikace-aikacen zuwa kwamfutarka. Haɓaka ku gyara kuskure a cikin gida.
  • website; GitHub.
  • Takaitaccen kididdigar GH: taurari 2131, 2712 aikatawa, masu ba da gudummawa 33.
  • Harshe: Python.
  • Lasisi: Lasisin Apache 2.0.

Manufar wannan karye-in shine ƙaddamar da akwati tare da aikace-aikacen akan kwamfutar mai amfani da gida da kuma wakilci duk zirga-zirga daga gungu zuwa gare ta da baya. Wannan tsarin yana ba ku damar haɓaka cikin gida ta hanyar gyara fayiloli kawai a cikin IDE da kuka fi so: sakamakon zai kasance nan take.

Abubuwan da ake amfani da su na gudana a cikin gida su ne sauƙi na gyare-gyare da sakamakon nan take, ikon yin kuskuren aikace-aikacen ta hanyar da aka saba. Ƙarƙashin ƙasa shine cewa yana buƙatar akan saurin haɗin gwiwa, wanda yake sananne musamman lokacin da dole ne kuyi aiki tare da aikace-aikacen tare da babban RPS da zirga-zirga. Bugu da ƙari, Telepresence yana da matsaloli tare da ƙarar ƙararrawa akan Windows, wanda zai iya zama ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙididdiga ga masu haɓakawa da suka saba da wannan OS.

Mun riga mun raba kwarewarmu ta amfani da Telepresence a nan.

Ksync

  • Kasa mai zuwa: kusan nan take aiki tare da lamba tare da kwantena a cikin tari.
  • GitHub.
  • Takaitaccen kididdigar GH: taurari 555, 362 aikata, masu ba da gudummawa 11.
  • Harshe: Go.
  • Lasisi: Lasisin Apache 2.0.

Mai amfani yana ba ka damar daidaita abubuwan da ke cikin kundin adireshi na gida tare da kundin adireshi na akwati da ke gudana a cikin tari. Irin wannan kayan aiki cikakke ne ga masu haɓakawa a cikin rubutattun harsunan shirye-shirye, waɗanda babban matsalarsu ita ce sadar da lamba zuwa akwati mai gudana. An tsara Ksync don kawar da wannan ciwon kai.

Lokacin farawa sau ɗaya ta hanyar umarni ksync init An ƙirƙiri DaemonSet a cikin gungu, wanda ake amfani da shi don saka idanu akan yanayin tsarin fayil ɗin akwati da aka zaɓa. A kan kwamfutarsa ​​ta gida, mai haɓaka yana gudanar da umarni ksync watch, wanda ke lura da daidaitawa da gudana yana aiki, wanda ke daidaita fayiloli kai tsaye tare da tari.

Abin da ya rage shi ne koyar da ksync abin da za a yi aiki tare da menene. Misali, wannan umarni:

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

...zai haifar da mai kallo mai suna myprojectwanda zai nemo kwafsa mai lakabin app=backend kuma gwada aiki tare da kundin adireshin gida /home/user/myproject/ tare da kasida /var/www/myproject/ a kwandon da ake kira php.

Matsaloli da bayanin kula akan ksync daga gogewar mu:

  • Dole ne a yi amfani da su akan nodes cluster Kubernetes overlay2 azaman direban ajiya don Docker. Mai amfani ba zai yi aiki tare da wasu ba.
  • Lokacin amfani da Windows azaman OS abokin ciniki, mai lura da tsarin fayil bazai aiki daidai ba. An lura da wannan kwaro lokacin aiki tare da manyan kundayen adireshi - tare da babban adadin fayiloli da kundayen adireshi. Mun halitta batun da ya dace a cikin aikin daidaitawa, amma babu wani ci gaba akan shi tukuna (tun farkon Yuli).
  • Yi amfani da fayil .stignore don tantance hanyoyi ko tsarin fayil waɗanda basa buƙatar aiki tare (misali, kundayen adireshi app/cache и .git).
  • Ta hanyar tsoho, ksync zai sake kunna akwati a duk lokacin da fayiloli suka canza. Don Node.js wannan ya dace, amma ga PHP ba lallai ba ne. Yana da kyau a kashe opcache da amfani da tuta --reload=false.
  • Ana iya gyara tsarin koyaushe a ciki $HOME/.ksync/ksync.yaml.

Squash

  • Kasa mai zuwa: aiwatar da gyara kuskure kai tsaye a cikin tari.
  • GitHub.
  • Takaitaccen kididdigar GH: taurari 1154, 279 aikatawa, masu ba da gudummawa 23.
  • Harshe: Go.
  • Lasisi: Lasisin Apache 2.0.

An tsara wannan kayan aiki don aiwatar da gyara kai tsaye a cikin kwasfa. Mai amfani yana da sauƙi kuma tare da haɗin gwiwa yana ba ku damar zaɓar mai gyara da ake so (duba ƙasa) da sunan sararin samaniya + kwafsa, a cikin aiwatar da abin da kuke buƙatar shiga tsakani. A halin yanzu ana tallafawa:

  • delve - don aikace-aikacen Go;
  • GDB - ta hanyar nesa mai nisa + isar da tashar jiragen ruwa;
  • Gabatar da tashar tashar JDWP don gyara aikace-aikacen Java.

A gefen IDE, tallafi yana samuwa ne kawai a cikin VScode (amfani da fadada), duk da haka, tsare-tsaren na wannan shekara (2019) sun haɗa da Eclipse da Intellij.

Don gyara ayyukan, Squash yana gudanar da akwati mai gata akan nodes ɗin tari, don haka dole ne ku fara sanin kanku da iyawar. yanayin lafiya don gujewa matsalolin tsaro.

Cikakken mafita

Bari mu matsa zuwa manyan bindigogi - ƙarin ayyukan "manyan" da aka tsara don biyan bukatun masu haɓakawa nan da nan.

NB: A cikin wannan jerin, ba shakka, akwai wuri don amfanin Buɗewar Tushen mu wuf (wanda aka fi sani da dapp). Duk da haka, mun riga mun rubuta kuma mun yi magana game da shi fiye da sau ɗaya, sabili da haka ya yanke shawarar kada mu haɗa shi a cikin bita. Ga waɗanda ke son sanin iyawar sa, muna ba da shawarar karantawa / sauraron rahoton "werf shine kayan aikin mu na CI / CD a cikin Kubernetes".

DevSpace

  • Kasa mai zuwa: ga waɗanda suke so su fara aiki a Kubernetes, amma ba sa so su zurfafa cikin daji.
  • GitHub.
  • Takaitaccen kididdigar GH: taurari 630, 1912 ya yi, masu ba da gudummawa 13.
  • Harshe: Go.
  • Lasisi: Lasisin Apache 2.0.

Magani daga kamfani mai suna iri ɗaya, wanda ke ba da gungu masu sarrafawa tare da Kubernetes don haɓaka ƙungiyar. An ƙirƙiri abin amfani don gungu na kasuwanci, amma yana aiki da kyau tare da kowa.

Lokacin gudanar da umarni devspace init a cikin kundin aikin za a ba ku (tare da juna):

  • zaɓi gungu na Kubernetes mai aiki,
  • amfani data kasance Dockerfile (ko samar da wata sabuwa) don ƙirƙirar akwati dangane da shi,
  • zaɓi wurin ajiya don adana hotunan akwati, da sauransu.

Bayan duk waɗannan matakan shirye-shiryen, zaku iya fara haɓakawa ta hanyar gudanar da umarni devspace dev. Za ta gina kwantena, ta loda shi zuwa ma'ajiyar, ta fitar da turawa zuwa gungu sannan ta fara tura tashar jiragen ruwa da aiki tare da akwati tare da kundin adireshin gida.

Da zaɓin, za a umarce ku don matsar da tashar zuwa akwati. Kada ku ƙi, saboda a gaskiya akwati yana farawa da umarnin barci, kuma don gwaji na ainihi yana buƙatar ƙaddamar da aikace-aikacen da hannu.

A ƙarshe, ƙungiyar devspace deploy mirgine fitar da aikace-aikacen da abubuwan haɗin gwiwa zuwa gungu, bayan haka komai ya fara aiki a yanayin yaƙi.

Ana adana duk tsarin aikin a cikin fayil devspace.yaml. Baya ga saitunan mahalli na ci gaba, zaku iya samun kwatancen abubuwan more rayuwa a cikinsa, kama da daidaitattun abubuwan Kubernetes, wanda aka sauƙaƙe kawai.

Kayan aiki don masu haɓaka aikace-aikacen da ke gudana akan Kubernetes
Gine-gine da manyan matakan aiki tare da DevSpace

Bugu da ƙari, yana da sauƙi don ƙara abin da aka riga aka ƙayyade (misali, MySQL DBMS) ko taswirar Helm zuwa aikin. Kara karantawa a ciki takardun - ba shi da wahala.

Skaffold

  • website; GitHub.
  • Takaitaccen kididdigar GH: taurari 7423, 4173 aikatawa, masu ba da gudummawa 136.
  • Harshe: Go.
  • Lasisi: Lasisin Apache 2.0.

Wannan mai amfani daga Google yayi ikirarin yana biyan duk buƙatun mai haɓakawa wanda lambar ta ko ta yaya zata gudana akan gungu na Kubernetes. Fara amfani da shi ba shi da sauƙi kamar devspace: babu hulɗa, gano harshe da ƙirƙirar atomatik Dockerfile ba za su ba ku shi a nan ba.

Koyaya, idan wannan bai tsorata ku ba, ga abin da Skaffold ke ba ku damar yi:

  • Bibiyar canje-canjen lambar tushe.
  • Haɗa shi tare da kwandon kwafsa idan baya buƙatar haɗuwa.
  • Tattara kwantena tare da lamba, idan an fassara yaren, ko tattara kayan tarihi da tattara su cikin kwantena.
  • Ana bincika hotunan da aka samo ta atomatik ta amfani da su kwantena-tsarin-gwajin.
  • Tagging da loda hotuna zuwa Docker Registry.
  • Sanya aikace-aikace a cikin tari ta amfani da kubectl, Helm ko kustomize.
  • Yi tura tashar jiragen ruwa.
  • Ana cire aikace-aikacen da aka rubuta a cikin Java, Node.js, Python.

Gudun aiki a cikin bambance-bambance daban-daban an bayyana shi dalla-dalla a cikin fayil ɗin skaffold.yaml. Don aiki, Hakanan zaka iya ayyana bayanan martaba da yawa waɗanda za ku iya canza wani bangare ko gaba ɗaya matakan taro da turawa. Misali, don haɓakawa, saka hoton tushe wanda ya dace da mai haɓakawa, kuma don tsarawa da samarwa - ƙaramin (+ amfani) securityContext kwantena ko sake fasalta tarin da za a tura aikace-aikacen).

Ana iya gina kwantenan docker a gida ko kuma a nesa: in Google Cloud Gina ko a cikin cluster amfani Kaniko. Hakanan ana tallafawa Bazel da Jib Maven/Gradle. Don sawa alama, Skaffold yana goyan bayan dabaru da yawa: ta git aikata zanta, kwanan wata/lokaci, sha256-jimlar tushe, da sauransu.

Na dabam, yana da daraja a lura da yiwuwar gwajin kwantena. Tsarin gwajin da aka riga aka ambata na ganga-tsarin gwajin yana ba da hanyoyin tabbatarwa masu zuwa:

  • Aiwatar da umarni a cikin mahallin akwati tare da bin diddigin matakan fita da duba fitowar rubutu na umarnin.
  • Duba kasancewar fayiloli a cikin akwati da daidaita halayen da aka ƙayyade.
  • Sarrafa abun ciki na fayil ta amfani da maganganu na yau da kullun.
  • Tabbatar da metadata hoto (ENV, ENTRYPOINT, VOLUMES da sauransu.).
  • Duba dacewa da lasisi.

Ba a aiwatar da aiki tare da fayiloli tare da kwantena ta hanya mafi kyau: Skaffold kawai yana ƙirƙirar rumbun adana bayanai tare da maɓuɓɓuka, kwafi shi kuma buɗe shi a cikin akwati (dole ne a shigar da tar). Don haka, idan babban aikin ku shine aiki tare na lamba, yana da kyau a duba zuwa ga wani bayani na musamman (ksync).

Kayan aiki don masu haɓaka aikace-aikacen da ke gudana akan Kubernetes
Babban matakan aikin Skaffold

Gabaɗaya, kayan aikin ba ya ƙyale ka ka ƙirƙiri bayanan Kubernetes kuma ba shi da wani ma'amala, don haka yana iya zama da wahala a iya sarrafa shi. Amma wannan kuma shine fa'idarsa - mafi girman 'yancin yin aiki.

Garden

  • website; GitHub.
  • Takaitaccen kididdigar GH: taurari 1063, 1927 ya yi, masu ba da gudummawa 17.
  • Harshe: TypeScript (an shirya raba aikin zuwa sassa da yawa, wasu daga cikinsu za su kasance a cikin Go, da kuma yin SDK don ƙirƙirar add-ons a cikin TypeScript/JavaScript da Go).
  • Lasisi: Lasisin Apache 2.0.

Kamar Skaffold, Lambun yana nufin sarrafa ayyukan isar da lambar aikace-aikacen zuwa gungu na K8s. Don yin wannan, da farko kuna buƙatar bayyana tsarin aikin a cikin fayil ɗin YAML, sannan ku gudanar da umarni garden dev. Za ta yi duk sihiri:

  • Tattara kwantena tare da sassa daban-daban na aikin.
  • Yana gudanar da gwaje-gwajen haɗin kai da naúrar, idan an kwatanta wasu.
  • Yana fitar da duk abubuwan haɗin aikin zuwa gungu.
  • Idan lambar tushe ta canza, za ta sake kunna dukkan bututun.

Babban abin da ake mayar da hankali kan amfani da wannan kayan aiki shine raba gungu mai nisa tare da ƙungiyar haɓakawa. A wannan yanayin, idan an riga an yi wasu matakan ginin da gwaji, wannan zai hanzarta aiwatar da aikin gabaɗaya, tunda Lambun zai iya amfani da sakamakon da aka adana.

Tsarin aikin na iya zama akwati, akwati na Maven, ginshiƙi na Helm, bayyanannen ga kubectl apply ko ma aikin OpenFaaS. Haka kuma, ana iya cire kowane ɗayan samfuran daga wurin ajiyar Git mai nisa. Module na iya ko a'a ayyana ayyuka, ayyuka, da gwaje-gwaje. Ayyuka da ayyuka na iya samun abin dogaro, don haka zaku iya ƙayyade jerin turawa na wani sabis ɗin kuma tsara ƙaddamar da ayyuka da gwaje-gwaje.

Lambun yana ba mai amfani kyakkyawan dashboard (a halin yanzu a cikin yanayin gwaji), wanda ke nuna jadawali na aikin: sassa, jerin taro, aiwatar da ayyuka da gwaje-gwaje, haɗin su da abubuwan dogaro. Dama a cikin mai binciken, zaku iya duba rajistan ayyukan duk abubuwan aikin kuma bincika abin da takamaiman sashi ke fitowa ta hanyar HTTP (idan, ba shakka, an ayyana hanyar shigar dashi).

Kayan aiki don masu haɓaka aikace-aikacen da ke gudana akan Kubernetes
Panel don Lambuna

Wannan kayan aiki kuma yana da yanayin sake lodin zafi, wanda kawai yana daidaita canje-canjen rubutun tare da kwantena a cikin tari, yana hanzarta aiwatar da aikin gyara kurakurai. Lambun yana da kyau takardun shaida kuma ba sharri ba saitin misalai, yana ba ku damar yin amfani da shi da sauri kuma ku fara amfani da shi. Af, kwanan nan mun buga fassarar labarin daga marubutansa.

ƙarshe

Tabbas, wannan jerin kayan aikin don haɓakawa da ƙaddamar da aikace-aikacen a cikin Kubernetes ba'a iyakance ga ba. Akwai abubuwa da yawa masu amfani da amfani waɗanda suka cancanta, idan ba labarin daban ba, to aƙalla ambaton. Faɗa mana abin da kuke amfani da shi, irin matsalolin da kuka fuskanta da kuma yadda kuka magance su!

PS

Karanta kuma a kan shafinmu:

source: www.habr.com

Add a comment