Garden v0.10.0. Ձեր նոութբուքը Kubernetes-ի կարիք չունի
Նշում. թարգմ.Նախագծի Kubernetes-ի էնտուզիաստների հետ Պարտեզ մենք հանդիպեցինք վերջերս տեղի ունեցած միջոցառման ժամանակ KubeCon Europe 2019, որտեղ նրանք մեզ վրա հաճելի տպավորություն թողեցին։ Նրանց այս նյութը՝ գրված արդի տեխնիկական թեմայով և նկատելի հումորի զգացումով, դրա վառ հաստատումն է, և դրա համար մենք որոշեցինք թարգմանել։
Նա խոսում է գլխավորի մասին (նույն անունով) արտադրանք ընկերությունը, որի գաղափարն է ավտոմատացնել աշխատանքային հոսքերը և պարզեցնել հավելվածների մշակումը Kubernetes-ում: Դա անելու համար կոմունալը թույլ է տալիս հեշտությամբ (բառացիորեն մեկ հրամանով) տեղակայել կոդում կատարված նոր փոփոխությունները մշակողների կլաստերում, ինչպես նաև տրամադրում է ընդհանուր ռեսուրսներ/քեշեր՝ թիմի կողմից կոդի կառուցումն ու փորձարկումն արագացնելու համար: Երկու շաբաթ առաջ Այգին հյուրընկալեց թողարկում 0.10.0, որում հնարավոր եղավ օգտագործել ոչ միայն տեղական Kubernetes կլաստերը, այլև հեռավոր. սա այն իրադարձությունն է, որին նվիրված է այս հոդվածը։
Իմ ամենաքիչ սիրած բանը նոութբուքիս Kubernetes-ի հետ աշխատելն է: «Ղեկավարը» խժռում է իր պրոցեսորն ու մարտկոցը, ստիպում է հովացուցիչները անդադար պտտվել և դժվար է պահպանել:
Ավելացված էֆեկտի համար ֆոնդային լուսանկարչություն թեմայով
Minikube, kind, k3s, Docker Desktop, microk8s և այլն: - Գերազանց գործիքներ, որոնք ստեղծվել են Kubernetes-ի օգտագործումը հնարավորինս հարմար դարձնելու համար, և շնորհակալություն նրանց դրա համար: Լուրջ. Բայց ինչպես էլ նայեք դրան, մի բան պարզ է. Kubernetes-ը հարմար չէ իմ նոութբուքով աշխատելու համար։ Իսկ նոութբուքն ինքնին նախատեսված չէ աշխատելու վիրտուալ մեքենաների շերտերի վրա ցրված կոնտեյներների կլաստերի հետ: Խեղճը փորձում է ամեն ինչ, բայց ակնհայտորեն դուր չի գալիս այս գործունեությունը, ցույց տալով իր դժգոհությունը հովացուցիչների ոռնոցից և փորձելով այրել իր ազդրերը, երբ ես նրան անխոհեմորեն ծնկի եմ դնում:
Ասենք՝ նոութբուք - նոութբուք։
Պարտեզ գործիք է մշակողների համար, որը զբաղեցնում է նույն տեղը, ինչ Skaffold-ը և Draft-ը: Այն պարզեցնում և արագացնում է Kubernetes հավելվածների մշակումն ու փորձարկումը:
Այն պահից, երբ սկսեցինք աշխատել Garden-ի վրա՝ մոտ 18 ամիս առաջ, մենք գիտեինք դա տեղական Բաշխված համակարգերի զարգացումը ժամանակավոր լուծում է, ուստի Garden-ը կառուցվել է զգալի ճկունությամբ և ամուր հիմքով:
Այժմ մենք պատրաստ ենք աջակցել ինչպես տեղական, այնպես էլ հեռավոր Kubernetes միջավայրերին: Աշխատանքը շատ ավելի հեշտ է դարձել. հավաքումը, տեղակայումը և փորձարկումն այժմ կարող են իրականացվել հեռավոր կլաստերում:
Մի խոսքով,
Garden v0.10-ի միջոցով դուք կարող եք ամբողջությամբ մոռանալ տեղական Kubernetes կլաստերի մասին և դեռ արագ արձագանքել կոդերի փոփոխություններին: Այս ամենը անվճար է և բաց կոդով:
Վայելեք նույն փորձը տեղական և հեռավոր միջավայրերում
Ձեր ուշադրությունը գրավե՞լ է:
Եվ ես ուրախ եմ դրա համար, քանի որ մենք ունենք շատ ավելի հետաքրքիր առանձնահատկություններ: Ծրագրավորող կլաստերների ընդհանուր օգտագործումն ավելի լայն հետևանքներ ունի, հատկապես համագործակցային թիմերի և CI խողովակաշարերի համար:
Ինչու այդպես?
Նախևառաջ, ներկլաստերային կոլեկտորը, լինի դա ստանդարտ Docker daemon կամ Kaniko, ինչպես նաև ներկլաստերի ռեեստրը համօգտագործվում է: ամբողջ կլաստերի համար. Ձեր թիմը կարող է համօգտագործել մշակողների կլաստերը՝ կառուցման պահոցներով և պատկերներով, որոնք հասանելի են բոլոր մշակողների համար: Քանի որ Garden պիտակների պատկերները, որոնք հիմնված են աղբյուրի հեշերի վրա, պիտակները և շերտերը սահմանվում են եզակի և հետևողականորեն:
Սա նշանակում է, որ երբ մշակողը ստեղծում է պատկեր, այն դառնում է հասանելի է ամբողջ թիմին. Օրեցօր մենք ներբեռնում ենք նույն բազային պատկերները և մեր համակարգիչների վրա պատրաստում ենք նույն կառուցումները: Հետաքրքիր է, թե որքան երթևեկություն և էլեկտրաէներգիա է վատնվում:
Նույնը կարելի է ասել թեստերի մասին. դրանց արդյունքները հասանելի են ողջ կլաստերին և թիմի բոլոր անդամներին: Եթե մշակողներից մեկը փորձարկել է կոդի որոշակի տարբերակ, ապա կարիք չկա նորից գործարկել նույն թեստը։
Այսինքն՝ խոսքը միայն minikube-ի չաշխատելու մասին չէ։ Այս թռիչքը ճանապարհ է հարթում ձեր թիմի համար շատերը օպտիմիզացման հնարավորություններ. այլևս ոչ մի ավելորդ կառուցում և փորձարկում:
Ինչ վերաբերում է CI- ին:
Մեզանից շատերը սովոր են այն փաստին, որ CI-ն և տեղական dev-ը երկու առանձին աշխարհներ են, որոնք պետք է առանձին կազմաձևվեն (և նրանք չեն կիսում քեշը): Այժմ դուք կարող եք համատեղել դրանք և ազատվել ավելորդությունից.
Դուք կարող եք կատարել նույն հրամանները CI-ում և զարգացման գործընթացում, ինչպես նաեւ օգտագործել մեկ միջավայր, քեշեր և թեստի արդյունքներ:
Ըստ էության, ձեր CI-ն դառնում է ծրագրավորող բոտ, որն աշխատում է նույն միջավայրում, ինչ դուք:
Համակարգի տարրեր; անխափան մշակում և փորձարկում
CI խողովակաշարի կազմաձևերը կարող են զգալիորեն պարզեցվել: Դա անելու համար պարզապես գործարկեք Garden-ը CI-ից՝ կառուցումների, փորձարկումների և տեղակայման համար: Քանի որ դուք և CI-ն օգտագործում եք միևնույն միջավայրը, դուք շատ ավելի քիչ հավանական է, որ հանդիպեք CI խնդիրների:
Փորփրելով կոնֆիգուրսների և սցենարների անթիվ տողեր, հետո հրում, սպասում, հույս ու անվերջ կրկնություններ... Այս ամենն անցյալում է: Դուք պարզապես զարգացում եք անում: Ոչ մի ավելորդ շարժում:
Եվ իրավիճակը վերջնականապես պարզաբանելու համար. երբ դուք կամ թիմի մեկ այլ անդամ ինչ-որ բան կառուցեցիք կամ փորձարկեցիք Garden-ի հետ, նույնը տեղի ունեցավ CI-ի համար. Եթե փորձարկման գործարկումից հետո ոչինչ չեք փոխել, ապա ձեզ հարկավոր չէ թեստեր (կամ նույնիսկ կառուցումներ) գործարկել CI-ի համար: Garden-ն ինքն է անում ամեն ինչ, այնուհետև անցնում է այլ խնդիրների, ինչպիսիք են նախագործարկման միջավայրի կազմակերպումը, արտեֆակտների հրում և այլն:
Գայթակղիչ է հնչում: Ինչպե՞ս փորձել:
Բարի գալուստ մեր GitHub պահոցը! Տեղադրեք Garden-ը և խաղացեք օրինակներով: Նրանց համար, ովքեր արդեն օգտվում են Garden-ից կամ ցանկանում են ավելի լավ ճանաչել այն, առաջարկում ենք Հեռավոր Kubernetes ուղեցույց. Միացե՛ք մեզ ալիքում #garden Kubernetes Slack-ում, եթե ունեք հարցեր, խնդիրներ կամ պարզապես ցանկանում եք զրուցել: Մենք միշտ պատրաստ ենք օգնելու և ողջունելու օգտատերերի արձագանքները:
PS թարգմանչից
Շուտով մենք կհրապարակենք նաև Kubernetes-ում գործող հավելված մշակողների համար օգտակար կոմունալ ծրագրերի ակնարկ, որը բացի Garden-ից ներառում է այլ հետաքրքիր նախագծեր... Միևնույն ժամանակ կարդացեք նաև մեր բլոգում.