Garden v0.10.0: Hindi kailangan ng iyong laptop ng Kubernetes

Tandaan. transl.: Kasama ang mga mahilig sa Kubernetes mula sa proyekto Hardin nagkita kami sa isang kamakailang kaganapan KubeCon Europe 2019, kung saan gumawa sila ng magandang impresyon sa amin. Ang materyal nilang ito, na isinulat sa isang kasalukuyang teknikal na paksa at may kapansin-pansing katatawanan, ay isang malinaw na kumpirmasyon nito, at samakatuwid ay nagpasya kaming isalin ito.

Pinag-uusapan niya ang pangunahing bagay (ng parehong pangalan) produkto kumpanya, na ang ideya ay i-automate ang mga workflow at pasimplehin ang pagbuo ng application sa Kubernetes. Para magawa ito, binibigyang-daan ka ng utility na madaling (literal na may isang command) mag-deploy ng mga bagong pagbabagong ginawa sa code sa dev cluster, at nagbibigay din ng mga shared resources/cache para mapabilis ang pagbuo at pagsubok ng code ng team. Dalawang linggo na ang nakalipas nag-host ang Garden release 0.10.0, kung saan naging posible na gumamit hindi lamang ng isang lokal na kumpol ng Kubernetes, kundi pati na rin ng isang malayo: ito ang kaganapan kung saan nakatuon ang artikulong ito.

Ang hindi ko gaanong paboritong gawin ay magtrabaho kasama ang Kubernetes sa aking laptop. Kinakain ng "helmsman" ang kanyang processor at baterya, nagiging sanhi ng pag-ikot ng mga cooler nang walang tigil, at mahirap i-maintain.

Garden v0.10.0: Hindi kailangan ng iyong laptop ng Kubernetes
Stock photography sa tema para sa karagdagang epekto

Minikube, mabait, k3s, Docker Desktop, microk8s, atbp. - mahusay na mga tool na nilikha upang gawin ang paggamit ng Kubernetes bilang maginhawa hangga't maaari, at salamat sa kanila para doon. Seryoso. Ngunit kahit paano mo ito tingnan, isang bagay ang malinaw: Ang Kubernetes ay hindi angkop para sa pagtakbo sa aking laptop. At ang laptop mismo ay hindi idinisenyo upang gumana sa isang kumpol ng mga lalagyan na nakakalat sa mga layer ng mga virtual machine. Ang kaawa-awang bagay ay sinusubukan ang kanyang makakaya, ngunit malinaw na hindi gusto ang aktibidad na ito, na nagpapakita ng kanyang kawalang-kasiyahan sa pag-ungol ng mga cooler at sinusubukang sunugin ang kanyang mga hita kapag walang ingat na pinaluhod ko siya.

Sabihin natin: laptop - laptop.

Hardin ay isang tool para sa mga developer na sumasakop sa parehong angkop na lugar gaya ng Skaffold at Draft. Pinapasimple at pinapabilis nito ang pagbuo at pagsubok ng mga aplikasyon ng Kubernetes.

Mula noong nagsimula kaming magtrabaho sa Garden, mga 18 buwan na ang nakalipas, alam namin iyon lokal Ang pagpapaunlad ng mga distributed system ay isang pansamantalang solusyon, kaya ang Garden ay binuo sa makabuluhang flexibility at isang matatag na pundasyon.

Handa na kaming suportahan ang parehong lokal at malalayong kapaligiran ng Kubernetes. Naging mas madali ang trabaho: ang pagpupulong, pag-deploy at pagsubok ay maaari na ngayong isagawa sa isang malayong kumpol.

Maikling pagsasalita:

Sa Garden v0.10, maaari mong ganap na makalimutan ang tungkol sa isang lokal na Kubernetes cluster at makakuha pa rin ng mabilis na pagtugon sa mga pagbabago sa code. Ang lahat ng ito ay libre at open source.

Garden v0.10.0: Hindi kailangan ng iyong laptop ng Kubernetes
Tangkilikin ang parehong karanasan sa mga lokal at malalayong kapaligiran

Nakuha ang iyong atensyon?

At natutuwa ako tungkol dito, dahil marami kaming mas kawili-wiling mga tampok! Ang pangkalahatang paggamit ng mga dev cluster ay may mas malawak na implikasyon, lalo na para sa mga collaborative na team at CI pipelines.

Pano kaya

Una sa lahat, ang intra-cluster collector - ito man ay karaniwang Docker daemon o Kaniko - pati na rin ang intra-cluster registry ay ibinabahagi para sa buong kumpol. Maaaring magbahagi ang iyong team ng dev cluster, na may mga build cache at mga larawang available sa lahat ng developer. Dahil nagtatag ang Garden ng mga larawan batay sa mga source na hash, ang mga tag at layer ay natatangi at pare-parehong tinutukoy.

Nangangahulugan ito na kapag ang isang developer ay lumikha ng isang imahe, ito ay nagiging magagamit sa buong koponan. Araw-araw, nagda-download kami ng parehong mga batayang larawan at gumagawa ng parehong mga build sa aming mga computer. Curious kung gaano karaming trapiko at kuryente ang nasasayang?..

Ang parehong ay maaaring masabi tungkol sa mga pagsubok: ang kanilang mga resulta ay magagamit sa buong cluster at lahat ng miyembro ng koponan. Kung sinubukan ng isa sa mga developer ang isang partikular na bersyon ng code, hindi na kailangang muling patakbuhin ang parehong pagsubok.

Sa madaling salita, ito ay hindi lamang isang bagay ng hindi pagpapatakbo ng minikube. Ang hakbang na ito ay nagbibigay daan para sa iyong koponan marami mga pagkakataon sa pag-optimize - wala nang hindi kinakailangang mga build at test run!

Paano naman si CI?

Karamihan sa atin ay sanay na sa katotohanan na ang CI at lokal na dev ay dalawang magkahiwalay na mundo na kailangang i-configure nang hiwalay (at hindi sila nagbabahagi ng cache). Ngayon ay maaari mong pagsamahin ang mga ito at alisin ang labis:

Maaari mong isagawa ang parehong mga utos sa CI at sa proseso ng pag-unlad, Π° Ρ‚Π°ΠΊΠΆΠ΅ gumamit ng isang kapaligiran, mga cache at mga resulta ng pagsubok.

Sa pangkalahatan, ang iyong CI ay nagiging isang developer bot na nagtatrabaho sa parehong kapaligiran tulad mo.

Garden v0.10.0: Hindi kailangan ng iyong laptop ng Kubernetes
Mga elemento ng system; walang putol na pag-unlad at pagsubok

Ang mga CI pipeline config ay maaaring gawing simple. Para magawa ito, patakbuhin lang ang Garden mula sa CI para sa mga build, pagsubok at deployment. Dahil ikaw at ang CI ay gumagamit ng parehong kapaligiran, mas maliit ang posibilidad na makatagpo ka ng mga problema sa CI.

Paghuhukay sa hindi mabilang na linya ng mga config at script, pagkatapos ay nagtutulak, naghihintay, umaasa at walang katapusang pag-uulit... Lahat ng ito ay nakaraan na. Gumagawa ka lang ng development. Walang mga hindi kinakailangang paggalaw.

At sa wakas ay linawin ang sitwasyon: kapag ikaw o ang isa pang miyembro ng koponan ay nagtayo o nagsubok ng isang bagay sa Garden, ang parehong bagay ang nangyari para sa CI. Kung wala kang binago mula noong tumakbo ang pagsubok, hindi mo na kailangang magpatakbo ng mga pagsubok (o kahit na bumuo) para sa CI. Ginagawa mismo ng hardin ang lahat at pagkatapos ay nagpapatuloy sa iba pang mga gawain tulad ng pag-aayos ng kapaligiran bago ang paglunsad, pagtulak ng mga artifact, atbp.

Nakatutukso. Paano subukan?

Maligayang pagdating sa aming GitHub repository! I-install ang Hardin at paglaruan ang mga halimbawa. Para sa mga gumagamit na ng Garden o gustong makilala ito ng mas mabuti, nag-aalok kami Remote Kubernetes Guide. Samahan mo kami sa channel #garden sa Kubernetes Slack, kung may mga tanong ka, problema o gusto mo lang makipag-chat. Palagi kaming handang tumulong at tanggapin ang feedback mula sa mga user.

PS mula sa tagasalin

Sa lalong madaling panahon, mag-publish din kami ng pagsusuri ng mga kapaki-pakinabang na utility para sa mga developer ng application na tumatakbo sa Kubernetes, na kinabibilangan ng iba pang mga kawili-wiling proyekto bilang karagdagan sa Hardin... Pansamantala, basahin din sa aming blog:

Pinagmulan: www.habr.com

Magdagdag ng komento