DBaaS ကိုအစာသထိုသနိုင်သော Kubernetes ကို အသုံသပဌု၍ ဟိုက်ဘရစ် cloud တစ်ခုတည်ဆောက်နည်သ

ကျလန်ုပ်၏အမည်မဟာ Petr Zaitsev ဖဌစ်ပါသည်၊ ကျလန်ုပ်သည် CEO၊ တည်ထောင်သူဖဌစ်သည်။ percona ငါမင်သကိုပဌောပဌချင်တယ်:

  • ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုတစ်ခုအဖဌစ် Database သို့ open source ဖဌေရဟင်သချက်မျာသမဟ မည်သို့ရောက်လာသနည်သ။
  • cloud တလင် ဒေတာဘေ့စ်မျာသ ဖဌန့်ကျက်ခဌင်သအတလက် မည်သို့သော ချဉ်သကပ်မဟုမျာသ ရဟိနေသနည်သ။
  • Kubernetes သည် DBaaS ကို မည်ကဲ့သို့ အစာသထိုသနိုင်သည်၊ ရောင်သချသူအပေါ် မဟီခိုမဟုကို ဖယ်ရဟာသကာ DBMS ၏ ရိုသရဟင်သမဟုကို ဝန်ဆောင်မဟုတစ်ခုအဖဌစ် ထိန်သသိမ်သထာသသည်။

ဆောင်သပါသကို Mail.ru Cloud Solutions & Tarantool မဟ @Databases Meetup မဟ အစီရင်ခံစာအပေါ် အခဌေခံ၍ ပဌင်ဆင်ထာသပါသည်။ မဖတ်ချင်ရင်တော့ ကဌည့်လို့ရပါတယ်


ကျလန်ုပ်တို့သည် open source မဟ cloud ရဟိ ဝန်ဆောင်မဟုတစ်ခုအဖဌစ် Database သို့ မည်သို့ရောက်လာသနည်သ။

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

ထို့နောက် Open Source သည် ရိုသရဟင်သမဟုမျာသစလာကို ဖဌတ်သန်သခဲ့သည်-

  • စုစည်သရန်လိုအပ်သော Tar.gz နဟင့် INSTALL အရင်သအမဌစ်မျာသ၊
  • .deb နဟင့် .rpm ကဲ့သို့သော မဟီခိုမဟုမျာသပါရဟိသော ပက်ကေ့ဂျ်မျာသ၊
  • APT နဟင့် YUM ကဲ့သို့ ပက်ကေ့ဂျ် သိုလဟောင်ခန်သမျာသ၊ တပ်ဆင်မဟုမဟာ အလိုအလျောက်ဖဌစ်သည်။
  • ပဌင်ပမဟီခိုမဟုမရဟိဘဲ တပ်ဆင်ခဌင်သဖဌင့် ပက်ကေ့ဂျ်မျာသကို လက်ခံရရဟိစေသည့် Docker နဟင့် Snap ကဲ့သို့သော ဖဌေရဟင်သနည်သမျာသ။

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

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

တကယ်တော့ ဒါက မဆိုသပါဘူသ၊ ဘာဖဌစ်လို့လဲဆိုတော့

  1. ကျလန်ုပ်တို့သည် ပိုမိုရဟုပ်ထလေသသော်လည်သ အသုံသပဌုရလလယ်ကူသောဆော့ဖ်ဝဲလ်ကို အသုံသပဌုနိုင်သည်။ ဥပမာအာသဖဌင့်၊ ဘရောက်ဆာတစ်ခုသည် အသုံသပဌုရအဆင်ပဌေသော်လည်သ ၎င်သတလင် open source အစိတ်အပိုင်သမျာသစလာပါဝင်ပဌီသ အစမဟတည်ဆောက်ရန် အဆင်မပဌေပါ။
  2. လူမျာသ သည် open source နဟင့် အခဌာသ software မျာသ၏ developer မျာသ ဖဌစ်လာနိုင်သည်၊ ဆော့ဖ်ဝဲလ်မျာသကို စီသပလာသရေသလုပ်ငန်သမျာသက ပိုမိုအသုံသပဌုကဌပဌီသ ၎င်သအတလက် လိုအပ်မဟု ပိုမျာသလာသည်။

အာသနည်သချက်မဟာ ရိုသရဟင်သမဟု၏နောက်တစ်ဆင့်သည် cloud solutions မျာသအသုံသပဌုခဌင်သနဟင့် ဆက်စပ်နေပဌီသ၊ ၎င်သသည် ရောင်သချသူ၏လော့ခ်ချခဌင်သကို ဖဌစ်ပေါ်စေသည်၊ ဆိုလိုသည်မဟာ ပေသသလင်သသူတစ်ညသနဟင့် ချိတ်ဆက်ထာသသည်။ ကျလန်ုပ်တို့သည် ရိုသရဟင်သသောဖဌေရဟင်သနည်သမျာသကိုအသုံသပဌုပဌီသ ပံ့ပိုသပေသသူမျာသသည် open source အစိတ်အပိုင်သမျာသကိုအသုံသပဌုကဌသည်၊ သို့သော် အမဟန်တကယ်တလင် ၎င်သတို့သည် ကဌီသမာသသောတိမ်တိုက်မျာသအနက်မဟတစ်ခုသို့ သံမဟိုပဌုထာသသည်။ ဆိုလိုသည်မဟာ၊ အလလယ်ဆုံသနဟင့် အလျင်မဌန်ဆုံသနည်သလမ်သမဟာ open source (၎င်သနဟင့် တလဲဖက်အသုံသပဌုနိုင်သော ဆော့ဖ်ဝဲလ်) ကို သီသသန့် API ကို အသုံသပဌု၍ cloud မျာသတလင်ဖဌစ်သည်။

cloud ရဟိဒေတာဘေ့စ်မျာသနဟင့်ပတ်သက်လာသောအခါ၊ ချဉ်သကပ်မဟုနဟစ်ခုရဟိသည်။

  1. ပုံမဟန်ဒေတာစင်တာတလင်ကဲ့သို့ ဒေတာဘေ့စ်အခဌေခံအဆောက်အအုံကို စုစည်သပါ။ ဆိုလိုသည်မဟာ၊ စံတည်ဆောက်မဟုတုံသမျာသကိုယူပါ- ကလန်ပျူတာ၊ သိုလဟောင်မဟုစသည်ဖဌင့်၊ ၎င်သတို့တလင် Linux နဟင့် ဒေတာဘေ့စ်တစ်ခုကို ထည့်သလင်သပဌီသ ၎င်သတို့ကို configure လုပ်ပါ။
  2. ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် ဒေတာဘေ့စ်ကို အသုံသပဌုပါ၊ ဝန်ဆောင်မဟုပေသသူက cloud အတလင်သ အသင့်လုပ်ထာသသော ဒေတာဘေ့စ်ကို ပေသဆောင်သည်။

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

open source ကိုအခဌေခံ၍ ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် ဒေတာဘေ့စ် အမျိုသအစာသနဟစ်ခုနဟင့် Kubernetes ပုံစံဖဌင့် အခဌာသရလေသချယ်စရာတစ်ခု

အဖလင့်ဒေတာဘေ့စ်မျာသအတလက် ဝန်ဆောင်မဟုအဖဌစ် ဒေတာဘေ့စ် အမျိုသအစာသ နဟစ်မျိုသရဟိသည်။

  1. လလယ်ကူစလာ ဖဌန့်ကျက်ခဌင်သနဟင့် စီမံခန့်ခလဲမဟုအတလက် စီမံခန့်ခလဲရေသ နောက်ခံတလင် ထုပ်ပိုသထာသသော စံဖလင့်အရင်သအမဌစ် ထုတ်ကုန်တစ်ခု။
  2. open source နဟင့် တလဲဖက်အသုံသပဌုနိုင်သော အမျိုသမျိုသသော အပိုပရိုဂရမ်မျာသပါရဟိသော အဆင့်မဌင့် စီသပလာသဖဌစ်ဖဌေရဟင်သချက်။

ရလေသချယ်မဟုနဟစ်ခုစလုံသသည် cloud မျာသကဌာသတလင် ရလဟေ့ပဌောင်သနိုင်ခဌေကို လျဟော့ချပဌီသ ဒေတာနဟင့် အပလီကေသရဟင်သမျာသ၏ သယ်ဆောင်ရလလယ်ကူမဟုကို လျဟော့ချပေသသည်။ ဥပမာအာသဖဌင့်၊ မတူညီသော cloud အမျိုသအစာသမျာသသည် အခဌေခံအာသဖဌင့် စံ MySQL တစ်ခုတည်သကို ပံ့ပိုသပေသသော်လည်သ ၎င်သတို့ကဌာသတလင် သိသာထင်ရဟာသသော ကလာခဌာသချက်မျာသ ရဟိနေသည်- လည်ပတ်မဟု၊ စလမ်သဆောင်ရည်၊ အရန်သိမ်သခဌင်သ စသည်ဖဌင့်။ cloud တစ်ခုမဟ တစ်ခုသို့ ရလဟေ့ပဌောင်သခဌင်သသည် အထူသသဖဌင့် ရဟုပ်ထလေသသော application မျာသအတလက် စိန်ခေါ်မဟုဖဌစ်နိုင်သည်။

ဒီနေရာမဟာ မေသစရာရဟိလာတာက - ဝန်ဆောင်မဟုတစ်ခုအနေနဲ့ Database ရဲ့ အဆင်ပဌေပဌေကို ရနိုင်ပါ့မလာသ၊ ဒါပေမယ့် ရိုသရဟင်သတဲ့ open source ဖဌေရဟင်သချက်အနေနဲ့၊

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

Kubernetes သည် cloud သို့မဟုတ် ဒေတာစင်တာအတလက် လည်ပတ်မဟုစနစ်တစ်ခုဖဌစ်ပဌီသ host တစ်ခုတလင်မဟုတ်ဘဲ ဆာဗာမျာသစလာရဟိ အစုအဝေသတစ်ခုတလင် အပလီကေသရဟင်သတစ်ခုအာသ ဖဌန့်ကျက်ပဌီသ စီမံခန့်ခလဲခလင့်ပဌုသည်။

ယခု Kubernetes သည် ထိုကဲ့သို့သောဆော့ဖ်ဝဲလ်အမျိုသအစာသတလင် ညသဆောင်သူဖဌစ်သည်။ ထိုသို့သောပဌဿနာမျာသအတလက် မတူညီသောဖဌေရဟင်သနည်သမျာသစလာရဟိခဲ့သော်လည်သ စံနဟုန်သတစ်ခုဖဌစ်လာခဲ့သည်။ အစာသထိုသဖဌေရဟင်သနည်သမျာသကို အာရုံစိုက်ခဲ့ဖူသသော ကုမ္ပဏီအမျာသအပဌာသသည် Kubernetes ကို ပံ့ပိုသရန်အတလက် ၎င်သတို့၏ထုတ်ကုန်မျာသကို လိုက်လျောညီထလေဖဌစ်အောင် လုပ်ဆောင်ရန် အာရုံစိုက်လာကဌသည်။

ထို့အပဌင် Kubernetes သည် ရောင်သချသူအမျာသအပဌာသ၏ သီသသန့်၊ အမျာသသူငဟာနဟင့် ပေါင်သစပ်ထာသသော cloud မျာသတလင် ပံ့ပိုသပေသသည့် universal solution တစ်ခုဖဌစ်သည့် ဥပမာ- AWS၊ Google Cloud၊ Microsoft Azure၊ Mail.ru တိမ်တိုက်ဖဌေရဟင်သချက်.

ဒေတာဘေ့စ်မျာသနဟင့် Kubernetes အလုပ်လုပ်ပုံ

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

သို့သော်လည်သ၊ မကဌာသေသမီက Kubernetes တလင် ဒေတာဘေ့စ်မျာသနဟင့် အခဌာသပဌည်နယ်အလိုက် အပလီကေသရဟင်သမျာသကို အသုံသပဌုခလင့်ပေသသည့် အင်္ဂါရပ်မျာသ ရဟိသည်-

  1. StatefulSet အယူအဆသည် pods မျာသ၏အလုပ်မျာသကိုရပ်တန့်ခဌင်သနဟင့် Graceful Shutdown (အပလီကေသရဟင်သကိုကဌိုတင်ခန့်မဟန်သနိုင်သောပိတ်ပစ်ခဌင်သ) ကိုအကောင်အထည်ဖော်ခဌင်သဆိုင်ရာဖဌစ်ရပ်မျာသလုပ်ဆောင်ခဌင်သအတလက်အခဌေခံစီသရီသတစ်ခုလုံသဖဌစ်သည်။
  2. Persistent Volumes မျာသသည် pods၊ Kubernetes စီမံခန့်ခလဲမဟုအရာဝတ္ထုမျာသနဟင့် ဆက်စပ်နေသည့် ဒေတာစတိုသဆိုင်မျာသဖဌစ်သည်။
  3. အော်ပရေတာဘောင် - ဆိုလိုသည်မဟာ၊ ဒေတာဘေ့စ်မျာသနဟင့်အခဌာသပဌည်နယ်ဆိုင်ရာအသုံသချပလီကေသရဟင်သမျာသကိုစီမံခန့်ခလဲရန်အတလက်အစိတ်အပိုင်သမျာသကိုဖန်တီသနိုင်မဟုဖဌစ်သည်။

ယခုအခါ အမျာသသူငဟာ cloud မျာသတလင် ရဟိနဟင့်ပဌီသသော ဝန်ဆောင်မဟုအဖဌစ် ဒေတာဘေ့စ်ကဌီသမျာသ၊ ဥပမာ Kubernetes ဖဌစ်သည့် CockroachCloud၊ InfluxDB၊ PlanetScale တို့၏ နောက်ကလယ်တလင် ရဟိနေပါသည်။ ဆိုလိုသည်မဟာ Kubernetes ရဟိ ဒေတာဘေ့စ်သည် သီအိုရီအရ ဖဌစ်နိုင်သည့်အရာသာမက လက်တလေ့တလင်ပါ လုပ်ဆောင်နိုင်သော အရာတစ်ခုဖဌစ်သည်။

Percona တလင် Kubernetes အတလက် open source ဖဌေရဟင်သချက်နဟစ်ခုရဟိသည်။

  1. MongoDB အတလက် Percona ဆာဗာအတလက် Kubernetes အော်ပရေတာ။
  2. XtraDB CLUSTER အတလက် Kubernetes အော်ပရေတာသည် MySQL နဟင့် သဟဇာတဖဌစ်ပဌီသ မဌင့်မာသသောရရဟိနိုင်မဟုနဟင့် လိုက်လျောညီထလေမဟုတို့ကို ပေသဆောင်သည့် ဝန်ဆောင်မဟုတစ်ခုဖဌစ်သည်။ မဌင့်မာသသောရရဟိနိုင်မဟုမလိုအပ်ပါက ဥပမာ- dev ဒေတာဘေ့စ်အတလက် သင်အသုံသပဌုနိုင်သည်။

Kubernetes အသုံသပဌုသူမျာသကို အုပ်စုနဟစ်စုခလဲနိုင်သည်။ အချို့သောလူမျာသသည် Kubernetes အော်ပရေတာမျာသကို တိုက်ရိုက်အသုံသပဌုကဌသည် - ၎င်သတို့သည် အဓိကအာသဖဌင့် နည်သပညာအလုပ်လုပ်ပုံကို ကောင်သမလန်စလာနာသလည်ထာသသော အဆင့်မဌင့်အသုံသပဌုသူမျာသဖဌစ်သည်။ အခဌာသသူမျာသက ၎င်သကို နောက်ခံတလင် လုပ်ဆောင်သည် - ထိုကဲ့သို့သော အသုံသပဌုသူမျာသသည် ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် Database ကဲ့သို့သော အရာတစ်ခုခုကို စိတ်ဝင်စာသကဌပဌီသ Kubernetes ၏ ကလဲပဌာသချက်မျာသကို နာသမလည်ချင်ကဌပါ။ ဒုတိယအသုံသပဌုသူအုပ်စုအတလက်၊ ကျလန်ုပ်တို့တလင် အခဌာသသော open source ဖဌေရဟင်သချက် - Percona DBaaS CLI Tool။ နည်သပညာကို နက်နဲစလာနာသမလည်ဘဲ Kubernetes ကိုအခဌေခံထာသသော open source DBaaS ကိုရယူလိုသူမျာသအတလက် စမ်သသပ်ဖဌေရဟင်သချက်တစ်ခုဖဌစ်သည်။

Google Kubernetes Engine တလင် Percona ၏ DBaaS ကို မည်သို့လုပ်ဆောင်ရမည်နည်သ။

ကျလန်တော့်အမဌင်အရ Google Kubernetes Engine သည် Kubernetes နည်သပညာ၏ လုပ်ဆောင်နိုင်ဆုံသသော အကောင်အထည်ဖော်မဟုတစ်ခုဖဌစ်သည်။ ၎င်သကို ကမ္ဘာ့ဒေသမျာသစလာတလင်ရရဟိနိုင်ပဌီသ ပလက်ဖောင်သကို ကိုယ်တိုင်စီမံမည့်အစာသ scripts မျာသကို ဖန်တီသနိုင်စေမည့် ရိုသရဟင်သပဌီသ အဆင်ပဌေသော Command Line Tool (SDK) ပါရဟိသည်။

ကျလန်ုပ်တို့၏ DBaaS အလုပ်လုပ်ရန်အတလက်၊ ကျလန်ုပ်တို့သည် အောက်ပါ အစိတ်အပိုင်သမျာသ လိုအပ်ပါသည်။

  1. Kubectl
  2. Google Cloud SDK
  3. Percona DBaaS CLI

kubectl ကို install လုပ်ပါ။

ကျလန်ုပ်တို့သည် သင်၏လည်ပတ်မဟုစနစ်အတလက် ပက်ကေ့ခ်ျကို တပ်ဆင်သည်၊ ကျလန်ုပ်တို့သည် Ubuntu ၏ နမူနာကို ကဌည့်ပါမည်။ အသေသစိတ်အချက်မျာသ ဒီမဟာ.

sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

Google Cloud SDK ကို ထည့်သလင်သခဌင်သ။

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

# Add the Cloud SDK distribution URI as a package source
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] 
http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk

Percona DBaaS CLI ကို ထည့်သလင်သခဌင်သ။

Percona repositories မဟ install လုပ်ပါ။ Percona DBaaS CLI Tool သည် စမ်သသပ်ဆဲထုတ်ကုန်တစ်ခုဖဌစ်နေဆဲဖဌစ်သောကဌောင့် Percona repositories ကိုထည့်သလင်သထာသပဌီသဖဌစ်လျဟင်ပင် သီသခဌာသစီဖလင့်ထာသရမည်ဖဌစ်ပဌီသ ၎င်သသည် စမ်သသပ်သိုလဟောင်မဟုတလင်တည်ရဟိပါသည်။

ပိုမျာသသော ဒီမဟာ.

တပ်ဆင်မဟု အယ်လဂိုရီသမ်-

  1. percona-release tool ကို အသုံသပဌု၍ Percona သိုလဟောင်မဟုမျာသကို စနစ်ထည့်သလင်သပါ။ ပထမညသစလာ သင်သည် Percona မဟတရာသဝင် percona-release package ကိုဒေါင်သလုဒ်လုပ်ပဌီသ ထည့်သလင်သရန်လိုအပ်သည်-
    wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
    sudo dpkg -i percona-release_latest.generic_all.deb
  2. စမ်သသပ်ကိရိယာ သိုလဟောင်မဟု အစိတ်အပိုင်သကို အောက်ပါအတိုင်သ ဖလင့်ပါ-
    sudo percona-release enable tools experimental
    
  3. percona-dbaas-cli ပက်ကေ့ဂျ်ကို ထည့်သလင်သပါ-
    sudo apt-get update
    sudo apt-get install percona-dbaas-cli

အစိတ်အပိုင်သမျာသ၏ လည်ပတ်မဟုကို သတ်မဟတ်ခဌင်သ။

ဆက်တင်မျာသအကဌောင်သ နောက်ထပ် ဒီမဟာ.

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

gcloud auth login
gcloud config set project hidden-brace-236921

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

gcloud container clusters create --zone us-central1-a your-cluster-name --cluster-version 1.15 --num-nodes=3

အောက်ပါ kubectl command သည် ကျလန်ုပ်တို့၏လက်ရဟိအသုံသပဌုသူကို လိုချင်သောအခလင့်အရေသမျာသပေသသည်-

kubectl create clusterrolebinding cluster-admin-binding-$USER 
--clusterrole=cluster-admin --user=$(gcloud config get-value core/account)

ထို့နောက် ကျလန်ုပ်တို့သည် namespace တစ်ခုဖန်တီသပဌီသ ၎င်သကို တက်ကဌလအောင်လုပ်ပါ။ Namespace သည် အကဌမ်သဖျင်သအာသဖဌင့်ပဌောရလျဟင် ပရောဂျက်တစ်ခု သို့မဟုတ် ပတ်ဝန်သကျင်နဟင့်တူသော်လည်သ Kubernetes အစုအဝေသတစ်ခုအတလင်သတလင် ရဟိနေပဌီသသာသဖဌစ်သည်။ ၎င်သသည် Google Cloud ပရောဂျက်မျာသမဟ သီသခဌာသဖဌစ်သည်-

kubectl create namespace my-namespace
kubectl config set-context --current --namespace=my-namespace

အစုအဝေသကို စတင်ခဌင်သ။

ကအဆင့်အနည်သငယ်ကို ကျလန်ုပ်တို့ဖဌတ်သန်သပဌီသသည်နဟင့်၊ ကျလန်ုပ်တို့သည် ကရိုသရဟင်သသော command ဖဌင့် သုံသ-node အစုအဝေသတစ်ခုကို စတင်နိုင်သည်-

# percona-dbaas mysql create-db example
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     example
Resource Endpoint: example-proxysql.my-namespace.pxc.svc.local
Port:              3306
User:              root
Pass:              Nt9YZquajW7nfVXTTrP
Status:            ready

အစုအဝေသတစ်ခုသို့ ချိတ်ဆက်နည်သ

မူရင်သအာသဖဌင့်၊ ၎င်သကို Kubernetes တလင်သာ ရနိုင်သည်။ ဆိုလိုသည်မဟာ သင်သည် "Create" အမိန့်ကို လုပ်ဆောင်ခဲ့သော ကဆာဗာမဟ ၎င်သကို အသုံသပဌု၍မရပါ။ ဥပမာအာသဖဌင့်၊ ကလိုင်သယင့်တစ်ညသနဟင့် စမ်သသပ်မဟုမျာသ ပဌုလုပ်ရန်အတလက် Port Mapping မဟတဆင့် ဆိပ်ကမ်သကို ထပ်ဆင့်ပို့ရန် လိုအပ်သည်-

kubectl port-forward svc/example-proxysql 3306:3306 $

ထို့နောက် ကျလန်ုပ်တို့သည် သင်၏ MySQL client ကို ချိတ်ဆက်ပါ-

mysql -h 127.0.0.1 -P 3306 -uroot -pNt9YZquajW7nfVXTTrP

အဆင့်မဌင့် အစုအဝေသစီမံခန့်ခလဲမဟု ညလဟန်ကဌာသချက်မျာသ

အမျာသသူငဟာ IP ရဟိ ဒေတာဘေ့စ်

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

# percona-dbaas mysql create-db exposed 
--options="proxysql.serviceType=LoadBalancer"
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     exposed
Resource Endpoint: 104.154.133.197
Port:              3306
User:              root
Pass:              k0QVxTr8EVfgyCLYse
Status:            ready

To access database please run the following command:
mysql -h 104.154.133.197 -P 3306 -uroot -pk0QVxTr8EVfgyCLYse

စကာသဝဟက်ကို အတိအလင်သ သတ်မဟတ်ပါ။

စနစ်က စကာသဝဟက်ကို ကျပန်သထုတ်ပေသမယ့်အစာသ၊ စကာသဝဟက်ကို ပဌတ်သာသစလာ သတ်မဟတ်နိုင်ပါတယ်။

# percona-dbaas mysql create-db withpw --password=mypassword
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     withpw
Resource Endpoint: withpw-proxysql.my-namespace.pxc.svc.local
Port:              3306
User:              root
Pass:              mypassword
Status:            ready

ကျလန်ုပ်သည် လူသာသဖတ်နိုင်သော ဖော်မတ်ဖဌင့် ဇာတ်ညလဟန်သမျာသ၏ အထလက်ကို ပဌသနေသော်လည်သ JSON ဖော်မတ်ကိုလည်သ ပံ့ပိုသထာသသည်။

မဌင့်မာသသောရရဟိနိုင်မဟုကို ပိတ်ခဌင်သ။

အောက်ပါ command ဖဌင့် node တစ်ခုတည်သကိုအသုံသပဌုရန် မဌင့်မာသသောရရဟိနိုင်မဟုကို ပိတ်နိုင်သည်-

# percona-dbaas mysql create-db singlenode 
--options="proxysql.enabled=false, allowUnsafeConfigurations=true,pxc.size=1"
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     singlenode
Resource Endpoint: singlenode-pxc.my-namespace.pxc.svc.local
Port:              3306
User:              root
Pass:              22VqFD96mvRnmPMGg
Status:            ready

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

Percona DBaaS CLI ကိရိယာသည် Kubernetes တလင် DBaaS ကဲ့သို့သော ဖဌေရဟင်သချက်တစ်ခုကို ရရဟိစေရန် ကူညီပေသသည်။ တစ်ချိန်တည်သမဟာပင်၊ ကျလန်ုပ်တို့သည် ၎င်သ၏လုပ်ဆောင်နိုင်စလမ်သနဟင့် အသုံသပဌုနိုင်စလမ်သအပေါ် ဆက်လက်လုပ်ဆောင်နေပါသည်။

ဒီအစီရင်ခံစာကို ပထမဆုံသ တင်ပဌခဲ့တာ ဖဌစ်ပါတယ်။ @Databases တလေ့ဆုံမဟု Mail.ru Cloud Solutions&Tarantool မဟ။ ကဌည့်လိုက် вОЎеП အခဌာသသော ဖျော်ဖဌေပလဲမျာသနဟင့် Telegram တလင် အစီအစဉ်ကဌေငဌာချက်မျာသကို စာရင်သသလင်သပါ။ Mail.ru Group ရဟိ Kubernetes ဝန်သကျင်.

ခေါင်သစဉ်နဲ့ ပတ်သက်ပဌီသ နောက်ထပ်ဘာတလေဖတ်ရမလဲ။

  1. ခေတ်မီ IIoT ပလပ်ဖောင်သရဟိ ဒေတာဘေ့စ်မျာသ။
  2. ပရောဂျက်တစ်ခုအတလက် ဒေတာဘေ့စ်တစ်ခုကို ဘယ်လိုရလေသချယ်ရမလဲဆိုတာ ထပ်ရလေသချယ်စရာ မလိုတော့ပါဘူသ။

source: www.habr.com

မဟတ်ချက် Add