ProHoster > Блог > Whakahaerenga > Nga tohutohu me nga tinihanga a Kubernetes: mo te whakawhanaketanga a-rohe me te Waea Telepresence
Nga tohutohu me nga tinihanga a Kubernetes: mo te whakawhanaketanga a-rohe me te Waea Telepresence
Kei te nui haere te patai mo te whakawhanake i nga ratonga moroiti ki Kubernetes. Ko nga kaiwhakawhanake, ina koa ko nga reo whakamaori, e hiahia ana kia tere te whakatika i te waehere i roto i o raatau IDE tino pai ka kite i te hua me te kore e tatari mo te hanga/whakamahinga - ma te pehi noa i te F5. A, no te taenga mai ki te tono monolithic, he nui ki te whakauru i tetahi papaaarangi me te tūmau tukutuku (i Docker, VirtualBox ...), katahi ka koa tonu ki te whakawhanaketanga. Na te tapahi o nga monoliths ki roto i nga ratonga miihini me te taenga mai o Kubernetes, me te ahua o te whakawhirinaki ki a raatau ano, nga mea katoa ka uaua ake. Ko te nui ake o enei ratonga miihini, ka nui ake nga raru. Kia pai ai ki te whakawhanaketanga, me whakaara ake i te kotahi, e rua ranei nga ipu Docker, a i etahi wa neke atu i te tekau ma rua... I te nuinga o te waa, he roa te waa, na te mea me mau tonu ki te waa. .
I etahi wa rereke i whakamatauhia e matou etahi otinga rereke mo te raruraru. A ka tiimata ahau me nga mahi kua whakaemihia, he "tootoo" noa ranei.
1. Tootoo
Ko te nuinga o nga IDE he kaha ki te whakatika tika i te waehere i runga i te tūmau ma te whakamahi i te FTP/SFTP. He tino kitea tenei ara, ka whakatau tonu matou ki te whakamahi. Ko tona ahuatanga ka heke ki nga mea e whai ake nei:
I roto i te putunga o nga taiao whanaketanga (dev/arotake), ka whakarewahia he ipu taapiri me te uru SSH me te tuku whakamua i te taviri SSH tūmatanui o te kaiwhakawhanake ka tukuna/whakamahi te tono.
I te wa tuatahi (i roto i te ipu prepare-app) whakawhiti te waehere ki emptyDirkia whai waahi ki te waehere mai i nga ipu tono me te tūmau SSH.
Kia pai ake ai te mohio ki te whakatinanatanga hangarau o taua kaupapa, ka hoatu e ahau etahi wahanga o nga whirihoranga YAML whai waahi ki Kubernetes.
Whirihoranga
1.1. uara.yaml
ssh_pub_key:
vasya.pupkin: <ssh public key in base64>
ko te reira vasya.pupkin ko te uara o te taurangi ${GITLAB_USER_LOGIN}.
Voila: ka taea e te kaiwhakawhanake nana i whakarewa te tuku te hono ma te ingoa ratonga (me pehea te tuku uru ki te tautau, kua korerotia e matou) mai i to papamahi ma te SFTP me te whakatika i te waehere me te kore e tatari kia tukuna atu ki te kohinga.
He otinga tino mahi tenei, engari mai i te tirohanga whakatinanatanga he tino ngoikoretanga:
te hiahia ki te whakamahine i te tūtohi Helm, he uaua ki te panui a muri ake nei;
ka taea anake te whakamahi e te tangata nana i tuku te ratonga;
Me mahara koe ki te tukutahi me te raarangi rohe me te waehere ka tuku ki a Git.
2. Telepresence
Ko te kaupapa Waatea kua mohiotia mo te wa roa, engari ko matou, e kii ana ratou, "kaore i kaha ki te whakamatau i te mahi." Heoi, kua oti te mahi a te tono a inaianei kei te harikoa matou ki te whakapuaki i o maatau wheako, tera pea ka whai hua ki nga kaipanui o ta maatau blog - ina koa kaore ano etahi atu korero mo Telepresence i runga i te tari.
I roto i te poto, i puta nga mea katoa kaore i tino mataku. I tukuna e matou nga mahi katoa e tika ana kia mahia e te kaiwhakawhanake ki roto i te konae kuputuhi tūtohi Helm e kiia nei NOTES.txt. Na, i muri i te tuku i te ratonga ki a Kubernetes, ka kite te kaiwhakawhanake i nga tohutohu mo te whakarewa i te taiao dev a-rohe i roto i te raarangi mahi a 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
#########################################################################
E kore matou e noho taipitopito i runga i nga kaupae e whakaahuatia ana i roto i tenei tohutohu... haunga te mea whakamutunga. He aha te mea i te wa o te whakarewatanga o Telepresence?
Te mahi me te Telepresence
I te tiimatanga (ma te whakamahi i te whakahau whakamutunga kua tohua i roto i nga tohutohu i runga ake nei), ka tautuhia e matou:
mokowā ingoa kei te whakahaeretia te microservice;
ingoa o te horahanga me te ipu e hiahia ana matou ki te kuhu.
Ko nga toenga tohenga he mea whiriwhiri. Mēnā e pāhekoheko ana tā mātou ratonga me te API Kubernetes I hangaia te Pūkete Ratonga, me whakairihia nga tiwhikete/tohu ki runga i to maatau papamahi. Ki te mahi i tenei, whakamahia te kōwhiringa --mount=true (ranei --mount=/dst_path), ka whakairihia te pakiaka (/) mai i te ipu Kubernetes ki to maatau papamahi. I muri i tenei, ka taea e tatou (i runga i te OS me te pehea e whakarewahia ai te tono) te whakamahi i nga "ki" mai i te kohinga.
Tuatahi, me titiro tatou ki te whiringa whanui mo te whakahaere tono - kei roto i te ipu Docker. Ki te mahi i tenei ka whakamahia e matou te ki --docker-run ka whakairihia te whaiaronga me te waehere ki roto i te ipu: -v `pwd`:/app
Kia mahara kei te rere tenei mai i te raarangi kaupapa. Ka whakauruhia te waehere tono ki te raarangi /app i roto i te ipu.
Tō muri mai: -v /tmp/app/var/run/secrets:/var/run/secrets — ki te whakairi i te whaiaronga me te tiwhikete/tohu ki roto i te ipu.
Ko tenei whiringa ka whai muri i te ahua e rere ai te tono. NB: I te wa e hanga ana i tetahi ahua, me tohu koe CMD ranei ENTRYPOINT!
He aha te mea ka tupu i muri mai?
I roto i nga Kubernetes, mo te Whakaritenga kua tohua, ka huri te maha o nga tauira ki te 0. Engari, ka whakarewahia he Tukunga hou - me te ipu whakakapi. backend.
Ka whakarewahia nga ipu e 2 ki runga i te papamahi: ko te tuatahi me te Telepresence (ka tono takawaenga mai i/ki Kubernetes), ko te tuarua kei te whanakehia te tono.
Mena ka uru tatou ki roto i te ipu me te tono, katahi ka watea mai ki a maatau nga taurangi ENV katoa i whakawhitia e Helm i te wa tukunga, ka watea hoki nga ratonga katoa. Ko nga mea e toe ana ko te whakatika i te waehere i roto i to IDE tino pai me te pai ki te hua.
I te mutunga o te mahi, me kati noa koe i te tauranga kei te whakahaere a Telepresence (whakamutua te huihuinga me Ctrl+C) - Ka mutu nga ipu Docker i runga i te papamahi, a ki Kubernetes ka hoki nga mea katoa ki tona ahuatanga tuatahi. Ko nga mea e toe ana ko te tuku, te whakaputa i te MR ka whakawhiti ki te arotake/hanumi/… (i runga i o rerengamahi).
Mena kaore matou e hiahia ki te whakahaere i te tono ki roto i te ipu Docker - hei tauira, kaore matou e whakawhanake i roto i te PHP, engari i roto i te Haere, ka hanga tonu i te rohe - ka ngawari ake te whakarewatanga o Telepresence:
Mena ka uru te tono ki te Kubernetes API, me whakauru e koe te raarangi taviri (https://www.telepresence.io/howto/volumes). He taputapu mo Linux putake:
I muri i te whakarewatanga o Telepresence kaore he whiringa --docker-run ka watea nga taurangi taiao katoa ki te tauranga o naianei, no reira me whakarewa te tono ki roto.
NB: I te wa e whakamahi ana, hei tauira, PHP, me mahara koe ki te whakakore i nga momo op_cache, apc me etahi atu whakatere mo te whakawhanaketanga - mena ko te whakarereke i te waehere kaore e puta te hua e hiahiatia ana.
Ngā putanga
Ko te whakawhanaketanga a-rohe me Kubernetes he raruraru kei te tipu haere te otinga ki te horahanga o tenei turanga. I te whiwhi i nga tono e tika ana mai i nga kaiwhakawhanake (mai i o taatau kaihoko), ka tiimata matou ki te whakaoti i a raatau me nga huarahi tuatahi e waatea ana, heoi, kaore i whakamatauhia i roto i te waa roa. Waimarie, kua kitea tenei ehara i tenei wa anake, ehara i a maatau anake, no reira kua puta kee nga tikanga pai ake i te ao, a ko Telepresence te mea tino rongonui o ratou (ma te ara, kei reira ano hoki. tauparapara mai i a Google). Ko to maatau wheako ki te whakamahi kaore ano kia tino pai, engari kua homai e matou he take ki te taunaki ki o maatau "hoa mahi i te toa" - whakamatauria!
PS
Ko etahi atu mai i nga raupapa tohutohu me nga tinihanga K8s: