k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

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

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

ကျလန်ုပ်တို့သည် B2B နဟင့် B2C အတလက် အလန်လိုင်သကုန်သလယ်မဟုနဟင့် fintech ထုတ်ကုန်မျာသအတလက် ဝန်ဆောင်မဟုမျာသကို ဖော်ဆောင်ပေသသော fintech ကုမ္ပဏီ Exness မဟဖဌစ်သည်။ ကျလန်ုပ်တို့၏ R&D တလင် မတူညီသောအဖလဲ့မျာသစလာရဟိပဌီသ ဖလံ့ဖဌိုသတိုသတက်ရေသဌာနတလင် ဝန်ထမ်သ 100+ ရဟိသည်။

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ဆော့ဖ်ဝဲရေသသာသသူမျာသအတလက် ကုဒ်စုဆောင်သပဌီသ လုပ်ဆောင်ရန် ပလပ်ဖောင်သအတလက် တာဝန်ရဟိသောအဖလဲ့ကို ကိုယ်စာသပဌုပါသည်။ အထူသသဖဌင့်၊ အပလီကေသရဟင်သမျာသမဟ မက်ထရစ်မျာသ၊ မဟတ်တမ်သမျာသနဟင့် ဖဌစ်ရပ်မျာသကို စုဆောင်သခဌင်သ၊ သိမ်သဆည်သခဌင်သနဟင့် အစီရင်ခံခဌင်သတို့အတလက် ကျလန်ုပ်တို့တလင် တာဝန်ရဟိပါသည်။ ကျလန်ုပ်တို့သည် လက်ရဟိတလင် ထုတ်လုပ်မဟုပတ်ဝန်သကျင်တလင် Docker ကလန်တိန်နာသုံသထောင်ခန့်ကို လည်ပတ်နေပဌီသ ကျလန်ုပ်တို့၏ 50 TB ကဌီသမာသသောဒေတာသိုလဟောင်မဟုကို ထိန်သသိမ်သကာ ကျလန်ုပ်တို့၏အခဌေခံအဆောက်အအုံပတ်ဝန်သကျင်တလင် တည်ဆောက်ထာသသည့် ဗိသုကာဆိုင်ရာဖဌေရဟင်သနည်သမျာသ- Kubernetes၊ Rancher နဟင့် အမျာသသူငဟာ cloud ဝန်ဆောင်မဟုပေသသူမျာသ။ 

ကျလန်ုပ်တို့၏လဟုံ့ဆော်မဟု

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

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

အချို့သော ကလန်တိန်နာအချို့ ပဌုတ်ကျနေချိန်တလင် အဘယ်ကဌောင့် ရပ်နေရသနည်သ။ ဘယ်ပုံသကို အပဌစ်တင်ရမလဲ။ ပဌီသနောက်၊ ကလန်တိန်နာ၏အပဌင်ဘက်သည် တူညီသော်လည်သ တစ်ခုစီတလင် ၎င်သ၏ကိုယ်ပိုင် Neo ရဟိသည်။

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

ကျလန်ုပ်တို့၏ developer မျာသသည် အရည်အချင်သရဟိသူမျာသဖဌစ်သည်။ သူတို့ဟာ ကုမ္ပဏီကို အမဌတ်အစလန်သ ပေသမယ့် ဝန်ဆောင်မဟုကောင်သတလေ ပေသတယ်။ သို့သော် အပလီကေသရဟင်သမျာသပါရဟိသော ကလန်တိန်နာမျာသ လမ်သလလဲသလာသသောအခါတလင် ပျက်ကလက်မဟုမျာသ ရဟိပါသည်။ ကလန်တိန်နာတစ်ခုသည် CPU အလလန်အကျလံစာသသုံသသည်၊ နောက်တစ်ခုသည် ကလန်ရက်ကိုစာသသုံသသည်၊ တတိယတစ်ခုသည် I/O လုပ်ဆောင်ချက်မျာသကို စာသသုံသသည်၊ စတုတ္ထတစ်ခုသည် sockets မျာသနဟင့်လုပ်ဆောင်သည်မျာသကို လုံသဝမသိရပါ။ အာသလုံသပဌုတ်ကျပဌီသ သင်္ဘောနစ်သလာသတယ်။ 

အေသဂျင့်မျာသ

အတလင်သတလင် ဖဌစ်ပျက်နေသည်မျာသကို နာသလည်ရန်၊ အေသဂျင့်မျာသကို ကလန်တိန်နာမျာသတလင် တိုက်ရိုက်ထာသရန် ဆုံသဖဌတ်ခဲ့သည်။

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

ကအေသဂျင့်မျာသသည် ကလန်တိန်နာမျာသကို တစ်ခုနဟင့်တစ်ခု မကလဲစေသော အခဌေအနေတလင် ထိန်သသိမ်သထာသသည့် ပရိုဂရမ်မျာသဖဌစ်သည်။ အေသဂျင့်မျာသသည် စံသတ်မဟတ်ထာသပဌီသ၊ ၎င်သသည် ဝန်ဆောင်မဟုပေသသည့် ကလန်တိန်နာမျာသအတလက် စံချိန်စံညလဟန်သသတ်မဟတ်ထာသသော ချဉ်သကပ်မဟုကို ခလင့်ပဌုသည်။ 

ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ အေသဂျင့်မျာသသည် မဟတ်တမ်သမျာသကို စံဖော်မတ်တစ်ခုဖဌင့် ပံ့ပိုသပေသရမည်၊ တဂ်လုပ်ထာသပဌီသ အရဟိန်မဌဟင့်ထာသသည်။ ၎င်သတို့သည် ကျလန်ုပ်တို့အာသ လုပ်ငန်သအသုံသချမဟုရဟုထောင့်မဟ တိုသချဲ့နိုင်သော စံချိန်စံညလဟန်သတိုင်သတာမဟုမျာသကိုလည်သ ပေသသင့်သည်။

အေသဂျင့်မျာသသည် မတူညီသောပုံမျာသ (Debian၊ Alpine၊ Centos စသည်) တို့ကို ပံ့ပိုသပေသသည့် မတူညီသော စုစည်သမဟုစနစ်မျာသတလင် အလုပ်လုပ်နိုင်သော လည်ပတ်မဟုနဟင့် ပဌုပဌင်ထိန်သသိမ်သမဟုအတလက် အသုံသဝင်မဟုမျာသကို ဆိုလိုသည်။

နောက်ဆုံသတလင်၊ အေသဂျင့်မျာသသည် Docker ဖိုင်မျာသပါ၀င်သည့် ရိုသရဟင်သသော CI/CD ကို ပံ့ပိုသရပါမည်။ မဟုတ်ပါက၊ သင်္ဘောသည် ကလဲသလာသလိမ့်မည်၊ အကဌောင်သမဟာ ကလန်တိန်နာမျာသကို "ကောက်နေသော" သံလမ်သမျာသအတိုင်သ ပို့ဆောင်ပေသမည်ဖဌစ်သည်။

လုပ်ငန်သစဉ်တည်ဆောက်ပဌီသ ပစ်မဟတ်ပုံသဏ္ဌာန်စက်

အရာအာသလုံသကို စံချိန်စံညလဟန်သမီပဌီသ စီမံခန့်ခလဲနိုင်စေရန်အတလက် စံတည်ဆောက်မဟုလုပ်ငန်သစဉ်အချို့ကို လိုက်နာရန် လိုအပ်သည်။ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ကလန်တိန်နာမျာသဖဌင့် ကလန်တိန်နာမျာသကို စုဆောင်သရန် ဆုံသဖဌတ်ခဲ့သည် - ကသည်မဟာ ပဌန်လဟည့်ခဌင်သပင်ဖဌစ်သည်။

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

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

ကျလန်ုပ်တို့ ၎င်သကို မည်သို့အသုံသပဌုသနည်သ။ ကျလန်ုပ်တို့တလင် ကလန်တိန်နာတစ်ခုပါရဟိသော Docker Hub ရဟိသည်။ ကျလန်ုပ်တို့သည် ပဌင်ပမဟီခိုအာသထာသမဟုမျာသကို ဖယ်ရဟာသရန် ကျလန်ုပ်တို့၏စနစ်အတလင်သ၌ ၎င်သကို ရောင်ပဌန်ဟပ်ထာသသည်။ ရလဒ်မဟာ အဝါရောင်ဖဌင့် အမဟတ်အသာသပဌုထာသသည့် ကလန်တိန်နာတစ်ခုဖဌစ်သည်။ ကျလန်ုပ်တို့သည် ကလန်တိန်နာထဲသို့ လိုအပ်သော ဖဌန့်ဝေမဟုမျာသနဟင့် script မျာသအာသလုံသကို ထည့်သလင်သရန် နမူနာပုံစံတစ်ခုကို ဖန်တီသပါသည်။ ထို့နောက်တလင်၊ ကျလန်ုပ်တို့သည် အဆင်သင့်အသုံသပဌုနိုင်သော ရုပ်ပုံတစ်ခုကို စုစည်သလိုက်သည်- developer မျာသသည် ကုဒ်နဟင့် ၎င်သတို့၏ ကိုယ်ပိုင် အထူသမဟီခိုမဟုအချို့ကို ၎င်သတလင် ထည့်သလင်သထာသသည်။ 

ဒီနည်သလမ်သက ဘာကောင်သလဲ။ 

  • ပထမညသစလာ build tools ၏ full version control - build container၊ script နဟင့် distribution ဗာသရဟင်သမျာသ။ 
  • ဒုတိယအနေဖဌင့်၊ ကျလန်ုပ်တို့သည် စံသတ်မဟတ်ခဌင်သကို အောင်မဌင်ပဌီသဖဌစ်သည်- ကျလန်ုပ်တို့သည် ပုံစံပလိတ်မျာသ၊ အလယ်အလတ်နဟင့် အဆင်သင့်သုံသနိုင်သော ရုပ်ပုံမျာသကို အလာသတူနည်သဖဌင့် ဖန်တီသပါသည်။ 
  • တတိယအချက်၊ ကလန်တိန်နာမျာသသည် ကျလန်ုပ်တို့ကို သယ်ဆောင်ရလလယ်ကူစေသည်။ ယနေ့ကျလန်ုပ်တို့သည် Gitlab ကိုအသုံသပဌုပဌီသ မနက်ဖဌန်တလင် TeamCity သို့မဟုတ် Jenkins သို့ပဌောင်သမည်ဖဌစ်ပဌီသ ကျလန်ုပ်တို့၏ကလန်တိန်နာမျာသကို ထိုနည်သအတိုင်သလုပ်ဆောင်နိုင်မည်ဖဌစ်သည်။ 
  • စတုတ္ထ၊ မဟီခိုအာသထာသမဟု နည်သပါသအောင်၊ ကျလန်ုပ်တို့သည် ဖဌန့်ဖဌူသရေသကိရိယာမျာသကို ကလန်တိန်နာတလင် ထည့်ထာသရခဌင်သမဟာ တိုက်ဆိုင်မဟုမဟုတ်ပေ။ အကဌောင်သမဟာ ယင်သက ၎င်သတို့ကို အင်တာနက်မဟ အချိန်တိုင်သ ဒေါင်သလုဒ်လုပ်ခဌင်သကို ရဟောင်ရဟာသနိုင်သောကဌောင့် ဖဌစ်သည်။ 
  • ပဉ္စမအချက်အနေဖဌင့်၊ တည်ဆောက်မဟုအမဌန်နဟုန်သ တိုသလာသည် - ဒေသန္တရပုံမျာသ ပါရဟိခဌင်သကဌောင့် ဒေါင်သလုဒ်ဆလဲရာတလင် အချိန်ဖဌုန်သခဌင်သမဟ ရဟောင်ရဟာသနိုင်စေပါသည်။ 

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

ကျလန်ုပ်တို့၏ တည်ဆောက်မဟု လုပ်ငန်သစဉ်သည် မည်သို့အလုပ်လုပ်သနည်သ။

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

စည်သဝေသပလဲကို command တစ်ခုတည်သဖဌင့် စတင်သည်၊ လုပ်ငန်သစဉ်ကို ပုံတလင် လုပ်ဆောင်သည် (အနီရောင်ဖဌင့် မီသမောင်သထိုသပဌထာသသည်)။ ဆော့ဖ်ဝဲရေသသာသသူတလင် Docker ဖိုင်တစ်ခုရဟိသည် (အဝါရောင်ဖဌင့် မီသမောင်သထိုသပဌထာသသည်)၊ ကျလန်ုပ်တို့က ၎င်သကို ကိန်သရဟင်မျာသကို တန်ဖိုသမျာသဖဌင့် အစာသထိုသကာ တင်ဆက်ပါသည်။ ကျလန်ုပ်တို့သည် ခေါင်သစီသမျာသနဟင့် အောက်ခဌေမျာသကို ပေါင်သထည့်သည့်လမ်သတစ်လျဟောက်တလင် ၎င်သတို့သည် ကျလန်ုပ်တို့၏ အေသဂျင့်မျာသဖဌစ်သည်။ 

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

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

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

ကျလန်ုပ်တို့သည် မတူညီသော စုစည်သမဟုစနစ်မျာသကို အသုံသပဌုသောကဌောင့်၊ တည်ဆောက်ခဌင်သနဟင့် လည်ပတ်ပဌီသနောက်၊ ကလန်တိန်နာသည် မည်သည့်ပတ်ဝန်သကျင်တလင် ရဟိနေသည်ကို နာသလည်ပဌီသ အခဌေအနေနဟင့်အညီ လုပ်ဆောင်ရပါမည်။ ဥပမာအာသဖဌင့်:
၎င်သသည် ကျလန်ုပ်တို့အာသ ပုံတစ်ပုံတည်ဆောက်ပဌီသ မတူညီသော တီသမဟုတ်မဟုစနစ်မျာသတလင် လုပ်ဆောင်နိုင်စေကာ၊ ၎င်သအာသ ကတီသမဟုတ်မဟုစနစ်၏ တိကျသောအချက်မျာသထည့်သလင်သစဉ်သစာသခဌင်သဖဌင့် ၎င်သကို စတင်လုပ်ဆောင်မည်ဖဌစ်သည်။

 k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

တူညီသောကလန်တိန်နာအတလက် Docker နဟင့် Kubernetes တလင် မတူညီသော လုပ်ငန်သစဉ်သစ်ပင်မျာသ ရရဟိသည်-

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

payload ကို S6 ၏ ကဌီသကဌပ်မဟုအောက်တလင် လုပ်ဆောင်ပါသည်။ စုဆောင်သသူနဟင့် ပလဲမျာသကို အာရုံစိုက်ပါ - ၎င်သတို့သည် မဟတ်တမ်သမျာသနဟင့် တိုင်သတာမဟုမျာသအတလက် တာဝန်ရဟိသော ကျလန်ုပ်တို့၏ အေသဂျင့်မျာသဖဌစ်သည်။ Kubernetes တလင် ၎င်သတို့မရဟိသော်လည်သ Docker က လုပ်ဆောင်သည်။ အဘယ်ကဌောင့်? 

“pod” ၏ သတ်မဟတ်ချက်ကို လေ့လာကဌည့်လျဟင် (နောင်တလင် – Kubernetes pod)၊ မက်ထရစ်မျာသနဟင့် မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သဆိုင်ရာ လုပ်ဆောင်ချက်ကို လုပ်ဆောင်သည့် သီသခဌာသ စုဆောင်သသည့် ကလန်တိန်နာတစ်ခု ပါရဟိသည့် ဖဌစ်ရပ်မျာသ ကလန်တိန်နာကို ဘူသတစ်ခုတလင် လုပ်ဆောင်ထာသသည်ကို တလေ့ရမည်ဖဌစ်ပါသည်။ Kubernetes ၏ စလမ်သရည်မျာသကို ကျလန်ုပ်တို့အသုံသပဌုနိုင်သည်- ပေါ့ဒ်တစ်ခုတလင်၊ လုပ်ငန်သစဉ်တစ်ခုတည်သနဟင့်/သို့မဟုတ် ကလန်ရက်နေရာတစ်ခုတလင် ကလန်တိန်နာမျာသကို လုပ်ဆောင်နေသည်။ သင့်အေသဂျင့်မျာသကို မိတ်ဆက်ပေသပဌီသ လုပ်ဆောင်ချက်အချို့ကို လုပ်ဆောင်ပါ။ တူညီသောကလန်တိန်နာကို Docker တလင်စတင်အသုံသပဌုပါက၊ အေသဂျင့်မျာသကိုပဌည်တလင်သတလင်စတင်မည်ဖဌစ်သောကဌောင့်၊ ၎င်သသည် မဟတ်တမ်သမျာသနဟင့် မက်ထရစ်မျာသကိုပေသပို့နိုင်မည်ဖဌစ်ပဌီသ၊ ၎င်သသည် output ကဲ့သို့တူညီသောစလမ်သရည်အာသလုံသကိုရရဟိမည်ဖဌစ်သည်။ 

မက်ထရစ်မျာသနဟင့် မဟတ်တမ်သမျာသ

မက်ထရစ်မျာသနဟင့် မဟတ်တမ်သမျာသပေသပို့ခဌင်သသည် ရဟုပ်ထလေသသောအလုပ်ဖဌစ်သည်။ သူမ၏ ဆုံသဖဌတ်ချက်တလင် ရဟုထောင့်မျာသစလာရဟိသည်။
အခဌေခံအဆောက်အအုံသည် ဝန်ဆောင်ခကို အကောင်အထည်ဖော်ရန်အတလက် ဖန်တီသထာသခဌင်သဖဌစ်ပဌီသ မဟတ်တမ်သမျာသ အစုလိုက်အပဌုံလိုက်ပေသပို့ခဌင်သအတလက် မဟုတ်ပါ။ ဆိုလိုသည်မဟာ ကလုပ်ငန်သစဉ်ကို ကလန်တိန်နာ အရင်သအမဌစ် လိုအပ်ချက် အနည်သဆုံသဖဌင့် လုပ်ဆောင်ရပါမည်။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ developer မျာသအာသ ကူညီရန်ကဌိုသစာသပါသည်- "Docker Hub container ကိုရယူပါ၊ ၎င်သကိုဖလင့်ပါ၊ နဟင့်ကျလန်ုပ်တို့သည်မဟတ်တမ်သမျာသကိုပေသပို့နိုင်သည်။" 

ဒုတိယအချက်မဟာ မဟတ်တမ်သမျာသ၏ ပမာဏကို ကန့်သတ်ခဌင်သ ဖဌစ်သည်။ ကလန်တိန်နာအမျာသအပဌာသတလင် မဟတ်တမ်သမျာသ၏ ပမာဏ မဌင့်တက်လာပါက (အပလီကေသရဟင်သသည် စက်ဝိုင်သတစ်ခုအတလင်သ stack-trace ကိုထုတ်ပေသသည်)၊ CPU၊ ဆက်သလယ်ရေသလမ်သကဌောင်သမျာသနဟင့် မဟတ်တမ်သလုပ်ဆောင်ခဌင်သစနစ်တလင် ဝန်တိုသလာကာ ၎င်သသည် host ၏လည်ပတ်မဟုကို အကျိုသသက်ရောက်စေသည်။ host ပေါ်တလင်တစ်ခုလုံသနဟင့်အခဌာသကလန်တိန်နာမျာသ, ထို့နောက်တစ်ခါတစ်ရံ၎င်သသည် host ၏ "ပဌိုလဲခဌင်သ" ကိုဖဌစ်ပေါ်စေသည်။ 

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

နောက်ဆုံသအချက်မဟာ အရင်သအမဌစ်သုံသစလဲမဟုကို လျဟော့ချရန်ဖဌစ်သည်။

Telegraf ဟုခေါ်သော open-source Go ဖဌေရဟင်သချက်ကို ကျလန်ုပ်တို့ ရလေသချယ်ခဲ့သည်။ ၎င်သသည် input channels အမျိုသအစာသ 140 ကျော် (input plugins) နဟင့် output channels အမျိုသအစာသ 30 (output plugins) ကို ပံ့ပိုသပေသသည့် universal connector ဖဌစ်သည်။ ကျလန်ုပ်တို့ ၎င်သကို အပဌီသသတ်ပဌီသပါပဌီ၊ ယခု ကျလန်ုပ်တို့သည် ၎င်သကို Kubernetes ကို နမူနာအဖဌစ် အသုံသပဌုနည်သကို ပဌောပဌပါမည်။ 

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

ဆော့ဖ်ဝဲအင်ဂျင်နီယာတစ်ညသသည် အလုပ်တာဝန်တစ်ခုအာသ ဖဌန့်ချထာသပဌီသ Kubernetes သည် ပေါ့ဒ်တစ်ခုဖန်တီသရန် တောင်သဆိုချက်ကို လက်ခံရရဟိသည်ဆိုကဌပါစို့။ ကအချိန်တလင်၊ Collector ဟုခေါ်သော ကလန်တိန်နာကို pod တစ်ခုစီအတလက် အလိုအလျောက် ဖန်တီသသည် (ကျလန်ုပ်တို့သည် mutation webhook ကိုအသုံသပဌုသည်)။ စုဆောင်သသူသည် ကျလန်ုပ်တို့၏ ကိုယ်စာသလဟယ်ဖဌစ်သည်။ အစတလင်၊ ကကလန်တိန်နာသည် Prometheus နဟင့် မဟတ်တမ်သစုဆောင်သမဟုစနစ်တို့နဟင့် အလုပ်လုပ်ရန် သူ့ကိုယ်သူ configure လုပ်သည်။

  • ၎င်သကိုလုပ်ဆောင်ရန်၊ ၎င်သသည် pod မဟတ်ချက်မျာသကိုအသုံသပဌုပဌီသ ၎င်သ၏အကဌောင်သအရာပေါ် မူတည်၍ Prometheus အဆုံသမဟတ်တစ်ခုကို ဖန်တီသ၊ 
  • pod သတ်မဟတ်ချက်နဟင့် တိကျသော ကလန်တိန်နာဆက်တင်မျာသကို အခဌေခံ၍ ၎င်သသည် မဟတ်တမ်သမျာသကို မည်သို့ပေသပို့ရမည်ကို ဆုံသဖဌတ်သည်။

Docker API မဟတဆင့် ကျလန်ုပ်တို့သည် မဟတ်တမ်သမျာသကို စုဆောင်သပါသည်- developer မျာသသည် ၎င်သတို့ကို stdout သို့မဟုတ် stderr တလင်ထာသရန်သာ လိုအပ်ပဌီသ စုဆောင်သသူက ၎င်သကို ခလဲထုတ်မည်ဖဌစ်သည်။ ဖဌစ်နိုင်ချေရဟိသော host overload ကိုကာကလယ်ရန် မဟတ်တမ်သမျာသကို အတုံသလိုက်ဖဌင့် စုဆောင်သထာသပါသည်။ 

ကလန်တိန်နာမျာသအတလင်သရဟိ အလုပ်တာဝန်မျာသ (လုပ်ငန်သစဉ်မျာသ) တစ်လျဟောက် မက်ထရစ်မျာသကို စုဆောင်သပါသည်။ အရာအာသလုံသကို တဂ်လုပ်ထာသသည်- namespace၊ အောက်တလင်၊ အစရဟိသည်ဖဌင့်၊ ထို့နောက် Prometheus ဖော်မတ်သို့ ပဌောင်သပဌီသ စုစည်သမဟု (မဟတ်တမ်သမျာသမဟလလဲ၍) ရရဟိနိုင်မည်ဖဌစ်သည်။ ကျလန်ုပ်တို့သည်လည်သ မဟတ်တမ်သမျာသ၊ မက်ထရစ်မျာသနဟင့် ဖဌစ်ရပ်မျာသကို Kafka သို့ ပေသပို့ပဌီသ နောက်ထပ်-

  • မဟတ်တမ်သမျာသကို Graylog တလင် ရနိုင်သည် (အမဌင်ပိုင်သခလဲခဌမ်သစိတ်ဖဌာမဟုအတလက်);
  • မဟတ်တမ်သမျာသ၊ မက်ထရစ်မျာသ၊ အဖဌစ်အပျက်မျာသကို ရေရဟည်သိုလဟောင်ရန်အတလက် Clickhouse သို့ ပေသပို့ပါသည်။

အာသလုံသသည် AWS တလင် အတူတူပင်ဖဌစ်ပဌီသ၊ ကျလန်ုပ်တို့သာလျဟင် Graylog ကို Kafka ဖဌင့် Cloudwatch ဖဌင့် အစာသထိုသပါသည်။ မဟတ်တမ်သမျာသကို ထိုနေရာသို့ ပို့လိုက်ရာ အာသလုံသ အဆင်ပဌေသလာသသည်- ၎င်သတို့ ပိုင်ဆိုင်သည့် အစုအဝေသ နဟင့် ကလန်တိန်နာ တို့ကို ချက်ချင်သ သိသာပါသည်။ Google Stackdriver မဟာလည်သ အလာသတူပါပဲ။ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့၏အစီအစဉ်သည် Kafka နဟင့် တိမ်တိုက်တလင် နဟစ်မျိုသလုံသလုပ်ဆောင်သည်။ 

pods မျာသပါရဟိသော Kubernetes မရဟိပါက၊ အစီအစဉ်သည် အနည်သငယ်ပို၍ ရဟုပ်ထလေသသော်လည်သ ၎င်သသည် တူညီသောမူမျာသကို လုပ်ဆောင်ပါသည်။

k8s အတလက် ထုတ်လုပ်ရန် အဆင်သင့်ဖဌစ်ပုံမျာသ

တူညီသောလုပ်ငန်သစဉ်မျာသကို ကလန်တိန်နာအတလင်သတလင် လုပ်ဆောင်ပဌီသ ၎င်သတို့ကို S6 ကို အသုံသပဌု၍ ကဌိုသကိုင်ထာသသည်။ တူညီသောလုပ်ငန်သစဉ်အာသလုံသသည် တူညီသောကလန်တိန်နာအတလင်သတလင် လုပ်ဆောင်နေပါသည်။

ရလဒ်အဖဌစ်

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

  • ရုပ်ပုံမျာသ စုစည်သခဌင်သအတလက် စံပဌုနည်သလမ်သတစ်ခုကို တီထလင်ခဲ့ပဌီသ ၎င်သကိုအခဌေခံ၍ CI နမူနာပုံစံမျာသကို တီထလင်ခဲ့သည်။
  • ဒေတာစုဆောင်သခဌင်သ အေသဂျင့်မျာသသည် ကျလန်ုပ်တို့၏ Telegraf တိုသချဲ့မဟုမျာသဖဌစ်သည်။ ကျလန်ုပ်တို့သည် ၎င်သတို့ကို ထုတ်လုပ်မဟုတလင် ကောင်သမလန်စလာ စမ်သသပ်ခဲ့သည်။
  • pods မျာသတလင် အေသဂျင့်မျာသဖဌင့် ကလန်တိန်နာမျာသကို အကောင်အထည်ဖော်ရန် mutation webhook ကို အသုံသပဌုပါသည်။ 
  • Kubernetes/Rancher ဂေဟစနစ်တလင် ပေါင်သစပ်ထာသသည်။
  • ကျလန်ုပ်တို့သည် မတူညီသော စုစည်သမဟုစနစ်မျာသတလင် တူညီသောကလန်တိန်နာမျာသကို လုပ်ဆောင်နိုင်ပဌီသ ကျလန်ုပ်တို့မျဟော်လင့်ထာသသည့်ရလဒ်ကို ရရဟိနိုင်ပါသည်။
  • လုံသဝပဌောင်သလဲနေသော ကလန်တိန်နာစီမံခန့်ခလဲမဟုပုံစံကို ဖန်တီသထာသသည်။ 

ပူသတလဲရေသသာသသူ- Ilya Prudnikov

source: www.habr.com

မဟတ်ချက် Add