ProHoster > Blog > Rianachd > Molaidhean is cleasan Kubernetes: mu leasachadh ionadail agus Telepresence
Molaidhean is cleasan Kubernetes: mu leasachadh ionadail agus Telepresence
Thathas a’ faighneachd dhuinn barrachd is barrachd mu bhith a’ leasachadh meanbh-sheirbheisean ann an Kubernetes. Tha luchd-leasachaidh, gu sònraichte de chànanan eadar-mhìneachaidh, airson còd a cheartachadh gu sgiobalta anns an IDE as fheàrr leotha agus an toradh fhaicinn gun a bhith a’ feitheamh ri togail / cleachdadh - le bhith dìreach a’ putadh F5. Agus nuair a thàinig e gu tagradh monolithic, bha e gu leòr airson stòr-dàta agus frithealaiche lìn a chuir a-steach gu h-ionadail (ann an Docker, VirtualBox ...), agus an uairsin tlachd fhaighinn às an leasachadh sa bhad. Le gearradh monoliths gu meanbh-sheirbheisean agus teachd Kubernetes, le coltas eisimeileachd air a chèile, a h-uile dad dh'fhàs e beagan na bu duilghe. Mar as motha de na microservices sin, is ann as motha de dhuilgheadasan. Gus leasachadh a mhealtainn a-rithist, feumaidh tu barrachd air aon no dhà de shoithichean Docker a thogail, agus uaireannan eadhon barrachd air dusan ... San fharsaingeachd, faodaidh seo tòrr ùine a thoirt, oir feumar a chumail suas cuideachd. .
Aig diofar amannan dh’ fheuch sinn diofar fhuasglaidhean air an duilgheadas. Agus tòisichidh mi leis na h-obraichean cruinnichte no dìreach “crutches”.
1. Crutches
Tha comas aig a’ mhòr-chuid de IDEan còd a dheasachadh gu dìreach air an fhrithealaiche a’ cleachdadh FTP/SFTP. Tha an t-slighe seo gu math follaiseach agus chuir sinn romhainn sa bhad a chleachdadh. Tha a bhunait an urra ris na leanas:
Ann am pod na h-àrainneachdan leasachaidh (dev/lèirmheas), thèid soitheach a bharrachd a chuir air bhog le ruigsinneachd SSH agus a’ cur air adhart iuchair SSH poblach an leasaiche a bhios a’ gealltainn / a’ cleachdadh an tagraidh.
Aig an ìre tòiseachaidh (taobh a-staigh an t-soithich prepare-app) gluais an còd gu emptyDirgus faighinn chun chòd bho na soithichean tagraidh agus an t-seirbheisiche SSH.
Gus tuigse nas fheàrr fhaighinn air buileachadh teignigeach a leithid de sgeama, bheir mi seachad pìosan de na rèiteachaidhean YAML a tha an sàs ann an Kubernetes.
Rèiteachadh
1.1. luachan.yaml
ssh_pub_key:
vasya.pupkin: <ssh public key in base64>
tha e vasya.pupkin is e luach an caochlaideach ${GITLAB_USER_LOGIN}.
Voila: faodaidh an leasaiche a chuir an cleachdadh air bhog ceangal a dhèanamh le ainm seirbheis (mar a bheir e cothrom tèarainte don bhuidheann, dh'innis sinn cheana) bhon deasg agad tro SFTP agus deasaich an còd gun a bhith a’ feitheamh gus an tèid a lìbhrigeadh don bhuidheann.
Is e fuasgladh gu tur ag obair a tha seo, ach bho shealladh buileachaidh tha eas-bhuannachdan follaiseach ann:
an fheum air clàr Helm ùrachadh, a tha ga dhèanamh duilich a leughadh san àm ri teachd;
chan urrainnear a chleachdadh ach leis an neach a chuir an t-seirbheis gu feum;
feumaidh tu cuimhneachadh an uairsin a shioncronachadh leis an eòlaire ionadail leis a’ chòd agus a ghealltainn gu Git.
2. Tele-làthaireachd
Am pròiseact Teile-liochd air a bhith ainmeil airson ùine mhòr, ach cha d’ fhuair sinn, mar a chanas iad, “timcheall air feuchainn air ann an cleachdadh.” Ach, tha iarrtas air a h-obair a dhèanamh agus a-nis tha sinn toilichte ar n-eòlas a cho-roinn, a dh’ fhaodadh a bhith feumail do luchd-leughaidh ar blog - gu sònraichte leis nach eil stuthan sam bith eile air a bhith ann mu Telepresence air a ’mheadhan fhathast.
Ann an ùine ghoirid, cha robh a h-uile dad cho eagallach. Chuir sinn a h-uile gnìomh a dh’ fheumas a chuir gu bàs bhon leasaiche ann am faidhle teacsa cairt Helm ris an canar NOTES.txt. Mar sin, às deidh dha an t-seirbheis a chuir gu Kubernetes, chì an leasaiche stiùireadh airson an àrainneachd leasachaidh ionadail a chuir air bhog ann an log obrach GitLab:
!!! Разработка сервиса локально, в составе Kubernetes !!!
* Настройка окружения
* * Должен быть доступ до кластера через VPN
* * На локальном ПК установлен kubectl ( https://kubernetes.io/docs/tasks/tools/install-kubectl/ )
* * Получить config-файл для kubectl (скопировать в ~/.kube/config)
* * На локальном ПК установлен telepresence ( https://www.telepresence.io/reference/install )
* * Должен быть установлен Docker
* * Необходим доступ уровня reporter или выше к репозиторию https://gitlab.site.com/group/app
* * Необходимо залогинится в registry с логином/паролем от GitLab (делается один раз):
#########################################################################
docker login registry.site.com
#########################################################################
* Запуск окружения
#########################################################################
telepresence --namespace {{ .Values.global.env }} --swap-deployment {{ .Chart.Name }}:backend --mount=/tmp/app --docker-run -v `pwd`:/app -v /tmp/app/var/run/secrets:/var/run/secrets -ti registry.site.com/group/app/backend:v8
#########################################################################
Cha bhith sinn a’ gabhail còmhnaidh gu mionaideach air na ceumannan a tha air am mìneachadh san stiùireadh seo… ach a-mhàin an tè mu dheireadh. Dè thachras nuair a thèid Telepresence a chuir air bhog?
Ag obair le telepreence
Aig toiseach tòiseachaidh (a’ cleachdadh an àithne mu dheireadh a tha air a shònrachadh anns an stiùireadh gu h-àrd), shuidhich sinn:
ainm-àite anns a bheil am microservice a 'ruith;
ainmean an t-suidheachaidh agus an soitheach a tha sinn airson a dhol a-steach.
Tha na h-argamaidean a tha air fhàgail roghainneil. Ma tha an t-seirbheis againn ag eadar-obrachadh le agus airson an Kubernetes API ServiceAccount air a chruthachadh, feumaidh sinn teisteanasan / comharran a chuir air an deasg againn. Gus seo a dhèanamh, cleachd an roghainn --mount=true (no --mount=/dst_path), a chuireas suas am freumh (/) bhon ghobhar Kubernetes chun deasg againn. Às deidh seo, is urrainn dhuinn (a rèir an OS agus mar a thèid an tagradh a chuir air bhog) na “iuchraichean” bhon bhuidheann a chleachdadh.
An toiseach, leig dhuinn sùil a thoirt air an roghainn as uile-choitcheann airson tagradh a ruith - ann an soitheach Docker. Gus seo a dhèanamh cleachdaidh sinn an iuchair --docker-run agus cuir a-steach an eòlaire leis a’ chòd a-steach don ghobhar: -v `pwd`:/app
Thoir an aire gu bheil seo a’ gabhail ris gu bheil e a’ ruith bho eòlaire a’ phròiseict. Thèid an còd tagraidh a chuir a-steach don eòlaire /app ann an soitheach.
Air adhart: -v /tmp/app/var/run/secrets:/var/run/secrets - gus an eòlaire a chuir suas leis an teisteanas / comharra a-steach do shoitheach.
Tha an roghainn seo air a leantainn mu dheireadh leis an ìomhaigh anns am bi an tagradh a’ ruith. NB: Nuair a bhios tu a 'togail ìomhaigh, feumaidh tu sònrachadh CMD no ENTRYPOINT!
Dè dìreach a thachras an ath rud?
Ann an Kubernetes, airson an cleachdadh ainmichte, thèid an àireamh de mhac-samhail atharrachadh gu 0. An àite sin, thèid Cleachdadh ùr a chuir air bhog - le inneal-ionaid. backend.
Thèid 2 shoithichean a chuir air bhog air an deasg: a’ chiad fhear le Telepresence (bidh e ag iarraidh iarrtasan bho/gu Kubernetes), an dàrna fear leis an tagradh ga leasachadh.
Ma chuireas sinn an gnìomh a-steach don ghobhar leis an tagradh, bidh na caochladairean ENV uile air an gluasad le Helm aig àm cleachdadh rim faighinn dhuinn, agus bidh a h-uile seirbheis ri fhaighinn cuideachd. Chan eil air fhàgail ach an còd anns an IDE as fheàrr leat a dheasachadh agus an toradh a mhealtainn.
Aig deireadh na h-obrach, cha leig thu leas ach an togalach anns a bheil Telepresence a’ ruith a dhùnadh (cuir crìoch air an t-seisean le Ctrl + C) - stadaidh soithichean docker air an deasg, agus ann an Kubernetes tillidh a h-uile càil chun chiad staid aige. Chan eil air fhàgail ach gealltainn, an MR a chuir a-mach agus a ghluasad gu ath-sgrùdadh / tighinn còmhla /… (a rèir do shruth-obrach).
Mura h-eil sinn airson an tagradh a ruith ann an soitheach Docker - mar eisimpleir, bidh sinn a’ leasachadh chan ann ann am PHP, ach ann an Go, agus fhathast ga thogail gu h-ionadail - bidh cur air bhog Telepresence eadhon nas sìmplidh:
Ma gheibh an aplacaid cothrom air Kubernetes API, feumaidh tu an eòlaire iuchraichean a chuir suas (https://www.telepresence.io/howto/volumes). Tha goireas ann airson Linux freumh:
An dèidh a chur air bhog Telepresence gun an roghainn --docker-run bidh a h-uile caochladair àrainneachd ri fhaighinn anns a’ chrìoch gnàthach, agus mar sin feumar an tagradh a chuir air bhog ann.
NB: Nuair a bhios tu a’ cleachdadh, mar eisimpleir, PHP, feumaidh tu cuimhneachadh gun cuir thu à comas diofar op_cache, apc agus luathaichean eile airson leasachadh - air neo cha lean deasachadh a’ chòd ris an toradh a tha thu ag iarraidh.
Builean
Tha leasachadh ionadail le Kubernetes na dhuilgheadas aig a bheil fuasgladh a’ fàs a rèir sgaoileadh an àrd-ùrlar seo. A 'faighinn iarrtasan buntainneach bho luchd-leasachaidh (bho ar luchd-dèiligidh), thòisich sinn air am fuasgladh leis a' chiad dhòigh a bha rim faotainn, ach, ge-tà, cha do dhearbh iad iad fhèin thairis air an t-slighe fhada. Gu fortanach, tha seo air a bhith follaiseach chan ann a-mhàin a-nis agus chan ann a-mhàin dhuinne, agus mar sin tha dòighean nas freagarraiche air nochdadh san t-saoghal mar-thà, agus is e Telepresence an fheadhainn as ainmeil dhiubh (co-dhiù, tha e ann cuideachd. sgafaill bho Google). Chan eil ar n-eòlas air a bhith ga chleachdadh fhathast cho math, ach tha e mar-thà a’ toirt adhbhar dhuinn a mholadh dha ar “co-obraichean sa bhùth” - feuch e!