ProHoster > Blog > Pulega > Kubernetes fautuaga & togafiti: e uiga i atinaʻe faʻapitonuʻu ma Telepresence
Kubernetes fautuaga & togafiti: e uiga i atinaʻe faʻapitonuʻu ma Telepresence
Ua fa'atupula'ia i matou e uiga i le atina'eina o microservices i Kubernetes. O tagata atiaʻe, aemaise o gagana faʻamatalaina, e manaʻo e vave faʻasaʻo le code i la latou IDE e sili ona fiafia i ai ma vaʻai i le taunuuga e aunoa ma le faʻatali mo le fausiaina / faʻapipiʻiina - e ala i le na o le oomi F5. Ma ina ua oʻo mai i se talosaga monolithic, na lava e faʻapipiʻi i le lotoifale se faʻamaumauga ma se upega tafaʻilagi (i Docker, VirtualBox ...), ona vave loa lea ona fiafia i le atinaʻe. Faatasi ai ma le tipiina o monoliths i microservices ma le taunuu mai o Kubernetes, faatasi ai ma foliga vaaia o le faalagolago o le tasi i le isi, mea uma. ua fai si faigata. O le tele o nei microservices, o le tele o faʻafitauli. Ina ia toe fiafia i le atinaʻe, e tatau ona e siʻitia le sili atu ma le tasi pe lua koneteina Docker, ma o nisi taimi e sili atu ma le taseni ... I se tulaga lautele, o nei mea uma e mafai ona umi se taimi, talu ai e manaʻomia foi ona faʻafou i aso nei. .
I taimi eseese sa matou taumafai ai i fofo eseese i le faafitauli. Ma o le a ou amata i le faʻaputuina o mea faigaluega poʻo na o le "tootoo".
1. Tootoo
Ole tele ole IDE e iai le malosi e fa'asa'o sa'o ai le code ile server ile fa'aogaina ole FTP/SFTP. O lenei ala e matua manino lava ma na matou filifili loa e faʻaaoga. O lona uiga e faʻavae i lalo i mea nei:
I totonu o le pusa o siosiomaga atinaʻe (dev / iloiloga), o loʻo faʻalauiloaina se atigipusa faʻaopoopo ma le SSH avanoa ma tuʻuina atu le ki SSH lautele a le tagata atiaʻe o le a tuʻuina atu / faʻaogaina le talosaga.
I le tulaga amata (i totonu o le atigipusa prepare-app) fa'aliliu le code i emptyDiria maua le avanoa i le code mai pusa talosaga ma le SSH server.
Ina ia malamalama atili i le faʻatinoga faʻapitoa o sea polokalame, o le a ou tuʻuina atu ni vaega o faʻalapotopotoga a le YAML i Kubernetes.
Fa'atonuga
1.1. values.yaml
ssh_pub_key:
vasya.pupkin: <ssh public key in base64>
o vasya.pupkin o le tau o le fesuiaiga ${GITLAB_USER_LOGIN}.
Voila: o le tagata na te faʻalauiloaina le faʻapipiʻiina e mafai ona faʻafesoʻotaʻi ile igoa ole tautua (faʻafefea ona faʻatagaina saogalemu le avanoa i le fuifui, ua uma ona matou fai atu) mai lau laulau e ala i le SFTP ma faʻasaʻo le code e aunoa ma le faʻatali mo le tuʻuina atu i le fuifui.
O se fofo galue atoatoa, ae mai le faʻatinoga o le faʻaaliga o loʻo i ai ni faʻaletonu manino:
le mana'oga e fa'amanino le siata o le Helm, lea e faigata ai ona faitau i le lumana'i;
e mafai ona fa'aaogaina e le tagata na fa'atinoina le auaunaga;
e tatau ona e manatua ona fa'amaopoopoina lea ma le lisi fa'apitonu'u ma le code ma tu'uina atu i Git.
2. Telepresence
Проект fa'asalalauga tele ua leva ona iloa, ae o matou, e pei ona latou fai mai ai, "e leʻi oʻo i le taumafai malosi i le faʻatinoga." Ae ui i lea, o le manaʻoga ua maeʻa lana galuega ma o lea ua matou fiafia e faʻasoa atu lo matou poto masani, atonu e aoga i le au faitau o la matou blog - aemaise lava talu ai e leʻi i ai isi mea e uiga i Telepresence i luga o le hub.
I se faapuupuuga, o mea uma na foliga mai e le o se mea taufaafefe. Na matou tuʻuina uma gaioiga e manaʻomia ai le faʻataunuʻuina i le vaega a le tagata atiaʻe i totonu o se faila faila o le siata Helm e taʻua NOTES.txt. O le mea lea, a maeʻa ona tuʻuina atu le 'auʻaunaga i Kubernetes, e vaʻaia e le tagata faʻapitoa faatonuga mo le faʻalauiloaina o le siosiomaga faʻapitonuʻu i le GitLab job log:
!!! Разработка сервиса локально, в составе 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
#########################################################################
O le a matou le faʻamatala auiliili i laasaga o loʻo faʻamatalaina i lenei faatonuga ... sei vagana ai le mea mulimuli. O le a le mea e tupu i le taimi o le faʻalauiloaina o Telepresence?
Galulue ma Telepresence
I le amataga (faʻaaogaina le poloaiga mulimuli o loʻo faʻamaonia i faatonuga o loʻo i luga), matou te setiina:
igoa avanoa o loʻo faʻaogaina ai le microservice;
igoa o le faʻapipiʻiina ma le atigipusa matou te manaʻo e ulu i ai.
O isi finauga e filifili. Afai e fegalegaleai la matou auaunaga ma mo le Kubernetes API ServiceAccount ua faia, matou te manaʻomia le faʻapipiʻiina o tusi faamaonia / faʻailoga i luga o la matou komepiuta. Ina ia faia lenei mea, faʻaaoga le filifiliga --mount=true (po o --mount=/dst_path), lea o le a faʻapipiʻi ai le aʻa (/) mai le pusa Kubernetes i luga o la matou laulau. A maeʻa lenei mea, e mafai ona matou (faʻalagolago i le OS ma le faʻaogaina o le talosaga) faʻaoga "ki" mai le fuifui.
Muamua, seʻi o tatou vaʻavaʻai i le filifiliga sili ona lautele mo le faʻaogaina o se talosaga - i totonu o se pusa Docker. Ina ia faia lenei mea o le a matou faʻaaogaina le ki --docker-run ma faʻapipiʻi le lisi ma le code i totonu o le koneteina: -v `pwd`:/app
Faamolemole ia matau o lenei mea e fa'apea o lo'o alu mai le lisi o galuega. O le numera o talosaga o le a faʻapipiʻiina i totonu o le lisi /app i totonu o se koneteina.
Lisi: -v /tmp/app/var/run/secrets:/var/run/secrets — ia fa'apipi'i le fa'atonuga ma le tusi pasi/fa'ailoga i totonu o se koneteina.
O lenei filifiliga e mulimuli ane mulimuli ane i le ata o le a faʻaogaina ai le talosaga. NB: A fauina se ata, e tatau ona e faʻamaonia CMD poʻo ENTRYPOINT!
O le a tonu le mea o le a tupu?
I le Kubernetes, mo le Fa'atonuga fa'apitoa, o le numera o fa'atusa o le a suia i le 0. Nai lo lena, o le a fa'alauiloa se Fa'atonuga fou - fa'atasi ai ma se koneteina sui. backend.
2 koneteina o le a faʻalauiloa i luga o le komepiuta: muamua ma Telepresence (o le a sui talosaga mai / i Kubernetes), lona lua ma le talosaga o loʻo atiaʻe.
Afai matou te faʻatinoina i totonu o le koneteina ma le talosaga, ona avanoa uma lea o le ENV fesuiaʻiga na faʻafeiloaʻi e Helm i le taimi o le faʻapipiʻiina, ma o le a avanoa foi auaunaga uma. Pau lava le mea o loʻo totoe o le faʻasaʻo le code i lau IDE e sili ona e fiafia i ai ma fiafia i le taunuuga.
I le faaiuga o le galuega, e tatau lava ona e tapuni le laina lea o loʻo taʻavale ai Telepresence (faʻamutaina le sauniga ma Ctrl + C) - O pusa Docker o le a taofi i luga o le laulau, ma i Kubernetes o le a toe foʻi mea uma i lona tulaga muamua. Pau lava le mea o loʻo totoe o le tuʻuina atu, tuʻuina atu le MR ma faʻafeiloaʻi e toe iloilo / tuʻufaʻatasia / ... (faʻalagolago i au galuega).
Afai matou te le manaʻo e faʻatautaia le talosaga i totonu o se pusa Docker - mo se faʻataʻitaʻiga, matou te le atiina ae i le PHP, ae i le Go, ma faʻaauau pea ona fausia i le lotoifale - faʻalauiloa Telepresence o le a sili atu ona faigofie:
Afai e maua e lau talosaga le Kubernetes API, e tatau ona e fa'apipi'i le lisi o ki (https://www.telepresence.io/howto/volumes). O loʻo i ai se aoga mo Linux a'a:
A maeʻa ona faʻalauiloa Telepresence e aunoa ma le filifiliga --docker-run o suiga uma o le siosiomaga o le a maua i le laina o loʻo i ai nei, o lea e tatau ai ona faʻalauiloa le talosaga i totonu.
NB: A faʻaaoga, mo se faʻataʻitaʻiga, PHP, e tatau ona e manatua e faʻamalo eseʻese op_cache, apc ma isi faʻavavevave mo le atinaʻe - a le o le faʻasaʻoina o le code o le a le taʻitaʻia ai le manaʻoga.
O taunuʻuga
O le atinaʻe faʻapitonuʻu ma Kubernetes o se faʻafitauli o loʻo faʻatupulaʻia le fofo e faʻatatau i le faʻasalalauina o lenei tulaga. O le mauaina o talosaga talafeagai mai le au atinaʻe (mai a matou tagata faʻatau), na amata ona matou foia i latou i le auala muamua na maua, lea, e ui i lea, e leʻi faʻamaonia i latou lava mo se taimi umi. O le mea e lelei ai, ua faʻaalia lenei mea e le gata i le taimi nei ma e le gata ia i tatou, o lea ua sili atu ona talafeagai auala ua faʻaalia i le lalolagi, ma Telepresence o le sili ona taʻutaʻua o latou (i le ala, e iai foi fatafata mai Google). O lo matou poto masani i le faʻaaogaina e leʻo sili atu, ae ua uma ona matou maua le mafuaaga e fautuaina ai i matou "aufaigaluega i le faleoloa" - taumafai!