Southbridge i Chelyabinsk me Bitrix i Kubernetes

Ko nga huihuinga a te kaiwhakahaere punaha Sysadminka kei Chelyabinsk, a, i te whakamutunga ka tukuna e ahau he ripoata mo ta matou otinga mo te whakahaere tono i runga i te 1C-Bitrix i Kubernetes.

Bitrix, Kubernetes, Ceph - he ranunga pai?

Ka korerotia e ahau ki a koe me pehea e whakakotahi ai i tetahi otinga mahi mai i enei mea katoa.

Haere tatou!

Southbridge i Chelyabinsk me Bitrix i Kubernetes

I tu te huihuinga i te Paenga-whawha 18 i Chelyabinsk. Ka taea e koe te panui mo o maatau huihuinga i Papamahi ka titiro YouTube.

Mena kei te pirangi koe ki te haere mai ki a matou me te tuku purongo, hei whakarongo ranei - nau mai, tuhia mai [email tiakina] me runga Telegram t.me/vadimisakanov.

Taku ripoata

Southbridge i Chelyabinsk me Bitrix i Kubernetes

Kiriata

Rongoā "Bitrix i Kubernetes, putanga Southbridge 1.0"

Ka korero ahau mo ta maatau otinga i roto i te whakatakotoranga "mo nga kaarei i Kubernetes", pera i mahia i te huihuinga. Engari ki taku whakaaro kei te mohio koe ki nga kupu Bitrix, Docker, Kubernetes, Ceph i te iti rawa i te taumata o nga tuhinga i runga i Wikipedia.

He aha te mea kua rite mo Bitrix i Kubernetes?

He iti noa nga korero i runga i te Ipurangi katoa mo te whakahaere o nga tono Bitrix i Kubernetes.
I kitea e au enei rauemi anake:

Ripoata na Alexander Serbul, 1C-Bitrix, me Anton Tuzlukov mai i Qsoft:

Ka tūtohu ahau ki te whakarongo.

Te whakawhanake i to ake otinga mai i te kaiwhakamahi serkyron i runga i a Habré.
I kitea etahi atu he whakatau penei.

Aaand... he pono, ko tera anake.

Ka whakatupato ahau ki a koe, kaore i tirohia e matou te kounga o nga otinga i roto i nga hononga o runga :)
Ma te ara, i te wa e whakarite ana i ta maatau otinga, i korero ahau ki a Alexander Serbul, kare ano i puta mai tana purongo, no reira kei roto i aku kiriata he mea "Kaore a Bitrix e whakamahi Kubernetes."

Engari he maha nga whakaahua Docker kua rite mo te whakahaere i a Bitrix i Docker: https://hub.docker.com/search?q=bitrix&type=image

He nui tenei hei hanga otinga mo Bitrix i Kubernetes?
Kao. He nui nga raruraru me whakatika.

He aha nga raru o Bitrix i Kubernetes?

Tuatahi, ko nga whakaahua kua rite mai i Dockerhub kaore e pai mo nga Kubernetes

Mena kei te pirangi matou ki te hanga hoahoanga moroiti (me nga Kubernetes ka mahia e matou), me wehe ta matou tono Kubernetes ki roto i nga ipu, kia mahia e ia ipu tetahi mahi iti (me te mahi pai). He aha kotahi anake? I roto i te poto, ko te ngawari ake te pono.
Kia marama ake, tirohia tenei tuhinga me te ataata, koa: https://habr.com/ru/company/southbridge/blog/426637/

Ko nga whakaahua Docker kei Dockerhub te nuinga i hangaia i runga i te maapono katoa-i-kotahi, no reira me mahi tonu taatau ake pahikara me te hanga whakaahua mai i te wahanga.

Tuarua - kua whakatikahia te waehere pae mai i te papa whakahaere

I hangaia e matou he waahanga hou i runga i te waahi - kua whakahouhia te waehere (he whaiaronga me te ingoa o te waahanga hou i whakauruhia).

Mena i hurihia e koe nga ahuatanga o tetahi waahanga mai i te roopu whakahaere, ka huri te waehere.

Ko nga Kubernetes "ma te taunoa" kaore e taea te mahi me tenei; me noho koretake nga ipu.

Te take: Ko ia ipu (pod) kei roto i te kohinga ka tukatuka i tetahi waahanga noa o te hokohoko. Mena ka huri koe i te waehere i roto i te ipu kotahi anake (pod), ka rereke te waehere i roto i nga putea rereke, ka rere ke te mahi o te pae, ka whakaatuhia nga momo putanga rereke ki nga kaiwhakamahi rereke. Kaore e taea e koe te noho penei.

Tuatoru - me whakaoti e koe te take me te whakatakotoranga

Mena kei a matou he monolith me tetahi "matarohia", he maamaa noa nga mea katoa: ka tohatohahia e matou he turanga waehere hou, ka heke te papaaarangi, whakawhiti waka ki te putanga hou o te waehere. Ka puta tonu te whakawhiti.
Mena he waahi kei a matou i Kubernetes, tapahia ki nga ratonga miihini, he maha nga ipu me te waehere - aue. Me kohia e koe nga ipu me tetahi putanga hou o te waehere, hurihia ki waho hei utu mo nga mea tawhito, tika te heke i te paataka raraunga, me te mahi i tenei kaore e kitea e nga manuhiri. Waimarie, ka awhina a Kubernetes i a maatau ki tenei, e tautoko ana i te tini o nga momo whakatakotoranga.

Tuawha - me whakaoti e koe te take o te penapena i nga tatauranga

Mena ko to pae "anake" 10 gigabytes ka tukuna katoatia e koe ki roto i nga ipu, ka mutu koe me nga ipu 10 gigabyte ka roa ki te tuku.
Me penapena e koe nga waahanga "taimaha" o te waahi ki waho o nga ipu, ka puta ake te patai me pehea te mahi tika.

He aha te ngaro o ta tatou otinga?

Ko te waehere Bitrix katoa kaore i te wehewehea ki nga microfunctions/microservices (kia wehe ke te rehitatanga, he wehe te waahanga toa ipurangi, me etahi atu). Ka penapenahia e matou te turanga waehere katoa ki ia ipu.

Kare hoki matou e penapena i te papaaarangi ki Kubernetes (I whakatinana tonu ahau i nga rongoatanga me te papaunga raraunga i Kubernetes mo nga taiao whanaketanga, engari kaua mo te hanga).

Ka kitea tonu e nga kaiwhakahaere o te pae kei te haere te pae ki runga i te Kubernetes. Ko te mahi "tirotiro punaha" kaore e mahi tika; ki te whakatika i te waehere pae mai i te papa whakahaere, me paato tuatahi koe i te paatene "Kei te pirangi ahau ki te whakatika i te waehere".

Kua tautuhia nga raruraru, kua whakatauhia te hiahia ki te whakatinana microservices, kua marama te whainga - ki te tiki i tetahi punaha mahi mo te whakahaere tono i runga i te Bitrix i Kubernetes, me te pupuri i nga kaha e rua o Bitrix me nga painga o Kubernetes. Kia timata tatou ki te whakatinana.

hoahoanga

He maha nga putea "mahi" me te tūmau tukutuku (kaimahi).
Kotahi i raro me nga mahi cron (kotahi anake te hiahia).
Kotahi te whakamohoatanga mo te whakatika i te waehere pae mai i te roopu whakahaere (kotahi ano te mea e hiahiatia ana).

Southbridge i Chelyabinsk me Bitrix i Kubernetes

Ka whakatauhia e matou nga patai:

  • Kei hea te rokiroki i nga huihuinga?
  • Kei hea te penapena keteroki?
  • Kei hea te penapena i nga tatauranga, kaua e waiho nga gigabytes o nga taatai ​​​​ki roto i te paihere o nga ipu?
  • Ka pehea te mahi o te papaa raraunga?

Whakaahua Docker

Ka timata ma te hanga i tetahi ahua Docker.

Ko te kowhiringa pai ko te mea kotahi to tatou ahua o te ao, i runga i tana kaupapa ka whiwhi tatou i nga pene kaimahi, nga pene me nga Crontasks, me te whakahou i nga pene.

I hanga e matou he ahua penei.

Kei roto ko te nginx, apache/php-fpm (ka taea te kowhiri i te wa hanga), msmtp mo te tuku mēra, me te cron.

I te wa e whakahiato ana i te ahua, ka kapehia te turanga waehere katoa o te papanga ki te raarangi /app (haunga nga waahanga ka nekehia e matou ki tetahi rokiroki tiritahi).

Microservices, ratonga

nga putea kaimahi:

  • Ipu whai nginx + ipu apache/php-fpm + msmtp
  • Kaore i pai ki te neke i te msmtp ki tetahi ratonga miihini motuhake, kei te tiimata a Bitrix ki te riri kaore e taea e ia te tuku mēra tika.
  • Kei ia ipu he turanga waehere katoa.
  • Te aukati i te whakarereke i te waehere i roto i nga ipu.

cron i raro:

  • ipu ki apache, php, cron
  • kua whakauruhia te turanga waehere
  • te whakakore i te whakarereke i te waehere i roto i nga ipu

whakapai ake i raro i:

  • ipu nginx + ipu apache/php-fpm + msmtp
  • Karekau he aukati ki te whakarereke i te waehere i roto i nga ipu

rokiroki wātū

Te rokiroki keteroki Bitrix

Ko tetahi atu mea nui: ka penapenahia e matou nga kupuhipa mo te hono ki nga mea katoa, mai i te paataka korero ki te mēra, i roto i nga mea ngaro kubernetes. Ka whiwhi tatou i te bonus: ko nga kupuhipa ka kitea anake ma te hunga ka hoatu e matou te uru ki nga mea ngaro, kaua ki nga tangata katoa e uru ana ki te turanga waehere kaupapa.

Rokiroki mo nga taatai

Ka taea e koe te whakamahi i tetahi mea: ceph, nfs (engari kaore matou e tūtohu nfs mo te whakaputa), te rokiroki whatunga mai i nga kaiwhakarato kapua, etc.

Me hono te rokiroki i roto i nga ipu ki te whaiaronga /upload/ o te pae me etahi atu whaiaronga whai ihirangi pateko.

Pātengi Raraunga

Mo te ngawari, ka tūtohu kia nukuhia te pātengi raraunga ki waho o Kubernetes. Ko te turanga i roto i te Kubernetes he mahi uaua motuhake; ma reira ka nui ake te uaua o te kaupapa.

Wātū rokiroki

Ka whakamahi matou i te memcached :)

He pai te whakahaere i te rokiroki o te waahi, ka rapoi, ka tautokohia "maori" hei session.save_path i roto i te php. He maha nga wa i whakamatauria taua punaha i roto i te hoahoanga monolithic puāwaitanga, i te wa i hangaia ai e matou he tautau me te maha o nga tuunga paetukutuku. Mo te whakatakotoranga ka whakamahia e matou te urungi.

$ helm install stable/memcached --name session

php.ini - kei konei te ahua kei roto nga tautuhinga mo te penapena i nga waahi ki te memcached

I whakamahia e matou nga Taurangi Taiao ki te tuku raraunga mo nga kaihautu me te memcached https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/.
Ma tenei ka taea e koe te whakamahi i te waehere kotahi i roto i te dev, te atamira, te whakamatautau, nga taiao prod (ka rereke nga ingoa o te kaihautu memcached i roto, na reira me tuku he ingoa rangatira motuhake mo nga waahi ki ia taiao).
Te rokiroki keteroki Bitrix

E hiahia ana matou ki te rokiroki he-kore ka taea e nga pene katoa te tuhi me te panui mai.

Ka whakamahi hoki matou i te memcached.
Ko tenei otinga e taunakihia ana e Bitrix ake.

$ helm install stable/memcached --name cache

bitrix/.settings_extra.php - i konei i Bitrix kua tohua ki te waahi e rongoa ai te keteroki

Ka whakamahi hoki matou i nga Taurangi Taiao.

Krontaski

He rereke nga huarahi ki te whakahaere i nga Crontasks i Kubernetes.

  • te whakatakotoranga motuhake me te peera mo te whakahaere Crontasks
  • cronjob mo te mahi crontasks (mehemea he taupānga tukutuku tenei - me te wget https://$host$cronjobname, kubectl exec ranei i roto i tetahi o nga putunga kaimahi, etc.)
  • etc

Ka taea e koe te tautohetohe mo te mea tino tika, engari i tenei keehi i kowhiria e matou te whiringa "whakatuwherahia me nga pona mo Crontasks"

Me pehea te mahi:

  • taapirihia nga mahi cron ma te ConfigMap ma te konae whirihora/addcron ranei
  • i tetahi wa ka whakarewahia e matou he ipu e rite ana ki te putea kaimahi + ka whakaaetia kia mahia nga mahi karauna kei roto.
  • ka whakamahia te turanga waehere kotahi, na te whakakotahitanga, he maamaa te huihuinga ipu

He aha te pai ka whiwhi tatou:

  • kei te mahi matou i nga Crontasks ki tetahi taiao e rite ana ki te taiao o nga kaihanga (docker)
  • Ko nga Crontasks kaore e hiahiatia kia "tuhi ano" mo nga Kubernetes, he rite tonu te mahi me te turanga waehere rite o mua
  • Ka taea te taapiri i nga mahi cron e nga mema katoa o te roopu me te whai mana ki te peka whakaputa, kaua ko nga kaiwhakahaere anake

Southbridge K8SDeploy kōwae me te whakatika waehere mai i te papa whakahaere

I korero matou mo te whakahou i raro?
Me pehea te whakahaere waka ki reira?
Hurray, i tuhia e matou he kōwae mo tenei i roto i te PHP :) He kōwae matarohia iti tenei mo Bitrix. Kaore ano kia watea ki te iwi whanui, engari e whakaaro ana matou ki te whakatuwhera.
Kua whakauruhia te kōwae rite te kōwae auau i Bitrix:

Southbridge i Chelyabinsk me Bitrix i Kubernetes

A penei te ahua:

Southbridge i Chelyabinsk me Bitrix i Kubernetes

Ka taea e koe te whakarite pihikete e tohu ana i te kaiwhakahaere o te pae me te tuku i a Kubernetes ki te tuku waka ki te putunga whakamohoatanga.

Ka oti nga huringa, me panui koe i te git pana, ka tukuna nga huringa waehere ki te git, katahi ka hangaia e te punaha he ahua me te putanga hou o te waehere ka "hurihia" puta noa i te tautau, ka whakakapi i nga putea tawhito. .

Ae, he iti noa iho, engari i te wa ano kei te pupuri tonu matou i te hoahoanga microservice me te kore e tangohia mai i nga kaiwhakamahi Bitrix te waahi tino pai ki te whakatika i te waehere mai i te roopu whakahaere. I te mutunga, he whiringa tenei; ka taea e koe te whakaoti i te raru o te whakatika i te waehere i tetahi huarahi rereke.

Tūtohi helm

Hei hanga tono ki runga i nga Kubernetes, ka whakamahia e matou te kaiwhakahaere kete Helm.
Mo ta maatau otinga Bitrix i Kubernetes, i tuhia e Sergey Bondarev, to maatau kaiwhakahaere punaha, he tūtohi Helm motuhake.

Ka hangaia e ia nga kaimahi, te whakapai, te cron pods, te whirihora i nga whakaurunga, nga ratonga, me te whakawhiti i nga taurangi mai i nga mea ngaro Kubernetes ki nga putea.

Ka penapenahia e matou te waehere ki Gitlab, ka whakahaerehia ano e matou te hanga Helm mai i Gitlab.

Hei poto, penei te ahua

$ helm upgrade --install project .helm --set image=registrygitlab.local/k8s/bitrix -f .helm/values.yaml --wait --timeout 300 --debug --tiller-namespace=production

Ka taea hoki e te Helm te mahi i te hokinga "kore" mena ka paheke tetahi mea i te wa e tukuna ana. He pai ki te kore koe e mataku "whakatikahia te waehere ma te ftp na te mea kua hinga te prod," engari ka mahia aunoatia e Kubernetes, me te kore e heke.

Hoatuhia

Ae, he kaiwhaiwhai matou mo Gitlab & Gitlab CI, ka whakamahia e matou :)
I te wa e whakauru ana ki a Gitlab ki te whare putunga kaupapa, ka whakarewahia e Gitlab he paipa e tuku ana i te putanga hou o te taiao.

Ngā Taunga:

  • hanga (hanga he ahua Docker hou)
  • whakamātautau (whakamatautau)
  • horoi (tango i te taiao whakamatautau)
  • pana (ka tukuna e matou ki te rehita Docker)
  • tohatoha (ka tukuna e matou te tono ki a Kubernetes ma te Helm).

Southbridge i Chelyabinsk me Bitrix i Kubernetes

Huri, kua rite, me whakatinana!
Ana, patai patai mena kei kona.

Na he aha ta matou mahi

Mai i te tirohanga hangarau:

  • ko te Bitrix kua taunga;
  • "tapahia" a Bitrix ki roto i nga ipu, he iti noa nga mahi o ia mahi;
  • kua tutuki te ahua kore o nga ipu;
  • i whakatauhia te raru ki te whakahou i a Bitrix i Kubernetes;
  • i mahi tonu nga mahi Bitrix katoa (tata katoa);
  • I mahi matou ki te tuku ki nga Kubernetes me te hoki whakamuri i waenga i nga putanga.

Mai i te tirohanga pakihi:

  • te manawanui ki te he;
  • Ko nga taputapu Kubernetes (he ngawari te whakauru ki a Gitlab CI, te whakatakotoranga ngawari, me etahi atu);
  • nga kupuhipa huna (ka kitea anake e te hunga e uru tika ana ki nga kupuhipa);
  • He pai ki te hanga i etahi atu taiao (mo te whanaketanga, nga whakamatautau, me etahi atu) i roto i te hanganga kotahi.

Source: will.com

Tāpiri i te kōrero