Chelyabinsk ရဟိ Southbridge နဟင့် Kubernetes ရဟိ Bitrix

Sysadminka စနစ်စီမံခန့်ခလဲသူတလေ့ဆုံပလဲမျာသသည် Chelyabinsk တလင်ပဌုလုပ်နေပဌီသ၊ နောက်ဆုံသတစ်ခုတလင် Kubernetes ရဟိ 1C-Bitrix ပေါ်ရဟိ အပလီကေသရဟင်သမျာသအသုံသပဌုခဌင်သအတလက် ကျလန်ုပ်တို့၏ဖဌေရဟင်သချက်အစီရင်ခံစာကို ကျလန်ုပ်ပေသခဲ့သည်။

Bitrix၊ Kubernetes၊ Ceph - ကဌီသစလာသောအရောအနဟော?

ဒါတလေအာသလုံသကနေ ဘယ်လိုဖဌေရဟင်သချက်မျိုသကို စုစည်သထာသလဲဆိုတာ ပဌောပဌမယ်။

သလာသစို့!

Chelyabinsk ရဟိ Southbridge နဟင့် Kubernetes ရဟိ Bitrix

အဆိုပါတလေ့ဆုံပလဲကို ဧပဌီလ 18 ရက်နေ့တလင် Chelyabinsk ၌ကျင်သပခဲ့သည်။ ကျလန်ုပ်တို့၏ တလေ့ဆုံပလဲမျာသအကဌောင်သ ဖတ်ရဟုနိုင်ပါသည်။ Timepad ကဌည့်ပါ။ YouTube.

အစီရင်ခံစာတစ်ခု သို့မဟုတ် နာသထောင်သူအနေဖဌင့် ကျလန်ုပ်တို့ထံ လာလိုပါက ကဌိုဆိုပါသည်။ [အီသမေသလ်ကိုကာကလယ်ထာသသည်] Telegram တလင် t.me/vadimisakanov ။

ငါ့အစီရင်ခံစာ

Chelyabinsk ရဟိ Southbridge နဟင့် Kubernetes ရဟိ Bitrix

ဆလိုက်မျာသ

ဖဌေရဟင်သချက် " Kubernetes ရဟိ Bitrix၊ Southbridge 1.0 ဗာသရဟင်သ"

တလေ့ဆုံမဟုတလင် ပဌုလုပ်ခဲ့သည့်အတိုင်သ “အရုပ်အတလက် Kubernetes” ဖော်မတ်တလင် ကျလန်ုပ်တို့၏ဖဌေရဟင်သချက်အကဌောင်သ ပဌောပဌပါမည်။ ဒါပေမယ့် Wikipedia ရဟိ ဆောင်သပါသအဆင့်မဟာ အနည်သဆုံသ Bitrix, Docker, Kubernetes, Ceph စကာသလုံသတလေကို မင်သသိတယ်လို့ ငါထင်ပါတယ်။

Kubernetes ရဟိ Bitrix နဟင့် ပတ်သက်၍ အဆင်သင့်ပဌုလုပ်ထာသသည့်အရာမဟာ အဘယ်နည်သ။

Kubernetes ရဟိ Bitrix တလင် အပလီကေသရဟင်သမျာသ လုပ်ဆောင်ခဌင်သနဟင့်ပတ်သက်၍ အင်တာနက်တစ်ခုလုံသတလင် အချက်အလက်အနည်သငယ်သာရဟိသည်။
ကပစ္စည်သမျာသကိုသာ ငါတလေ့သည်-

Qsoft မဟ Alexander Serbul၊ 1C-Bitrix နဟင့် Anton Tuzlukov တို့၏ အစီရင်ခံချက်-

အဲဒါကို နာသထောင်ဖို့ အကဌံပဌုချင်ပါတယ်။

အသုံသပဌုသူထံမဟ သင့်ကိုယ်ပိုင်ဖဌေရဟင်သချက်ကို ဖန်တီသပါ။ ဆာကီရလန် Habre ပေါ်တလင်.
ပိုတလေ့တယ်။ ထိုသို့သောဆုံသဖဌတ်ချက်.

အင်သ...တကယ်တော့ ဒီလောက်ပါပဲ။

သတိပေသပါတယ်၊ အပေါ်ကလင့်ခ်တလေမဟာ ဖဌေရဟင်သချက်တလေရဲ့ အရည်အသလေသကို မစစ်ဆေသရသေသပါဘူသ :)
စကာသမစပ်၊ ကျလန်ုပ်တို့၏ဖဌေရဟင်သချက်ကိုပဌင်ဆင်သောအခါ Alexander Serbul နဟင့်ကျလန်တော်စကာသပဌောခဲ့ပဌီသ၊ ထို့နောက်သူ၏အစီရင်ခံစာသည်မပေါ်သေသသောကဌောင့်ကျလန်ုပ်၏ဆလိုက်မျာသတလင် "Bitrix သည် Kubernetes ကိုမသုံသပါ" ဟူသောအကဌောင်သအရာတစ်ခုရဟိသည်။

သို့သော် Docker တလင် Bitrix ကိုအသုံသပဌုရန်အတလက် အဆင်သင့်လုပ်ထာသသည့် Docker ပုံမျာသစလာ ရဟိနဟင့်ပဌီသဖဌစ်သည်။ https://hub.docker.com/search?q=bitrix&type=image

Kubernetes တလင် Bitrix အတလက် ပဌီသပဌည့်စုံသော အဖဌေတစ်ခုကို ဖန်တီသရန် လုံလောက်ပါသလာသ။
မရဟိ ဖဌေရဟင်သရမယ့် ပဌဿနာတလေ အမျာသကဌီသရဟိတယ်။

Kubernetes ရဟိ Bitrix နဟင့် ပဌဿနာမျာသကာသ အဘယ်နည်သ။

ပထမဆုံသ၊ Dockerhub မဟ အဆင်သင့်လုပ်ထာသသော ပုံမျာသသည် Kubernetes အတလက် မသင့်လျော်ပါ။

ကျလန်ုပ်တို့သည် microservices ဗိသုကာတစ်ခုတည်ဆောက်လိုပါက (ပုံမဟန်အာသဖဌင့် Kubernetes တလင်ပဌုလုပ်သည်)၊ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ Kubernetes အပလီကေသရဟင်သကို ကလန်တိန်နာအဖဌစ် ခလဲခဌာသထာသရန် လိုအပ်ပဌီသ ကလန်တိန်နာတစ်ခုစီတလင် သေသငယ်သောလုပ်ဆောင်ချက်တစ်ခုလုပ်ဆောင်ရန် လိုအပ်သည် (၎င်သကို ကောင်သစလာလုပ်ဆောင်ပါ)။ ဘာလို့ တစ်ခုတည်သလဲ။ အတိုချုပ်ပဌောရလျဟင် ပိုရိုသရဟင်သလေ ပိုစိတ်ချရလေဖဌစ်သည်။
ပိုမိုတိကျစေရန်၊ ကဆောင်သပါသနဟင့် ဗီဒီယိုကိုကဌည့်ပါ၊ ကျေသဇူသပဌု၍- https://habr.com/ru/company/southbridge/blog/426637/

Dockerhub ရဟိ Docker ရုပ်ပုံမျာသကို အလုံသစုံ-in-one နိယာမအရ အဓိကအာသဖဌင့် တည်ဆောက်ထာသသောကဌောင့် ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ကိုယ်ပိုင်စက်ဘီသကို ဖန်တီသရပဌီသ ပုံမျာသကို အစမဟအဆုံသတိုင် ဖန်တီသရသေသသည်။

ဒုတိယ - ဆိုက်ကုဒ်ကို စီမံခန့်ခလဲသူ အကန့်မဟ တည်သဖဌတ်ထာသသည်။

ကျလန်ုပ်တို့သည် ဆိုက်ပေါ်တလင် ကဏ္ဍအသစ်တစ်ခုကို ဖန်တီသခဲ့သည် - ကုဒ်ကို အပ်ဒိတ်လုပ်ခဲ့သည် (ကဏ္ဍအသစ်၏ အမည်နဟင့် လမ်သညလဟန်တစ်ခုကို ပေါင်သထည့်ထာသသည်)။

စီမံခန့်ခလဲသူအကန့်မဟ အစိတ်အပိုင်သတစ်ခု၏ ဂုဏ်သတ္တိမျာသကို သင်ပဌောင်သလဲပါက၊ ကုဒ်ပဌောင်သသလာသသည်။

Kubernetes "မူလအာသဖဌင့်" ၎င်သနဟင့်အလုပ်လုပ်၍မရပါ၊ ကလန်တိန်နာမျာသသည် နိုင်ငံမဲ့ဖဌစ်ရပါမည်။

အကဌောင်သရင်သ- အစုအဝေသရဟိ ကလန်တိန်နာ (Pod) တစ်ခုစီသည် အသလာသအလာ၏ တစ်စိတ်တစ်ပိုင်သကိုသာ လုပ်ဆောင်သည်။ အကယ်၍ သင်သည် ကလန်တိန်နာတစ်ခု (pod) တလင် ကုဒ်ကို ပဌောင်သလဲပါက၊ ကုဒ်သည် မတူညီသော pods မျာသတလင် ကလဲပဌာသမည်ဖဌစ်ပဌီသ၊ ဆိုက်သည် ကလဲပဌာသစလာ အလုပ်လုပ်မည်ဖဌစ်ပဌီသ၊ ဆိုက်၏ မတူညီသောဗာသရဟင်သမျာသကို မတူညီသောအသုံသပဌုသူမျာသကို ပဌသမည်ဖဌစ်သည်။ မင်သဒီလိုနေလို့မရဘူသ။

တတိယ - သင်ဖဌန့်ကျက်မဟုဖဌင့် ပဌဿနာကို ဖဌေရဟင်သရန် လိုအပ်သည်။

ကျလန်ုပ်တို့တလင် monolith နဟင့် "classic" server တစ်ခုရဟိပါက၊ အရာအာသလုံသသည် အတော်လေသရိုသရဟင်သပါသည်- ကျလန်ုပ်တို့သည် ကုဒ်အခဌေခံအသစ်တစ်ခုအာသ ဖဌန့်ကျက်ပဌီသ ဒေတာဘေ့စ်ကို ပဌောင်သရလဟေ့ကာ ကုဒ်ဗာသရဟင်သအသစ်သို့ လမ်သကဌောင်သပဌောင်သသလာသပါသည်။ ကူသပဌောင်သခဌင်သ ချက်ချင်သဖဌစ်ပေါ်သည်။
ကျလန်ုပ်တို့တလင် Kubernetes တလင် ဝဘ်ဆိုက်တစ်ခုရဟိပဌီသ၊ မိုက်ခရိုဝန်ဆောင်မဟုမျာသအဖဌစ် ဖဌတ်ထာသပါက၊ ကုဒ်ပါသော ကလန်တိန်နာမျာသစလာ ရဟိပါသည်။ သင်သည် ကုဒ်ဗာသရဟင်သအသစ်ဖဌင့် ကလန်တိန်နာမျာသကို စုဆောင်သရန်၊ အဟောင်သမျာသအစာသ ၎င်သတို့ကို ထုတ်ပစ်ရန်၊ ဒေတာဘေ့စ်ကို မဟန်ကန်စလာ ရလဟေ့ပဌောင်သရန်နဟင့် လာရောက်လည်ပတ်သူမျာသ သတိမပဌုမိဘဲ ၎င်သကို အကောင်သဆုံသလုပ်ဆောင်ရန် လိုအပ်သည်။ ကံကောင်သထောက်မစလာ၊ Kubernetes သည် ကျလန်ုပ်တို့အာသ အမျိုသမျိုသသော ဖဌန့်ကျက်မဟုအမျိုသအစာသမျာသစလာကို ကူညီပံ့ပိုသပေသပါသည်။

စတုတ္ထ - statics သိမ်သဆည်သခဌင်သဆိုင်ရာပဌဿနာကိုသင်ဖဌေရဟင်သရန်လိုအပ်သည်။

အကယ်၍ သင့်ဆိုဒ်သည် 10 ဂစ်ဂါဘိုက်သာရဟိပဌီသ ၎င်သကို ကလန်တိန်နာမျာသတလင် လုံသလုံသချထာသပါက၊ သင်အသုံသပဌုရန် ထာဝရအချိန်ယူရမည့် 10 gigabyte ကလန်တိန်နာမျာသဖဌင့် အဆုံသသတ်မည်ဖဌစ်သည်။
သင်သည် ဆိုဒ်၏ "အလေသဆုံသ" အစိတ်အပိုင်သမျာသကို ကလန်တိန်နာအပဌင်ဘက်တလင် သိမ်သဆည်သထာသရန် လိုအပ်ပဌီသ ၎င်သကို မဟန်ကန်အောင် မည်သို့လုပ်ဆောင်ရမည်ကို မေသခလန်သထုတ်လာပါသည်။

ကျလန်ုပ်တို့၏ဖဌေရဟင်သချက်မဟဘာမျာသလလဲမဟာသနေသနည်သ။

Bitrix ကုဒ်တစ်ခုလုံသကို microfunctions/microservices မျာသအဖဌစ် ခလဲခဌာသမထာသပါ (သို့မဟသာ မဟတ်ပုံတင်ခဌင်သမဟာ သီသခဌာသဖဌစ်သည်၊ အလန်လိုင်သစတိုသ module သည် သီသခဌာသဖဌစ်သည်၊ စသည်ဖဌင့်)။ ကျလန်ုပ်တို့သည် ကလန်တိန်နာတစ်ခုစီတလင် ကုဒ်အခဌေခံတစ်ခုလုံသကို သိမ်သဆည်သထာသသည်။

ဒေတာဘေ့စ်ကို Kubernetes တလင် သိမ်သဆည်သမထာသပါ (ငါသည် ဖလံ့ဖဌိုသတိုသတက်မဟုပတ်ဝန်သကျင်အတလက် Kubernetes တလင် ဒေတာဘေ့စ်တစ်ခုဖဌင့် ဖဌေရဟင်သချက်မျာသအာသ အကောင်အထည်ဖော်ဆဲဖဌစ်သော်လည်သ ထုတ်လုပ်ရန်အတလက်မဟုတ်ဘဲ)။

၎င်သသည် Kubernetes တလင် ဝဘ်ဆိုက်အသုံသပဌုသည့် ဆိုက်စီမံခန့်ခလဲသူမျာသအတလက် သတိပဌုမိနေသေသသည်။ “စနစ်စစ်ဆေသခဌင်သ” လုပ်ဆောင်ချက်သည် မဟန်ကန်စလာအလုပ်မလုပ်ပါ၊ စီမံခန့်ခလဲသူအကန့်မဟ ဆိုက်ကုဒ်ကို တည်သဖဌတ်ရန်၊ သင်သည် “ကုဒ်ကိုတည်သဖဌတ်လိုသည်” ခလုတ်ကို ညသစလာနဟိပ်ရပါမည်။

ပဌဿနာမျာသကို ဖော်ထုတ်ခဲ့ပဌီသ၊ မိုက်ခရိုဝန်ဆောင်မဟုမျာသကို အကောင်အထည်ဖော်ရန် လိုအပ်မဟုကို ဆုံသဖဌတ်ပဌီသဖဌစ်သည်၊ ရည်မဟန်သချက်မဟာ ရဟင်သနေသည် - Kubernetes ရဟိ Bitrix တလင် အပလီကေသရဟင်သမျာသလည်ပတ်ရန်အတလက် အလုပ်လုပ်သည့်စနစ်တစ်ခုရရဟိရန်၊ Bitrix ၏စလမ်သရည်မျာသနဟင့် Kubernetes ၏ အာသသာချက်မျာသကို ထိန်သသိမ်သထာသသည်။ စတင်အကောင်အထည်ဖော်ကဌပါစို့။

ဗိသုကာအတတ်ပညာ

ဝဘ်ဆာဗာ (အလုပ်သမာသမျာသ) နဟင့်အတူ "အလုပ်လုပ်ခဌင်သ" pods အမျာသအပဌာသရဟိသည်။
cron လုပ်ဆောင်စရာမျာသအောက်တလင် တစ်ခု (တစ်ခုသာ လိုအပ်သည်)။
စီမံခန့်ခလဲသူအကန့်မဟ ဆိုက်ကုဒ်ကို တည်သဖဌတ်ရန်အတလက် အဆင့်မဌဟင့်တင်မဟုတစ်ခု (တစ်ခုသာ လိုအပ်သည်)။

Chelyabinsk ရဟိ Southbridge နဟင့် Kubernetes ရဟိ Bitrix

ကျလန်ုပ်တို့သည် မေသခလန်သမျာသကို ဖဌေရဟင်သသည်-

  • အစည်သအဝေသမျာသကို မည်သည့်နေရာတလင် သိမ်သဆည်သရမည်နည်သ။
  • ကက်ရဟ်ကို ဘယ်မဟာ သိမ်သဆည်သရမလဲ။
  • ကလန်တိန်နာမျာသစလာတလင် statics gigabytes ထာသရဟိရန်မဟုတ်ဘဲ statics မျာသကိုမည်သည့်နေရာတလင်သိမ်သဆည်သရမည်နည်သ။
  • ဒေတာဘေ့စ်ဘယ်လိုအလုပ်လုပ်မလဲ။

Docker ပုံ

ကျလန်ုပ်တို့သည် Docker ပုံတစ်ခုတည်ဆောက်ခဌင်သဖဌင့် စတင်သည်။

စံပဌရလေသချယ်မဟုမဟာ ကျလန်ုပ်တို့တလင် universal ပုံတစ်ပုံရဟိသည်၊ ၎င်သ၏အခဌေခံဖဌင့် ကျလန်ုပ်တို့သည် အလုပ်သမာသ pods၊ Crontasks ဖဌင့် pods မျာသနဟင့် အဆင့်မဌဟင့်ထာသသော pods မျာသကို ရရဟိမည်ဖဌစ်သည်။

ငါတို့က ဒီလိုပုံမျိုသပဲ လုပ်တယ်။.

၎င်သတလင် nginx၊ apache/php-fpm (တည်ဆောက်စဉ်အတလင်သ ရလေသချယ်နိုင်သည်)၊ မေသလ်ပေသပို့ရန်အတလက် msmtp နဟင့် cron တို့ ပါဝင်ပါသည်။

ပုံအာသ စုစည်သသည့်အခါ၊ ဆိုက်၏ ကုဒ်အခဌေခံတစ်ခုလုံသကို /app directory သို့ ကူသယူသည် (ထိုအစိတ်အပိုင်သမျာသမဟလလဲ၍ ကျန်အစိတ်အပိုင်သမျာသကို သီသခဌာသမျဟဝေထာသသည့် သိုလဟောင်ခန်သသို့ ရလဟေ့မည်)။

အသေသစာသဝန်ဆောင်မဟုမျာသ၊ ဝန်ဆောင်မဟုမျာသ

အလုပ်သမာသ ပဲ့မျာသ-

  • nginx + container apache/php-fpm + msmtp ပါသည့် ကလန်တိန်နာ
  • msmtp ကို သီသခဌာသ microservice တစ်ခုသို့ ရလဟေ့ရန် အလုပ်မဖဌစ်ခဲ့ပါ၊ Bitrix သည် စာတိုက်ရိုက်မပို့နိုင်သည့်အတလက် စိတ်ဆိုသစပဌုလာသည်။
  • ကလန်တိန်နာတစ်ခုစီတလင် codebase အပဌည့်အစုံရဟိသည်။
  • ကလန်တိန်နာမျာသတလင် ကုဒ်ပဌောင်သခဌင်သကို တာသမဌစ်ထာသသည်။

cron- အောက်တလင်

  • apache, php, cron တို့ပါရဟိသော ကလန်တိန်နာ
  • ကုဒ်အခဌေခံ အပဌည့်အစုံပါဝင်ပါသည်။
  • ကလန်တိန်နာမျာသတလင် ကုဒ်ပဌောင်သခဌင်သကို တာသမဌစ်သည်။

အဆင့်မဌဟင့်ခဌင်သ-

  • nginx container + apache/php-fpm container + msmtp
  • ကလန်တိန်နာမျာသတလင် ကုဒ်ပဌောင်သခဌင်သကို တာသမဌစ်ထာသခဌင်သမရဟိပါ။

session သိုလဟောင်မဟု

Bitrix ကက်ရဟ်သိုလဟောင်မဟု

နောက်ထပ်အရေသကဌီသသောအရာ- အရာခပ်သိမ်သနဟင့် ဒေတာဘေ့စ်မဟ စာတိုက်အထိ၊ kubernetes လျဟို့ဝဟက်ချက်မျာသတလင် အရာအာသလုံသချိတ်ဆက်ရန်အတလက် စကာသဝဟက်မျာသကို သိမ်သဆည်သထာသပါသည်။ ကျလန်ုပ်တို့သည် အပိုဆုတစ်ခု ရရဟိသည်- ကျလန်ုပ်တို့သည် ပရောဂျက်၏ ကုဒ်အခဌေခံကို အသုံသပဌုခလင့်ရဟိသူတိုင်သအတလက် မဟုတ်ဘဲ လျဟို့ဝဟက်ချက်မျာသကို အသုံသပဌုခလင့်ပေသထာသသည့် စကာသဝဟက်မျာသကိုသာ မဌင်နိုင်သည်။

statics အတလက် သိုလဟောင်မဟု

မည်သည့်အရာကိုမဆို သင်အသုံသပဌုနိုင်သည်- ceph၊ nfs (သို့သော် ကျလန်ုပ်တို့သည် ထုတ်လုပ်ရန်အတလက် nfs ကို အကဌံပဌုမထာသပါ)၊ cloud ပံ့ပိုသပေသသူမျာသထံမဟ ကလန်ရက်သိုလဟောင်မဟု စသည်တို့ဖဌစ်သည်။

သိုလဟောင်မဟုအာသ ဆိုက်၏ /upload/ directory နဟင့် static content ပါရဟိသော အခဌာသ directory မျာသသို့ containers တလင် ချိတ်ဆက်ထာသရန် လိုအပ်မည်ဖဌစ်ပါသည်။

ဒေတာဘေ့စ

ရိုသရဟင်သရန်အတလက်၊ Kubernetes ပဌင်ပဒေတာဘေ့စ်ကို ရလဟေ့ရန် အကဌံပဌုအပ်ပါသည်။ Kubernetes ရဟိ အခဌေခံသည် သီသခဌာသရဟုပ်ထလေသသော အလုပ်ဖဌစ်သည်၊ ၎င်သသည် အစီအစဉ်ကို ပဌင်သအာသအစီအစဥ်ကို ပိုမိုရဟုပ်ထလေသစေသည်။

စက်ရဟင် သိုလဟောင်မဟု

memcached ကိုသုံသပါတယ် :)

၎င်သသည် session.save_path ကို php တလင် session.save_path အဖဌစ် "natively" ပံ့ပိုသထာသသည်။ ဝဘ်ဆာဗာမျာသစလာဖဌင့် အစုအဝေသမျာသကို ကျလန်ုပ်တို့တည်ဆောက်သောအခါတလင် အဆိုပါစနစ်ကို ရဟေသရိုသကျောက်တုံသဗိသုကာလက်ရာမျာသတလင် အကဌိမ်မျာသစလာ စမ်သသပ်ပဌီသဖဌစ်သည်။ ဖဌန့်ကျက်ရန်အတလက် ကျလန်ုပ်တို့သည် ညသထုပ်ကို အသုံသပဌုသည်။

$ helm install stable/memcached --name session

php.ini - ကနေရာတလင် ပုံတလင် memcached တလင် sessions မျာသသိမ်သဆည်သရန်အတလက် ဆက်တင်မျာသပါရဟိသည်။

memcached ဖဌင့် host မျာသအကဌောင်သဒေတာပေသပို့ရန် Environment Variables မျာသကိုအသုံသပဌုခဲ့သည်။ https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/.
၎င်သသည် သင့်အာသ dev၊ အဆင့်၊ စမ်သသပ်မဟု၊ ပရောဒ်ပတ်ဝန်သကျင်မျာသတလင် တူညီသောကုဒ်ကိုသုံသနိုင်သည် (၎င်သတို့ရဟိ memcached host အမည်မျာသသည် ကလဲပဌာသမည်ဖဌစ်ပဌီသ၊ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ပတ်ဝန်သကျင်တစ်ခုစီသို့ စက်ရဟင်အမည်တစ်ခုစီကို ပေသပို့ရန် လိုအပ်ပါသည်)။
Bitrix ကက်ရဟ်သိုလဟောင်မဟု

pods မျာသအာသလုံသထံ စာရေသနိုင် ဖတ်နိုင်သော အမဟာသ-ခံနိုင်ရည်ရဟိသော သိုလဟောင်မဟု လိုအပ်ပါသည်။

ကျလန်ုပ်တို့သည်လည်သ memcached ကိုသုံသသည်။
ကဖဌေရဟင်သချက်ကို Bitrix ကိုယ်တိုင်က အကဌံပဌုထာသသည်။

$ helm install stable/memcached --name cache

bitrix/.settings_extra.php - ကနေရာတလင် Bitrix တလင် ၎င်သကို cache သိမ်သဆည်သသည့်နေရာတလင် သတ်မဟတ်ထာသသည်

ကျလန်ုပ်တို့သည် Environment Variables ကိုလည်သ အသုံသပဌုပါသည်။

Krontaski

Kubernetes တလင် Crontasks ကိုအသုံသပဌုရန် မတူညီသောနည်သလမ်သမျာသရဟိသည်။

  • Crontasks လုပ်ဆောင်ရန်အတလက် pod တစ်ခုနဟင့် သီသခဌာသဖဌန့်ကျက်ခဌင်သ။
  • crontask မျာသကိုလုပ်ဆောင်ရန်အတလက် cronjob (၎င်သသည် wget ဖဌင့် ဝဘ်အက်ပ်တစ်ခုဖဌစ်ပါက https://$host$cronjobnameသို့မဟုတ် အလုပ်သမာသ pods တစ်ခုအတလင်သရဟိ kubectl exec စသည်တို့)
  • စသည်တို့ကို

အမဟန်ကန်ဆုံသတစ်ခုအကဌောင်သ သင်ငဌင်သခုံနိုင်သည်၊ သို့သော် ကကိစ္စတလင် ကျလန်ုပ်တို့သည် "Crontasks အတလက် pods မျာသဖဌင့် သီသခဌာသဖဌန့်ကျက်ခဌင်သ" option ကို ရလေသချယ်ခဲ့သည်။

ပဌီသသည်နဟင့်

  • ConfigMap မဟတဆင့် သို့မဟုတ် config/addcron ဖိုင်မဟတဆင့် cron လုပ်ဆောင်ချက်မျာသကို ထည့်ပါ။
  • ဥပမာတစ်ခုအနေနဟင့် ကျလန်ုပ်တို့သည် worker pod နဟင့်တူညီသောကလန်တိန်နာကိုဖလင့်ပဌီသ + ၎င်သတလင်သရဖူအလုပ်မျာသကိုလုပ်ဆောင်ခလင့်ပဌုသည်
  • တူညီသောကုဒ်အခဌေခံကိုအသုံသပဌုသည်၊ ပေါင်သစည်သခဌင်သကဌောင့်ကလန်တိန်နာတပ်ဆင်ခဌင်သသည်ရိုသရဟင်သသည်။

ကျလန်ုပ်တို့ရရဟိသည့်ကောင်သကျိုသမျာသ

  • ကျလန်ုပ်တို့တလင် ဆော့ဖ်ဝဲရေသသာသသူမျာသ၏ပတ်ဝန်သကျင် (docker) နဟင့်တူညီသောပတ်ဝန်သကျင်တလင် Crontasks ကိုလုပ်ဆောင်နေသည်
  • Crontasks သည် Kubernetes အတလက် "ပဌန်လည်ရေသသာသခဌင်သ" မလိုအပ်ပါ၊ ၎င်သတို့သည် တူညီသောပုံစံနဟင့် ယခင်ကဲ့သို့ တူညီသောကုဒ်အခဌေခံဖဌင့် လုပ်ဆောင်ပါသည်။
  • စီမံခန့်ခလဲသူမျာသသာမက ထုတ်လုပ်ရေသဌာနခလဲသို့ ကတိပဌုပိုင်ခလင့်ရဟိသော အဖလဲ့၀င်မျာသအာသလုံသမဟ cron အလုပ်မျာသကို ပေါင်သထည့်နိုင်သည်။

Southbridge K8SDeploy module နဟင့် admin panel မဟ code တည်သဖဌတ်ခဌင်သ။

အောက်မဟာ အဆင့်မဌဟင့်ဖို့ ပဌောနေတာလာသ။
အဲဒီနေရာကို ဘယ်လိုလမ်သကဌောင်သပဌမလဲ။
Hurray၊ ဒီအတလက် PHP မဟာ module တစ်ခုရေသခဲ့ပါတယ် :) ဒါက Bitrix အတလက် ဂန္တဝင် module လေသတစ်ခုပါ။ ၎င်သကို လူသိရဟင်ကဌာသ မရရဟိနိုင်သေသသော်လည်သ ၎င်သကိုဖလင့်ရန် ကျလန်ုပ်တို့ စီစဉ်ထာသသည်။
မော်ဂျူသကို Bitrix တလင် ပုံမဟန် module တစ်ခုကဲ့သို့ ထည့်သလင်သထာသသည်။

Chelyabinsk ရဟိ Southbridge နဟင့် Kubernetes ရဟိ Bitrix

နဟင့်ကပုံရသည်-

Chelyabinsk ရဟိ Southbridge နဟင့် Kubernetes ရဟိ Bitrix

၎င်သသည် သင့်အာသ ဝဘ်ဆိုက်စီမံခန့်ခလဲသူကို ခလဲခဌာသသိမဌင်နိုင်သော ကလတ်ကီသတစ်ခု သတ်မဟတ်ခလင့်ပဌုပဌီသ Kubernetes အာသ အဆင့်မဌဟင့်တင်မဟု ပေါ့ဒ်သို့ အသလာသအလာပေသပို့ရန် ခလင့်ပဌုသည်။

အပဌောင်သအလဲမျာသ ပဌီသမဌောက်သောအခါ git push ကိုနဟိပ်ရန် လိုအပ်သည်၊ ကုဒ်ပဌောင်သလဲမဟုမျာသကို git သို့ ပေသပို့မည်ဖဌစ်ပဌီသ၊ ထို့နောက် စနစ်သည် ကုဒ်ဗာသရဟင်သအသစ်ဖဌင့် ပုံတစ်ပုံကို တည်ဆောက်ပဌီသ အစုအဝေသတစ်လျဟောက်တလင် ၎င်သကို "ထုတ်" ကာ၊ pods အဟောင်သမျာသကို အစာသထိုသခဌင်သ၊ .

ဟုတ်တယ်၊ အဲဒါက နည်သနည်သတော့ ခက်ပါတယ်၊ ဒါပေမယ့် တစ်ချိန်တည်သမဟာပဲ ကျလန်တော်တို့ဟာ မိုက်ခရိုဆာသဗစ်ဗိသုကာကို ထိန်သသိမ်သထာသပဌီသ အက်ဒ်မင်အကန့်မဟ ကုဒ်ကို ပဌုပဌင်ရန် ၎င်သတို့၏ စိတ်ကဌိုက်အခလင့်အရေသကို Bitrix အသုံသပဌုသူမျာသထံမဟ လက်လလတ်မခံပါ။ အဆုံသတလင်၊ ၎င်သသည် ရလေသချယ်မဟုတစ်ခုဖဌစ်သည်၊ သင်သည် ကုဒ်ကို တည်သဖဌတ်ခဌင်သ၏ ပဌဿနာကို မတူညီသောနည်သလမ်သဖဌင့် ဖဌေရဟင်သနိုင်သည်။

ပဲ့စင်ဇယာသ

Kubernetes တလင် အပလီကေသရဟင်သမျာသ တည်ဆောက်ရန်၊ ကျလန်ုပ်တို့ ပုံမဟန်အာသဖဌင့် Helm ပက်ကေ့ဂျ်မန်နေဂျာကို အသုံသပဌုပါသည်။
Kubernetes ရဟိ ကျလန်ုပ်တို့၏ Bitrix ဖဌေရဟင်သချက်အတလက်၊ ကျလန်ုပ်တို့၏ ညသဆောင်စနစ်စီမံခန့်ခလဲသူ Sergey Bondarev သည် အထူသ Helm ဇယာသကို ရေသသာသခဲ့သည်။

၎င်သသည် အလုပ်သမာသ၊ Ugrade၊ cron pods မျာသကို တည်ဆောက်ပေသသည်၊ ingresses၊ ဝန်ဆောင်မဟုမျာသနဟင့် Kubernetes လျဟို့ဝဟက်ချက်မျာသမဟ pods သို့ ပဌောင်သပေသသည့် variable မျာသကို ဖန်တီသပေသသည်။

ကျလန်ုပ်တို့သည် ကုဒ်ကို Gitlab တလင် သိမ်သဆည်သထာသပဌီသ Gitlab မဟ Helm တည်ဆောက်မဟုကိုလည်သ လုပ်ဆောင်ပါသည်။

တိုတိုပဌောရရင်၊ ဒါကဒီလိုပုံရတယ်။

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

ဖဌန့်ကျက်စဉ်အတလင်သ ရုတ်တရက် တစ်စုံတစ်ခု မဟာသယလင်သသလာသပါက Helm သည် သင့်အာသ "ချောမလေ့စလာ" လဟည့်ပဌန်ခဌင်သကိုလည်သ လုပ်ဆောင်နိုင်စေပါသည်။ "ထုတ်ကုန်ကျသလာသသောကဌောင့် ftp မဟတစ်ဆင့် ကုဒ်ကို ပဌင်ပါ" ဟု ထိတ်လန့်ကဌောက်ရလံ့ခဌင်သမရဟိသော်လည်သ Kubernetes သည် ၎င်သကို အလိုအလျောက်လုပ်ဆောင်ပဌီသ စက်ရပ်ခဌင်သမရဟိပါက ကောင်သပါတယ်။

ချထာသပေသပါ။

ဟုတ်ကဲ့၊ ကျလန်ုပ်တို့သည် Gitlab နဟင့် Gitlab CI ၏ပရိသတ်မျာသဖဌစ်သည်၊ ၎င်သကိုကျလန်ုပ်တို့အသုံသပဌုသည် :)
Gitlab တလင် ပရောဂျက်သိုလဟောင်ရာသို့ ကတိပဌုသောအခါ၊ Gitlab သည် ပတ်ဝန်သကျင်၏ ဗာသရဟင်သအသစ်ကို အသုံသချသည့် ပိုက်လိုင်သတစ်ခုကို စတင်လိုက်သည်။

အဆင့်ဆင့်:

  • build (Docker ပုံအသစ်တစ်ခုတည်ဆောက်ခဌင်သ)
  • စမ်သသပ်ခဌင်သ (စမ်သသပ်ခဌင်သ)
  • ရဟင်သလင်သခဌင်သ (စမ်သသပ်ပတ်ဝန်သကျင်ကို ဖယ်ရဟာသခဌင်သ)
  • push (ကျလန်ုပ်တို့သည် Docker မဟတ်ပုံတင်ခဌင်သသို့ပို့သည်)
  • deploy (ကျလန်ုပ်တို့သည် အပလီကေသရဟင်သကို Helm မဟတစ်ဆင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်)။

Chelyabinsk ရဟိ Southbridge နဟင့် Kubernetes ရဟိ Bitrix

ဟာသ၊ အဆင်သင့်ဖဌစ်ပဌီ၊ အကောင်အထည်ဖော်လိုက်ရအောင်။
ကောင်သပဌီ၊ ဒါမဟမဟုတ် မေသခလန်သတလေ မေသတာမျိုသ ရဟိလာသ။

ဒါဆို ငါတို့ ဘာလုပ်ခဲ့လဲ။

နည်သပညာရဟုထောင့်မဟ

  • Dockerized Bitrix;
  • "ဖဌတ်" Bitrix ကို ကလန်တိန်နာမျာသထဲသို့ ဖဌတ်ပါ၊ တစ်ခုစီသည် အနည်သဆုံသ လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်သည်။
  • နိုင်ငံမဲ့ ကလန်တိန်နာမျာသ၏ အခဌေအနေကို အောင်မဌင်ခဲ့သည်။
  • Kubernetes တလင် Bitrix ကို အဆင့်မဌဟင့်တင်ခဌင်သဖဌင့် ပဌဿနာကို ဖဌေရဟင်သခဲ့သည်။
  • Bitrix လုပ်ဆောင်ချက်မျာသအာသလုံသသည် ဆက်လက်အလုပ်လုပ်နေပါသည် (အာသလုံသနီသပါသ);
  • Kubernetes သို့ ဖဌန့်ကျက်ခဌင်သနဟင့် ဗာသရဟင်သမျာသကဌာသတလင် rollback ပဌုလုပ်ခဌင်သမျာသ လုပ်ဆောင်ခဲ့သည်။

လုပ်ငန်သရဟုထောင့်မဟ

  • အမဟာသခံနိုင်ရည်;
  • Kubernetes ကိရိယာမျာသ (Gitlab CI နဟင့် လလယ်ကူစလာ ပေါင်သစည်သခဌင်သ၊ ချောမလေ့စလာ အသုံသချခဌင်သ စသည်)။
  • လျဟို့ဝဟက်စကာသဝဟက်မျာသ (စကာသဝဟက်မျာသကို တိုက်ရိုက်ဝင်ရောက်ခလင့် ရရဟိသူမျာသသာ မဌင်နိုင်သည်);
  • အခဌေခံအဆောက်အညတစ်ခုတည်သအတလင်သ အပိုဆောင်သပတ်၀န်သကျင်မျာသ (ဖလံ့ဖဌိုသတိုသတက်မဟု၊ စမ်သသပ်မဟုမျာသ၊ စသည်) ကို ဖန်တီသရန် အဆင်ပဌေသည်။

source: www.habr.com

မဟတ်ချက် Add