ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အစီရင်ခံစာသည် Kubernetes တွင် အော်ပရေတာတစ်ဦးကို ဖော်ဆောင်ရာတွင် ၎င်း၏ဗိသုကာပညာနှင့် အခြေခံလုပ်ဆောင်မှုအခြေခံမူများကို ဒီဇိုင်းထုတ်ခြင်းဆိုင်ရာ လက်တွေ့ကျသောကိစ္စရပ်များအတွက် အာရုံစိုက်ထားသည်။

အစီရင်ခံစာ၏ပထမပိုင်း၌ကျွန်ုပ်တို့စဉ်းစားပါလိမ့်မည်-

  • Kubernetes တွင် အော်ပရေတာတစ်ခုက ဘာလဲ၊ ဘာကြောင့် လိုအပ်တာလဲ။
  • အော်ပရေတာသည် ရှုပ်ထွေးသော စနစ်များ၏ စီမံခန့်ခွဲမှုကို မည်ကဲ့သို့ ရိုးရှင်းလွယ်ကူစေသနည်း။
  • အော်ပရေတာက ဘာတတ်နိုင်တယ်၊ မလုပ်နိုင်ဘူး။

ထို့နောက်၊ အော်ပရေတာ၏ အတွင်းပိုင်းဖွဲ့စည်းပုံကို ဆွေးနွေးကြစို့။ အော်ပရေတာ၏ တည်ဆောက်ပုံနှင့် လုပ်ဆောင်ချက်ကို အဆင့်ဆင့် ကြည့်ကြပါစို့။ အဲဒါကို အသေးစိတ်ကြည့်ရအောင်။

  • အော်ပရေတာနှင့် Kubernetes အကြား အပြန်အလှန်အကျိုးသက်ရောက်မှု၊
  • အော်ပရေတာက ဘာလုပ်ဆောင်ချက်တွေ လုပ်ဆောင်ပြီး Kubernetes ကို လွှဲအပ်ပေးသလဲ။

Kubernetes ရှိ shards များနှင့် ဒေတာဘေ့စ်ပုံတူများကို စီမံခန့်ခွဲခြင်းကို ကြည့်ကြပါစို့။
ထို့နောက်၊ ကျွန်ုပ်တို့သည် ဒေတာသိမ်းဆည်းခြင်းဆိုင်ရာ ပြဿနာများကို ဆွေးနွေးပါမည်။

  • အော်ပရေတာ၏အမြင်မှ Persistent Storage နှင့် မည်သို့လုပ်ဆောင်ရမည်နည်း။
  • Local Storage အသုံးပြုခြင်း၏ ချို့ယွင်းချက်များ။

အစီရင်ခံစာ၏ နောက်ဆုံးအပိုင်းတွင်၊ ကျွန်ုပ်တို့သည် လျှောက်လွှာ၏ လက်တွေ့နမူနာများကို သုံးသပ်ပါမည်။ clickhouse-အော်ပရေတာ Amazon သို့မဟုတ် Google Cloud Service မှ။ အစီရင်ခံစာသည် ClickHouse အတွက် အော်ပရေတာတစ်ခု၏ ဖွံ့ဖြိုးတိုးတက်မှုနှင့် လည်ပတ်မှုအတွေ့အကြုံ၏ နမူနာကို အခြေခံထားသည်။

ဗီဒီယိုများ:

ငါ့နာမည်က Vladislav Klimenko ပါ။ ယနေ့ ကျွန်ုပ်သည် အော်ပရေတာတစ်ခုကို တီထွင်ခြင်းနှင့် လည်ပတ်ခြင်းတွင် ကျွန်ုပ်တို့၏အတွေ့အကြုံကို ပြောပြလိုပြီး ၎င်းသည် ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် အထူးပြုအော်ပရေတာတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့် ClickHouse-အော်ပရေတာ ClickHouse အစုအဝေးကို စီမံခန့်ခွဲရန်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကျွန်ုပ်တို့သည် အော်ပရေတာနှင့် ClickHouse အကြောင်းပြောရန် အဘယ်ကြောင့်အခွင့်အရေးရသနည်း။

  • ကျွန်ုပ်တို့သည် ClickHouse ကို ပံ့ပိုးပြီး ဖွံ့ဖြိုးတိုးတက်အောင် လုပ်ဆောင်ပါသည်။
  • လောလောဆယ်တွင်၊ ကျွန်ုပ်တို့သည် ClickHouse ဖွံ့ဖြိုးတိုးတက်မှုအတွက် ကျွန်ုပ်တို့၏ပံ့ပိုးကူညီမှုကို ဖြည်းဖြည်းချင်းလုပ်ဆောင်ရန် ကြိုးစားနေပါသည်။ ကျွန်ုပ်တို့သည် ClickHouse တွင်ပြုလုပ်ခဲ့သောပြောင်းလဲမှုပမာဏနှင့်ပတ်သက်၍ Yandex ပြီးနောက် ဒုတိယမြောက်ဖြစ်သည်။
  • ClickHouse ဂေဟစနစ်အတွက် နောက်ထပ်ပရောဂျက်များကို ဖန်တီးရန် ကျွန်ုပ်တို့ ကြိုးစားနေပါသည်။

ဒီပရောဂျက်တွေထဲက တစ်ခုအကြောင်း ပြောပြချင်ပါတယ်။ ဒါက Kubernetes အတွက် ClickHouse-operator အကြောင်းပါ။

ကျွန်ုပ်၏ အစီရင်ခံစာတွင် ခေါင်းစဉ်နှစ်ခုကို တင်ပြလိုပါသည်။

  • ပထမအကြောင်းအရာမှာ ကျွန်ုပ်တို့၏ ClickHouse ဒေတာဘေ့စ်စီမံခန့်ခွဲမှု အော်ပရေတာ Kubernetes တွင် မည်သို့အလုပ်လုပ်ပုံဖြစ်သည်။
  • ဒုတိယအကြောင်းအရာမှာ မည်သည့်အော်ပရေတာအလုပ်လုပ်ပုံ၊ ဆိုလိုသည်မှာ Kubernetes နှင့် တုံ့ပြန်ပုံဖြစ်သည်။

သို့သော် ဤမေးခွန်းနှစ်ခုသည် ကျွန်ုပ်၏အစီရင်ခံစာတစ်လျှောက်လုံး ဖြတ်တောက်မည်ဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ငါပြောနေတာတွေကို နားထောင်ဖို့ ဘယ်သူက စိတ်ဝင်စားမှာလဲ။

  • အော်ပရေတာလုပ်ငန်းလုပ်ကိုင်သူတွေ စိတ်ဝင်စားမှုအများဆုံးဖြစ်ပါလိမ့်မယ်။
  • သို့မဟုတ် အတွင်းပိုင်းအလုပ်လုပ်ပုံ၊ အော်ပရေတာသည် Kubernetes နှင့် မည်သို့အပြန်အလှန်တုံ့ပြန်ပုံတို့ကို နားလည်နိုင်စေရန်အတွက် ၎င်းတို့ကိုယ်တိုင် ဖန်တီးလိုသူများအတွက်၊

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ယနေ့ကျွန်ုပ်တို့ဆွေးနွေးမည့်အရာကို အကောင်းမွန်ဆုံးနားလည်ရန်၊ Kubernetes မည်ကဲ့သို့အလုပ်လုပ်ကြောင်းနှင့် အခြေခံ cloud လေ့ကျင့်မှုအချို့ကို သိရှိရန် သင့်တော်ပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ClickHouse ဆိုတာဘာလဲ။ ဤအရာသည် ခွဲခြမ်းစိတ်ဖြာမှုဆိုင်ရာ မေးမြန်းမှုများကို အွန်လိုင်းလုပ်ဆောင်ခြင်းအတွက် သီးခြားအင်္ဂါရပ်များပါရှိသော ကော်လံဘားဒေတာဘေ့စ်တစ်ခုဖြစ်သည်။ ၎င်းသည် လုံးဝ open source ဖြစ်သည်။

နှစ်ခုပဲသိဖို့က အရေးကြီးတယ်။ ဤအရာသည် ဒေတာဘေ့စ်တစ်ခုဖြစ်ကြောင်း သင်သိထားရန် လိုအပ်သည်၊ ထို့ကြောင့် ကျွန်ုပ်ပြောပြမည့်အရာသည် မည်သည့်ဒေတာဘေ့စ်မဆိုနီးပါးနှင့် သက်ဆိုင်မည်ဖြစ်သည်။ ClickHouse DBMS သည် အလွန်ကောင်းမွန်စွာ ချိန်ညှိထားသောကြောင့် linear scalability နီးပါးကိုပေးသည်။ ထို့ကြောင့်၊ အစုအဖွဲ့အခြေအနေသည် ClickHouse အတွက် သဘာဝအခြေအနေဖြစ်သည်။ ထို့အပြင် Kubernetes တွင် ClickHouse အစုအဝေးကို မည်သို့ဝန်ဆောင်မှုပေးရမည်ကို ဆွေးနွေးရန် ကျွန်ုပ်တို့ စိတ်ဝင်စားဆုံးဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

သူဘာကြောင့်အဲဒီမှာလိုအပ်တာလဲ။ ကျွန်ုပ်တို့ကိုယ်တိုင် ၎င်းကို အဘယ်ကြောင့် ဆက်လက်မလုပ်ဆောင်နိုင်သနည်း။ အဖြေများသည် နည်းပညာပိုင်းနှင့် တစ်စိတ်တစ်ပိုင်း ဖွဲ့စည်းမှုဖြစ်သည်။

  • လက်တွေ့တွင်၊ ကျွန်ုပ်တို့သည် ကုမ္ပဏီကြီးများတွင် အစိတ်အပိုင်းအားလုံးနီးပါး Kubernetes တွင်ရှိပြီးသား အခြေအနေတစ်ရပ်ကို ကြုံတွေ့နေရပါသည်။ ဒေတာဘေ့စ်များသည် အပြင်ဘက်တွင် ရှိနေသည်။
  • ပြီးတော့ မေးခွန်းက “ဒါကို အထဲမှာ ထည့်လို့ရလား” ထို့ကြောင့် ကုမ္ပဏီကြီးများသည် ၎င်းတို့၏ ဒေတာသိုလှောင်ရုံများကို လျင်မြန်စွာ စီမံခန့်ခွဲနိုင်စေရန်အတွက် စီမံခန့်ခွဲမှု၏ အမြင့်ဆုံး ပေါင်းစပ်မှုရရှိရန် ကြိုးပမ်းနေကြသည်။
  • ၎င်းသည် နေရာအသစ်တွင် တူညီသောအရာကို ထပ်ခါတလဲလဲလုပ်ရန် အခွင့်အရေးအများဆုံးလိုအပ်ပါက၊ ဆိုလိုသည်မှာ သယ်ယူရလွယ်ကူမှု အများဆုံးဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဘယ်လောက်လွယ်လဲ ခက်လား ။ ဒါက လက်နဲ့လုပ်လို့ရတယ်။ သို့သော် ကျွန်ုပ်တို့တွင် Kubernetes ကိုယ်တိုင် စီမံခန့်ခွဲရန် ထပ်လောင်းရှုပ်ထွေးမှုများရှိသောကြောင့် ယင်းသည် ရိုးရှင်းခြင်းမရှိပါ၊ သို့သော် တစ်ချိန်တည်းတွင် ClickHouse ၏အသေးစိတ်အချက်အလက်များကို ထပ်တင်ထားသည်။ ပြီးတော့ အဲဒီလို စုစည်းမှု ရလဒ်တွေ။

ထို့အပြင်၊ Kubernetes သည် ၎င်း၏နေ့စဉ်ပြဿနာများကို လည်ပတ်လုပ်ဆောင်စေသောကြောင့် စီမံခန့်ခွဲရန်အတော်လေးခက်ခဲသည့် နည်းပညာအစုအဝေးကြီးကို ပေးစွမ်းပြီး ClickHouse သည် ၎င်း၏နေ့စဉ်လုပ်ငန်းဆောင်တာများအတွက် ၎င်း၏ကိုယ်ပိုင်ပြဿနာများကို ယူဆောင်လာပေးပါသည်။ အထူးသဖြင့် ကျွန်ုပ်တို့တွင် ClickHouse များစွာရှိပြီး ၎င်းတို့နှင့် အဆက်မပြတ်လုပ်ဆောင်ရန် လိုအပ်ပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ပြောင်းလဲနေသောဖွဲ့စည်းမှုပုံစံဖြင့်၊ ClickHouse သည် DevOps တွင် အဆက်မပြတ်တင်ဆောင်မှုကို ဖန်တီးပေးသည့် ပြဿနာများစွာရှိသည်။

  • ဥပမာ ClickHouse တွင် တစ်ခုခုကို ပြောင်းလဲလိုသောအခါ၊ ဥပမာ၊ ပုံတူ သို့မဟုတ် shard တစ်ခုကို ထည့်ပါ၊ ထို့နောက် ဖွဲ့စည်းမှုပုံစံကို စီမံခန့်ခွဲရန် လိုအပ်ပါသည်။
  • ClickHouse တွင် သီးခြားခွဲဝေမှုနည်းလမ်းတစ်ခုရှိသောကြောင့် ဒေတာအစီအစဉ်ကိုပြောင်းပါ။ အဲဒီမှာ data scheme ကိုပြင်ဖို့၊ configurations တွေ lay လုပ်ဖို့လိုတယ်။
  • စောင့်ကြည့်မှုကို သတ်မှတ်ရန် လိုအပ်သည်။
  • ပုံစံတူအသစ်များအတွက် မှတ်တမ်းများ စုဆောင်းခြင်း။
  • ပြန်လည်ထူထောင်ရေးကို ဂရုစိုက်ပါ။
  • ပြီးလျှင် restart ချလိုက်ပါ။

ဤအရာများသည် ကျွန်ုပ်အမှန်တကယ် အသုံးပြုရလွယ်ကူစေရန်အတွက် လုပ်ရိုးလုပ်စဉ်အလုပ်များဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

Kubernetes ကိုယ်တိုင်က လည်ပတ်ရာမှာ ကောင်းကောင်း ကူညီပေးပေမယ့် အခြေခံ စနစ် အရာတွေ အတွက်ပါ။

Kubernetes သည် အောက်ပါကဲ့သို့သော အရာများကို အဆင်ပြေချောမွေ့စေပြီး အလိုအလျောက်လုပ်ဆောင်ရာတွင် ကောင်းမွန်ပါသည်။

  • ပြန်လည်ထူထောင်ရေး။
  • ပြန်စတင်သည်။
  • သိုလှောင်မှုစနစ်စီမံခန့်ခွဲမှု။

ကောင်းပါတယ်၊ အဲဒါက လမ်းကြောင်းမှန်ပါ၊ ဒါပေမယ့် database cluster ကို ဘယ်လိုလည်ပတ်ရမလဲဆိုတာကို သူ လုံးဝမသိရပါဘူး။

ကျွန်ုပ်တို့ ပို၍လိုချင်သည်၊ ကျွန်ုပ်တို့သည် ဒေတာဘေ့စ်တစ်ခုလုံးကို Kubernetes တွင် အလုပ်လုပ်စေလိုပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

သင်နှိပ်လိုက်သော မှော်အနီခလုတ်ကြီးတစ်ခုနှင့် ဖြေရှင်းရန် လိုအပ်သည့် နေ့စဉ်အလုပ်များပါရှိသော အစုအဝေးတစ်ခုကို ၎င်း၏ဘဝစက်ဝန်းတစ်ခုလုံးတွင် အသုံးချထိန်းသိမ်းကာ ထိန်းသိမ်းထားလိုပါသည်။ Kubernetes ရှိ ClickHouse အစုအဝေး။

ပြီးတော့ အလုပ်ပိုလွယ်အောင် ကူညီပေးမယ့် အဖြေတစ်ခုကို ကျွန်တော်တို့ ကြိုးစားခဲ့ပါတယ်။ ၎င်းသည် Altinity မှ Kubernetes အတွက် ClickHouse-အော်ပရေတာဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အော်ပရေတာဆိုသည်မှာ အခြားပရိုဂရမ်များကို စီမံခန့်ခွဲရန် အဓိကတာဝန်ဖြစ်သည့် ပရိုဂရမ်တစ်ခုဖြစ်ပြီး ဆိုလိုသည်မှာ ၎င်းသည် မန်နေဂျာဖြစ်သည်။

၎င်းတွင် အပြုအမူပုံစံများပါရှိသည်။ ဘာသာရပ်နယ်ပယ်နှင့်ပတ်သက်သော ဤပေါင်းစပ်ထားသောအသိပညာကို သင်ခေါ်ဆိုနိုင်ပါသည်။

ထို့အပြင် သူ၏အဓိကတာဝန်မှာ DevOps ၏ဘဝပိုမိုလွယ်ကူစေရန်နှင့် အသေးစားစီမံခန့်ခွဲမှုကို လျှော့ချရန်ဖြစ်ပြီး၊ သူ (DevOps) သည် အဆင့်မြင့်ဝေါဟာရများဖြင့် တွေးတောထားပြီးဖြစ်သည့်အတွက် ၎င်း (DevOps) သည် micromanagement တွင် မပါဝင်စေရန်၊ သို့မှသာ သူ (DevOps) သည် micromanagement တွင် ပါဝင်ဆောင်ရွက်ခြင်းမပြုစေရန်၊ အသေးစိတ်အချက်အလက်များအားလုံးကို manually။

အော်ပရေတာသည် microtask များနှင့် DevOps တို့ကိုကူညီသည့်စက်ရုပ်လက်ထောက်ဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အဘယ်ကြောင့် အော်ပရေတာ လိုအပ်သနည်း။ အထူးသဖြင့် နယ်ပယ်နှစ်ခုတွင် ကောင်းမွန်စွာ စွမ်းဆောင်နိုင်ခဲ့သည်။

  • ClickHouse နှင့် ပတ်သက်သည့် ကျွမ်းကျင်သူသည် လုံလောက်သော အတွေ့အကြုံမရှိသော်လည်း ClickHouse ကို လည်ပတ်ရန် လိုအပ်နေချိန်တွင်၊ အော်ပရေတာသည် လည်ပတ်မှုကို လွယ်ကူချောမွေ့စေပြီး ၎င်းအားလုံး၏ အလုပ်လုပ်ပုံအကြောင်း အသေးစိတ်ကို အလွန်အကျွံမဖော်ပြဘဲ ClickHouse အစုအဝေးတစ်ခုအား လုပ်ဆောင်နိုင်စေပါသည်။ အတွင်းပိုင်း။ မင်းက သူ့ကို အဆင့်အတန်းမြင့်တဲ့ အလုပ်တွေကို ပေးလိုက်ရုံနဲ့ အလုပ်လုပ်တယ်။
  • ၎င်းသည် အကောင်းဆုံးလုပ်ဆောင်နိုင်သည့် ဒုတိယတာဝန်မှာ ပုံမှန်အလုပ်များစွာကို အလိုအလျောက်လုပ်ဆောင်ရန် လိုအပ်သည့်အခါဖြစ်သည်။ စနစ်စီမံခန့်ခွဲသူများထံမှ microtask များကို ဖယ်ရှားသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဤအရာသည် ၎င်းတို့၏ ခရီးကို စတင်နေသူများ သို့မဟုတ် အလိုအလျောက် စနစ်များစွာ လုပ်ဆောင်ရန် လိုအပ်သူများ အနေဖြင့် အလိုအပ်ဆုံး ဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အော်ပရေတာအခြေခံနည်းလမ်းသည် အခြားစနစ်များနှင့် မည်သို့ကွာခြားသနည်း။ Helm ရှိတယ်။ ၎င်းသည် ClickHouse ကိုထည့်သွင်းရန်လည်း ကူညီပေးသည်၊ ၎င်းသည် ClickHouse အစုအဝေးတစ်ခုလုံးကိုပင် ထည့်သွင်းနိုင်သည့် ဦးမုံဇယားများကို သင်ဆွဲနိုင်သည်။ အော်ပရေတာနှင့် တူညီသော ကွာခြားချက်မှာ အဘယ်နည်း၊ ဥပမာ၊ Helm။

အဓိကအခြေခံခြားနားချက်မှာ Helm သည် ပက်ကေ့ဂျ်စီမံခန့်ခွဲမှုဖြစ်ပြီး အော်ပရေတာသည် နောက်တစ်ဆင့်တက်သွားခြင်းဖြစ်သည်။ ဤသည်မှာ ဘဝသံသရာတစ်ခုလုံး၏ အထောက်အပံ့ဖြစ်သည်။ ၎င်းသည် တပ်ဆင်ခြင်းသာမက၊ ၎င်းတို့သည် ဘဝစက်ဝန်းအတွင်း လုပ်ဆောင်ရမည့်အရာများ (လိုအပ်ပါက၊ ဖျက်ပစ်ခြင်း) အပါအဝင် နေ့စဉ်လုပ်ငန်းဆောင်တာများဖြစ်သည် - ဤအရာအားလုံးကို အော်ပရေတာမှ ဆုံးဖြတ်ပါသည်။ ၎င်းသည် software lifecycle တစ်ခုလုံးကို အလိုအလျောက်လုပ်ဆောင်ရန်နှင့် ထိန်းသိမ်းရန် ကြိုးပမ်းသည်။ ဤသည်မှာ တင်ပြထားသော အခြားဖြေရှင်းနည်းများနှင့် ၎င်း၏ အခြေခံကွာခြားချက်ဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အဲဒါက နိဒါန်းအပိုင်းပဲ၊ ဆက်သွားကြရအောင်။

ကျွန်ုပ်တို့၏အော်ပရေတာကို မည်သို့တည်ဆောက်မည်နည်း။ ClickHouse အစုအဝေးကို အရင်းအမြစ်တစ်ခုတည်းအဖြစ် စီမံခန့်ခွဲရန် ပြဿနာကို ချဉ်းကပ်ရန် ကျွန်ုပ်တို့ ကြိုးစားနေပါသည်။

ဤနေရာတွင် ပုံ၏ဘယ်ဘက်ခြမ်းတွင် ထည့်သွင်းဒေတာရှိသည်။ ၎င်းသည် Kubectl မှတစ်ဆင့် ဂန္တဝင်နည်းလမ်းဖြင့် Kubernetes သို့ လွှဲပြောင်းပေးသော အစုလိုက်သတ်မှတ်ချက်တစ်ခုပါရှိသော YAML ဖြစ်သည်။ အဲဒီမှာ ကျွန်တော်တို့ရဲ့ အော်ပရေတာက အဲဒါကို ကောက်ယူပြီး သူ့ရဲ့ မှော်ပညာကို လုပ်တယ်။ ရလဒ်တွင် ကျွန်ုပ်တို့သည် အောက်ပါအစီအစဉ်ကို ရရှိသည်။ ၎င်းသည် Kubernetes ရှိ ClickHouse ၏ အကောင်အထည်ဖော်မှုတစ်ခုဖြစ်သည်။

ထို့နောက် အော်ပရေတာသည် မည်သို့မည်ပုံ အတိအကျ အလုပ်လုပ်သည်၊ မည်သည့် ပုံမှန်အလုပ်များကို ဖြေရှင်းနိုင်သည်ကို ကျွန်ုပ်တို့ ဖြည်းဖြည်းချင်း ကြည့်ပါမည်။ ကျွန်ုပ်တို့တွင် အချိန်အကန့်အသတ်ရှိသောကြောင့် ပုံမှန်အလုပ်များကိုသာ စဉ်းစားပါမည်။ အော်ပရေတာမှ ဆုံးဖြတ်နိုင်သည့်အရာအားလုံးကို ဆွေးနွေးမည်မဟုတ်ပါ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အလေ့အကျင့်ကနေစလိုက်ရအောင်။ ကျွန်ုပ်တို့၏ပရောဂျက်သည် လုံးဝပွင့်လင်းသောအရင်းအမြစ်ဖြစ်သောကြောင့် GitHub တွင်မည်ကဲ့သို့အလုပ်လုပ်သည်ကိုသင်မြင်နိုင်သည်။ ၎င်းကို စတင်လိုပါက၊ Quick Start Guide ဖြင့် စတင်နိုင်သည်ဟူသော ထည့်သွင်းစဉ်းစားမှုများမှ သင်ဆက်လက်လုပ်ဆောင်နိုင်သည်။

အသေးစိတ်နားလည်လိုပါက၊ စာရွက်စာတမ်းများကို အနည်းနှင့်အများ သင့်လျော်သောပုံစံဖြင့် ထိန်းသိမ်းထားရန် ကြိုးစားပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

လက်တွေ့ပြဿနာတစ်ခုနဲ့ စလိုက်ရအောင်။ ကျွန်ုပ်တို့အားလုံးစတင်လိုသည့် ပထမတာဝန်မှာ ပထမဥပမာကို တစ်နည်းနည်းဖြင့် လုပ်ဆောင်ရန်ဖြစ်သည်။ ၎င်းသည် မည်သို့အလုပ်လုပ်သည်ကို ကျွန်ုပ် အမှန်တကယ်မသိပါက အော်ပရေတာကို အသုံးပြု၍ ClickHouse ကို မည်သို့စတင်နိုင်မည်နည်း။ ကြေငြာချက်တစ်ခုရေးနေတာမို့... k8s နှင့် ဆက်သွယ်မှုအားလုံးသည် manifests များမှတဆင့် ဆက်သွယ်မှုဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဤသည်မှာ ရှုပ်ထွေးသော ကြေငြာချက်ဖြစ်သည်။ အနီရောင်ဖြင့် မီးမောင်းထိုးပြထားသည့်အရာသည် ကျွန်ုပ်တို့အာရုံစိုက်ရမည့်အရာဖြစ်သည်။ ကျွန်ုပ်တို့သည် ဒီမိုအမည်ရှိ အစုအဝေးတစ်ခုကို ဖန်တီးရန် အော်ပရေတာအား တောင်းဆိုပါသည်။

ဒါတွေက အခုလောလောဆယ် အခြေခံ ဥပမာတွေပါ။ သိုလှောင်မှုအား မဖော်ပြရသေးသော်လည်း အနည်းငယ်ကြာပြီးနောက် သိုလှောင်ခန်းသို့ ပြန်သွားပါမည်။ ယခုအချိန်တွင်၊ အစုအဖွဲ့၏ ဖွံ့ဖြိုးတိုးတက်မှု၏ ဒိုင်းနမစ်များကို စောင့်ကြည့်ပါမည်။

ကျွန်ုပ်တို့သည် ဤကြေငြာချက်ကို ဖန်တီးခဲ့သည်။ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ အော်ပရေတာထံသို့ ကျွေးမွေးပါသည်။ သူအလုပ်လုပ်တယ်၊ မှော်လုပ်တယ်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကျွန်ုပ်တို့သည် console ကိုကြည့်ရှုသည်။ စိတ်ဝင်စားဖွယ် အစိတ်အပိုင်းသုံးခု- Pod တစ်ခု၊ ဝန်ဆောင်မှုနှစ်ခုနှင့် StatefulSet တစ်ခု။

အော်ပရေတာသည် အလုပ်လုပ်ခဲ့ပြီး၊ သူဖန်တီးထားသည်ကို ကျွန်ုပ်တို့ မြင်တွေ့နိုင်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

သူဒီလိုမျိုး ဖန်တီးတယ်။ ကျွန်ုပ်တို့တွင် ပုံစံတူတစ်ခုစီအတွက် StatefulSet၊ Pod၊ ConfigMap၊ အစုအဝေးတစ်ခုလုံးအတွက် ConfigMap တစ်ခုရှိသည်။ ဝန်ဆောင်မှုများသည် အစုအဝေးသို့ ဝင်ခွင့်အမှတ်များအဖြစ် လိုအပ်ပါသည်။

ဝန်ဆောင်မှုများသည် ဗဟို Load Balancer ဝန်ဆောင်မှုဖြစ်ပြီး shard တစ်ခုစီအတွက် ပုံတူတစ်ခုစီအတွက်လည်း အသုံးပြုနိုင်ပါသည်။

ကျွန်ုပ်တို့၏ အခြေခံအစုအဝေးသည် ဤကဲ့သို့ ရှိသည်။ ၎င်းသည် node တစ်ခုတည်းမှဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဒီထက်ပိုပြီး ရှုပ်ထွေးသွားရအောင်။ အစုအဝေးကို ခွဲထုတ်ရန်လိုသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကျွန်ုပ်တို့၏လုပ်ငန်းတာဝန်များသည် ကြီးထွားလာနေပြီး ဒိုင်းနမစ်များ စတင်နေပြီဖြစ်သည်။ ကျွန်တော်တို့က ခဲပြားတစ်ခုထည့်ချင်တယ်။ ကျွန်ုပ်တို့သည် ဖွံ့ဖြိုးတိုးတက်မှုကို လိုက်နာသည်။ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ သတ်မှတ်ချက်ကို ပြောင်းလဲနေပါသည်။ ကျွန်ုပ်တို့သည် အပိုင်းနှစ်ပိုင်းကို လိုချင်ကြောင်း ညွှန်ပြသည်။

ဤသည်မှာ စနစ်၏ ကြီးထွားမှုနှင့်အတူ ဒိုင်းနမစ်ဖြင့် ဖွံ့ဖြိုးတိုးတက်နေသော တူညီသောဖိုင်ဖြစ်သည်။ သိုလှောင်မှု မရှိပါ၊ သိုလှောင်မှုအား ဆက်လက်ဆွေးနွေးပါမည်၊ ဤအကြောင်းအရာသည် သီးခြားဖြစ်သည်။

ကျွန်ုပ်တို့သည် YAML အော်ပရေတာအား ကျွေးမွေးပြီး ဘာဖြစ်သွားသည်ကို ကြည့်ရှုပါ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အော်ပရေတာက စဉ်းစားပြီး အောက်ပါအရာများကို ပြုလုပ်ခဲ့သည်။ ကျွန်ုပ်တို့တွင် Pods နှစ်ခု၊ ဝန်ဆောင်မှုသုံးခုနှင့် ရုတ်တရက် StatefulSets 2 ခု ရှိနှင့်ပြီးဖြစ်သည်။ StatefulSets ၂ ခု ဘာကြောင့်လဲ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ပုံကြမ်းပေါ်တွင် ၎င်းသည် ဤကဲ့သို့ဖြစ်သည် - ကျွန်ုပ်တို့တွင် ဘူးတစ်လုံးရှိသောအခါ ဤသည်မှာ ကျွန်ုပ်တို့၏ ကနဦးအခြေအနေဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဒီလိုဖြစ်လာတယ်။ ယခုအချိန်အထိ အရာအားလုံးသည် ရိုးရှင်းပြီး ထပ်တူကျနေပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ပြီးတော့ ဘာကြောင့် StatefulSets နှစ်ခုဖြစ်လာတာလဲ။ ဤတွင် ကျွန်ုပ်တို့သည် Kubernetes တွင် Pods များကို မည်ကဲ့သို့ စီမံခန့်ခွဲသည်ဟူသော မေးခွန်းကို ရှင်းရှင်းလင်းလင်း ဆွေးနွေးရန် လိုအပ်ပါသည်။

နမူနာပုံစံတစ်ခုမှ Pods အစုံကို ဖန်တီးရန် StatefulSet ဟုခေါ်သော အရာတစ်ခုရှိသည်။ ဤနေရာတွင် အဓိကအချက်မှာ Template ဖြစ်သည်။ StatefulSet တစ်ခုတွင် နမူနာပုံစံတစ်ခုကို အသုံးပြု၍ Pods အများအပြားကို သင်ဖွင့်နိုင်သည်။ ဤနေရာတွင် အဓိကစကားစုမှာ "ပုံစံပလိတ်တစ်ခုအတွက် Pods များစွာ" ဖြစ်သည်။

ပြီးတော့ အစုတစ်ခုလုံးကို StatefulSet တစ်ခုအဖြစ် ထုပ်ပိုးပြီး အစုအဝေးတစ်ခုလုံးဖြစ်အောင်လုပ်ဖို့ ကြီးမားတဲ့သွေးဆောင်မှုတစ်ခု ရှိခဲ့ပါတယ်။ အလုပ်ဖြစ်မည်၊ ပြဿနာမရှိပါ။ ဒါပေမယ့် သတိထားစရာတစ်ခုရှိတယ်။ ကျွန်ုပ်တို့သည် ClickHouse ဗားရှင်းများစွာမှ ကွဲပြားသော အစုအဝေးတစ်ခုကို စုစည်းလိုပါက၊ မေးခွန်းများ စတင်ပေါ်ပေါက်လာသည်။ ဟုတ်ကဲ့၊ StatefulSet သည် အပ်ဒိတ်တစ်ခု လွှင့်တင်နိုင်ပြီး ထိုနေရာတွင် သင်သည် ဗားရှင်းအသစ်ကို ထုတ်နိုင်သည်၊ ဤမျှလောက်များစွာကို တစ်ချိန်တည်းတွင် မကြိုးစားရန် လိုအပ်ကြောင်း ရှင်းပြပါ။

သို့သော် ကျွန်ုပ်တို့သည် လုပ်ငန်းတာဝန်ကို ခွဲထုတ်ပြီး လုံးဝကွဲလွဲနေသော အစုအဝေးတစ်ခု ပြုလုပ်လိုသည်ဟု ဆိုပါက၊ ကျွန်ုပ်တို့သည် ဗားရှင်းဟောင်းမှ အသစ်သို့ ပြောင်းလဲခြင်းကို မလိုလားသော်လည်း၊ ဝေါဟာရနှစ်ခုလုံးတွင် ကွဲပြားသော အစုအဝေးတစ်ခုကို ဖန်တီးလိုပါသည်။ ClickHouse ၏ မတူညီသော ဗားရှင်းများနှင့် မတူညီသော သိုလှောင်မှု သတ်မှတ်ချက်များတွင်။ ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့သည် သီးခြားဒစ်များပေါ်တွင်၊ ယေဘုယျအားဖြင့်၊ ကွဲပြားသော အစုအဝေးတစ်ခုကို လုံးလုံးလျားလျားတည်ဆောက်ရန်၊ နှေးကွေးသောစက်များတွင် ပုံတူများကို ပြုလုပ်လိုပါသည်။ StatefulSet သည် နမူနာပုံစံတစ်ခုမှ စံသတ်မှတ်ထားသော ဖြေရှင်းချက်ကို ပြုလုပ်ပေးသောကြောင့်၊ ထိုသို့လုပ်ဆောင်ရန် နည်းလမ်းမရှိပါ။

တစ်ချို့က တွေးပြီးတာနဲ့ ဒီနည်းအတိုင်း လုပ်မယ်လို့ ဆုံးဖြတ်လိုက်တယ်။ ကျွန်ုပ်တို့တွင် ပုံတူတစ်ခုစီသည် ၎င်း၏ကိုယ်ပိုင် StatefulSet တွင်ရှိသည်။ ဤဖြေရှင်းချက်အတွက် အားနည်းချက်အချို့ရှိသော်လည်း လက်တွေ့တွင် ၎င်းကို အော်ပရေတာမှ လုံးလုံးလျားလျား ဖုံးအုပ်ထားသည်။ ပြီးတော့ အားသာချက်တွေ အများကြီးရှိတယ်။ ကျွန်ုပ်တို့ လိုချင်သော အတိအကျ အစုအဝေးကို ဥပမာအားဖြင့်၊ လုံးဝကွဲပြားသော အစုအဝေးတစ်ခုကို တည်ဆောက်နိုင်သည်။ ထို့ကြောင့်၊ ကျွန်ုပ်တို့တွင် ပုံတူတစ်ခုပါရှိသော shard နှစ်ခုရှိသည့် အစုအဝေးတစ်ခုတွင်၊ ကွဲပြားသောအစုအဝေးတစ်ခုကို တည်ဆောက်နိုင်စေရန် အထက်ဖော်ပြပါအကြောင်းများကြောင့် ဤချဉ်းကပ်မှုကို ရွေးချယ်ခဲ့ခြင်းကြောင့် ကျွန်ုပ်တို့တွင် StatefulSets 2 ခုနှင့် Pods 2 ခု တိတိပပရှိပါမည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

လက်တွေ့ပြဿ နာကို ပြန်ကြည့်ရအောင်။ ကျွန်ုပ်တို့၏ အစုအဝေးတွင် သုံးစွဲသူများကို သတ်မှတ်ရန် လိုအပ်သည် Kubernetes ရှိ ClickHouse ၏ဖွဲ့စည်းပုံအချို့ကို သင်လုပ်ဆောင်ရန်လိုအပ်သည်။ အော်ပရေတာသည် ဤအတွက် ဖြစ်နိုင်ခြေအားလုံးကို ပေးသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

YAML တွင် ကျွန်ုပ်တို့ လိုချင်သောအရာကို တိုက်ရိုက်ရေးနိုင်သည်။ ဖွဲ့စည်းမှုရွေးချယ်စရာအားလုံးကို ဤ YAML မှ ClickHouse configs သို့ တိုက်ရိုက်မြေပုံဆွဲထားပြီး၊ ထို့နောက် အစုအဝေးတစ်ခုလုံးကို ဖြန့်ဝေပေးသည်။

မင်းဒီလိုရေးနိုင်တယ်။ ဒါက ဥပမာ။ စကားဝှက်ကို စာဝှက်ထားနိုင်သည်။ ClickHouse configuration options များအားလုံးကို လုံးဝထောက်ခံပါသည်။ ဒါက ဥပမာတစ်ခုပဲ။

အစုအဝေးဖွဲ့စည်းပုံကို ConfigMap အဖြစ် ဖြန့်ဝေထားသည်။ လက်တွေ့တွင်၊ ConfigMap အပ်ဒိတ်သည် ချက်ချင်းဖြစ်ပေါ်ခြင်းမရှိပါ၊ ထို့ကြောင့် အစုအဝေးကြီးဖြစ်ပါက ဖွဲ့စည်းပုံအခြေခံဥပဒေကို တွန်းပို့သည့်လုပ်ငန်းစဉ်သည် အချိန်အနည်းငယ်ကြာပါသည်။ ဒါပေမယ့် အားလုံးက သုံးရတာ အရမ်းအဆင်ပြေတယ်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အလုပ်ရှုပ်ရအောင်။ အစုအဖွဲ့သည် ဖွံ့ဖြိုးဆဲဖြစ်သည်။ ကျွန်ုပ်တို့သည် အချက်အလက်ကို ပုံတူပွားလိုပါသည်။ ဆိုလိုသည်မှာ၊ ကျွန်ုပ်တို့တွင် shard နှစ်ခုရှိပြီး၊ တစ်ခုစီတွင် ပုံတူတစ်ခုစီရှိပြီး အသုံးပြုသူများကို configure လုပ်ထားပါသည်။ ကျွန်ုပ်တို့ ကြီးထွားလာပြီး ပုံတူကူးချခြင်းကို ပြုလုပ်လိုပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ပုံတူကူးရန် ကျွန်ုပ်တို့ ဘာလိုအပ်သနည်း။

ကျွန်ုပ်တို့သည် ZooKeeper လိုအပ်ပါသည်။ ClickHouse တွင် ZooKeeper ကို အသုံးပြု၍ ပုံတူပွားခြင်းကို တည်ဆောက်ထားသည်။ မတူကွဲပြားသော ClickHouse ပုံတူများသည် ClickHouse တွင် မည်သည့်ဒေတာဘလောက်များရှိသည်နှင့် ပတ်သက်၍ သဘောတူညီမှုရရှိရန် ZooKeeper လိုအပ်ပါသည်။

ZooKeeper ကို မည်သူမဆို အသုံးပြုနိုင်ပါသည်။ လုပ်ငန်းတွင် ပြင်ပ ZooKeeper ရှိလျှင် ၎င်းကို အသုံးပြုနိုင်သည်။ မဟုတ်ပါက၊ ကျွန်ုပ်တို့၏ repository မှ ၎င်းကို သင်ထည့်သွင်းနိုင်သည်။ ဤအရာအားလုံးကိုပိုမိုလွယ်ကူစေမည့် installer တစ်ခုရှိသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

စနစ်တစ်ခုလုံး၏ အပြန်အလှန်ဆက်သွယ်မှုပုံစံသည် ဤကဲ့သို့ ထွက်ပေါ်လာသည်။ ကျွန်ုပ်တို့တွင် Kubernetes ပလပ်ဖောင်းတစ်ခုရှိသည်။ ၎င်းသည် ClickHouse အော်ပရေတာအား လုပ်ဆောင်သည်။ ငါ ZooKeeper ကို ဒီမှာ ပုံရိုက်ခဲ့တယ်။ အော်ပရေတာသည် ClickHouse နှင့် ZooKeeper နှစ်ခုလုံးနှင့် အပြန်အလှန်အကျိုးသက်ရောက်သည်။ ဆိုလိုသည်မှာ အပြန်အလှန် အကျိုးရလဒ်များ ဖြစ်သည်။

k8s တွင် ဒေတာကို အောင်မြင်စွာ ပုံတူပွားရန် ClickHouse အတွက် ဤအရာအားလုံး လိုအပ်ပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကူးယူခြင်းအတွက် ဖော်ပြချက်သည် မည်သို့မည်ပုံရှိမည်ကို ယခုလုပ်ဆောင်ရမည့်တာဝန်ကို ကြည့်ကြပါစို့။

ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ဖော်ပြချက်တွင် အပိုင်းနှစ်ပိုင်းကို ထည့်သွင်းနေပါသည်။ ပထမအချက်မှာ Kubernetes အတွင်း သို့မဟုတ် ပြင်ပတွင် ဖြစ်နိုင်သည့် ZooKeeper ကို ရယူရမည့်နေရာဖြစ်သည်။ ဤသည်မှာ ဖော်ပြချက်တစ်ခုမျှသာဖြစ်သည်။ ပုံတူများကို ကျွန်ုပ်တို့ မှာကြားပါသည်။ အဲဒါတွေ။ ပုံတူနှစ်ခုလိုချင်တယ်။ စုစုပေါင်း အထွက်တွင် အစေ့ ၄ လုံး ရှိသင့်သည်။ သိုလှောင်မှုအကြောင်း ကျွန်ုပ်တို့မှတ်မိသည်၊ ၎င်းသည် နောက်အနည်းငယ်ကြာမှ ပြန်လာပါမည်။ ထိန်ပင်သည် သီးခြားဇာတ်လမ်းဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဤကဲ့သို့ဖြစ်ခဲ့သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဒီလိုဖြစ်လာတယ်။ ပုံတူများထည့်ထားသည်။ နံပါတ် ၄ က အဆင်မပြေဘူး၊ အဲဒီထဲမှာ အများကြီးရှိနိုင်တယ်လို့ ကျွန်တော်တို့ ယုံကြည်တယ်။ ပြီးလျှင် ZooKeeper ကို ဘေးဘက်တွင် ထည့်ထားသည်။ အစီအစဥ်များသည် ပိုမိုရှုပ်ထွေးလာသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

နောက်အလုပ်တစ်ခုကို ထည့်ဖို့အချိန်ရောက်ပြီ။ Persistent Storage ကို ထည့်ပါမယ်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)Persistent Storage အတွက် ကျွန်ုပ်တို့တွင် ရွေးချယ်စရာအမျိုးမျိုးရှိသည်။

ဥပမာအားဖြင့်၊ Amazon၊ Google ကိုအသုံးပြု၍ cloud ဝန်ဆောင်မှုပေးသူတွင် အလုပ်လုပ်နေပါက၊ cloud storage ကိုအသုံးပြုရန် ကြီးမားသောသွေးဆောင်မှုတစ်ခုရှိပါသည်။ အရမ်းအဆင်ပြေတယ်၊ ​​ကောင်းတယ်။

ပြီးတော့ ဒုတိယရွေးချယ်စရာတစ်ခုရှိတယ်။ ကျွန်ုပ်တို့သည် node တစ်ခုစီတွင် ဒေသန္တရဒစ်ခ်များ ရှိနေသောအခါ ၎င်းသည် ဒေသဆိုင်ရာ သိုလှောင်မှုအတွက် ဖြစ်သည်။ ဤရွေးချယ်မှုသည် အကောင်အထည်ဖော်ရန် ပိုမိုခက်ခဲသော်လည်း တစ်ချိန်တည်းတွင် ၎င်းသည် ပိုမိုအကျိုးဖြစ်ထွန်းသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

cloud သိုလှောင်မှုနှင့်ပတ်သက်၍ ကျွန်ုပ်တို့တွင် အဘယ်အရာရှိသည်ကို ကြည့်ကြပါစို့။

အားသာချက်တွေရှိတယ်။ configure လုပ်ရန် အလွန်လွယ်ကူပါသည်။ ကျွန်ုပ်တို့သည် ဤကဲ့သို့သောနှင့် ထိုကဲ့သို့သော အတန်းအစား၏ သိုလှောင်မှုပမာဏကို ကျေးဇူးပြု၍ ကျွန်ုပ်တို့အား ကျေးဇူးပြု၍ cloud ဝန်ဆောင်မှုပေးသူထံမှ မှာယူပါသည်။ အတန်းများကို ပံ့ပိုးပေးသူများမှ သီးခြားစီစဉ်ထားသည်။

ပြီးတော့ အားနည်းချက်တစ်ခုရှိတယ်။ အချို့အတွက်၊ ဤသည်မှာ အရေးပါသော အားနည်းချက်တစ်ခုဖြစ်သည်။ ဟုတ်ပါတယ်၊ စွမ်းဆောင်ရည်ဆိုင်ရာပြဿနာအချို့ရှိလိမ့်မည်။ ၎င်းသည် အသုံးပြုရန် အလွန်အဆင်ပြေပြီး ယုံကြည်စိတ်ချရသော်လည်း စွမ်းဆောင်ရည် အားနည်းချက်အချို့ရှိပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အဘယ့်ကြောင့်ဆိုသော် ClickHouse သည် ကုန်ထုတ်စွမ်းအားကို အထူးအာရုံစိုက်သည်၊ ၎င်းသည် တတ်နိုင်သမျှ ညှစ်ထုတ်သည်ဟုပင် ပြောနိုင်သည်၊ ထို့ကြောင့် သုံးစွဲသူများစွာသည် အမြင့်ဆုံးကုန်ထုတ်စွမ်းအားကို ညှစ်ထုတ်ရန် ကြိုးစားကြသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

၎င်းကို အကောင်းဆုံးရယူရန်၊ ကျွန်ုပ်တို့သည် ဒေသတွင်းသိုလှောင်မှု လိုအပ်ပါသည်။

Kubernetes သည် Kubernetes တွင် ဒေသတွင်းသိုလှောင်မှုကို အသုံးပြုရန်အတွက် abstraction သုံးခုကို ပံ့ပိုးပေးပါသည်။ ဤ-

  • EmptyDir
  • HostPath
  • ဒေသဆိုင်ရာ

ဘယ်လိုကွာခြားပြီး ဘယ်လိုဆင်တူလဲဆိုတာကို ကြည့်ရအောင်။

ပထမဦးစွာ၊ ချဉ်းကပ်မှု သုံးခုစလုံးတွင် ကျွန်ုပ်တို့တွင် သိုလှောင်မှု ရှိသည် - ၎င်းတို့သည် တူညီသော k8s node ပေါ်တွင်တည်ရှိသော ဒေသန္တရ disk များဖြစ်သည်။ ဒါပေမယ့် သူတို့မှာ ကွဲလွဲချက်တချို့ရှိတယ်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အရိုးရှင်းဆုံးတစ်ခု၊ ဆိုလိုသည်မှာ ဗလာဒင်နှင့်စကြပါစို့။ ဒါက လက်တွေ့မှာ ဘာလဲ။ ကျွန်ုပ်တို့၏ သတ်မှတ်ချက်တွင်၊ ကျွန်ုပ်တို့သည် စက်တွင်းဒစ်ခ်ရှိ ဖိုင်တွဲသို့ ဝင်ရောက်ခွင့်ပေးရန် ကျွန်ုပ်တို့အား ကွန်တိန်နာပြုလုပ်ခြင်းစနစ် (မကြာခဏဆိုသလို Docker) ကို တောင်းဆိုပါသည်။

လက်တွေ့တွင်၊ Docker သည် ၎င်း၏ကိုယ်ပိုင်လမ်းကြောင်းတစ်လျှောက်ရှိ ယာယီဖိုင်တွဲတစ်ခုကို ဖန်တီးပြီး ၎င်းကို long hash ဟုခေါ်သည်။ ၎င်းကိုဝင်ရောက်ကြည့်ရှုရန် အင်တာဖေ့စ်တစ်ခု ထောက်ပံ့ပေးသည်။

ဒီအလုပ်က ဘယ်လို စွမ်းဆောင်နိုင်မလဲ။ ၎င်းသည် ဒေသန္တရဒစ်ခ်အမြန်နှုန်းဖြင့် လုပ်ဆောင်လိမ့်မည်၊ ဆိုလိုသည်မှာ၊ ၎င်းသည် သင့်ဝက်အူသို့ အပြည့်အဝဝင်ရောက်ခွင့်ဖြစ်သည်။

ဒါပေမယ့် ဒီကိစ္စမှာ အားနည်းချက်ရှိတယ်။ မြဲမြံခြင်းသည် ဤကိစ္စအတွက် အတော်လေး သံသယဖြစ်ဖွယ်ရှိသည်။ Docker သည် ကွန်တိန်နာများနှင့်အတူ ပထမဆုံးအကြိမ် ရွေ့လျားသောအခါ၊ Persistent ပျောက်ဆုံးသွားပါသည်။ Kubernetes သည် အကြောင်းတစ်ခုခုကြောင့် ဤ Pod ကို အခြားဒစ်ခ်သို့ ရွှေ့လိုပါက၊ ဒေတာ ဆုံးရှုံးသွားမည်ဖြစ်သည်။

၎င်းသည် ပုံမှန်အမြန်နှုန်းကို ပြသထားပြီးဖြစ်သောကြောင့်၊ ဤနည်းလမ်းသည် စမ်းသပ်မှုများအတွက် ကောင်းမွန်သော်လည်း ပြင်းထန်သောအရာတစ်ခုအတွက် ဤရွေးချယ်မှုသည် မသင့်လျော်ပါ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ထို့ကြောင့် ဒုတိယနည်းလမ်းတစ်ခုရှိသည်။ ဤသည်မှာ hostPath ဖြစ်သည်။ ယခင်ဆလိုက်နှင့် ဤတစ်ခုကိုကြည့်လျှင် ခြားနားချက်တစ်ခုသာ တွေ့နိုင်သည်။ ကျွန်ုပ်တို့၏ဖိုင်တွဲကို Docker မှ Kubernetes node သို့ တိုက်ရိုက်ရွှေ့ထားသည်။ ဒီနေရာမှာ နည်းနည်းပိုရိုးရှင်းပါတယ်။ ကျွန်ုပ်တို့၏ဒေတာကို သိမ်းဆည်းလိုသည့် ဒေသဆိုင်ရာ ဖိုင်စနစ်တွင် လမ်းကြောင်းကို တိုက်ရိုက်သတ်မှတ်ပါသည်။

ဒီနည်းလမ်းက အားသာချက်တွေရှိပါတယ်။ ဒါက တကယ့် Persistent ဖြစ်ပြီး၊ အဲဒါက ဂန္ထဝင်ပါပဲ။ ကျွန်ုပ်တို့သည် အချို့သောလိပ်စာတွင် ဒစ်ခ်ပေါ်တွင် မှတ်တမ်းတင်ထားသော ဒေတာကို ရရှိပါမည်။

အားနည်းချက်တွေလည်း ရှိတယ်။ ဒါက စီမံခန့်ခွဲမှုရဲ့ ရှုပ်ထွေးမှုပါ။ ကျွန်ုပ်တို့၏ Kubernetes သည် Pod အား အခြားရုပ်ပိုင်းဆိုင်ရာ node သို့ ရွှေ့လိုပေမည်။ ဤသည်မှာ DevOps တွင်ပါဝင်လာခြင်းဖြစ်သည်။ ဤ pods များကို သင့်တွင် ဤလမ်းကြောင်းများတစ်လျှောက်တွင် တပ်ဆင်ထားသည့် တစ်စုံတစ်ရာရှိနေသည့် အဆိုပါ node များသို့သာ ရွှေ့ပြောင်းနိုင်ပြီး၊ တစ်ချိန်လျှင် node တစ်ခုထက်မပိုစေကြောင်း စနစ်တစ်ခုလုံးအား မှန်ကန်စွာရှင်းပြရပါမည်။ လုံလောက်ပါတယ်။

အထူးသဖြင့် ဤရည်ရွယ်ချက်များအတွက်၊ ကျွန်ုပ်တို့သည် ဤရှုပ်ထွေးမှုအားလုံးကို ဖုံးကွယ်ရန်အတွက် ကျွန်ုပ်တို့၏အော်ပရေတာတွင် နမူနာပုံစံများကို ပြုလုပ်ထားပါသည်။ ပြီးတော့ သင် ရိုးရိုးရှင်းရှင်းပြောနိုင်သည်- "ကျွန်ုပ်သည် ရုပ်ပိုင်းဆိုင်ရာ node တစ်ခုစီအတွက် ClickHouse ၏ ဥပမာတစ်ခုနှင့် ထိုကဲ့သို့သောလမ်းကြောင်းတစ်လျှောက်တွင် ရှိချင်ပါသည်။"

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

သို့သော် ကျွန်ုပ်တို့သည် ဤလိုအပ်ချက်ကို လိုအပ်သူများသာမဟုတ်ပါ၊ ထို့ကြောင့် Kubernetes ကိုယ်တိုင်မှ လူကြီးလူကောင်းများသည် ရုပ်ပိုင်းဆိုင်ရာဒစ်များကို အသုံးပြုခွင့်ရလိုကြောင်း နားလည်သောကြောင့် ၎င်းတို့သည် တတိယအလွှာကို ပံ့ပိုးပေးပါသည်။

အဲဒါကို ပြည်တွင်းလို့ခေါ်တယ်။ ယခင်ဆလိုက်နှင့် လက်တွေ့အားဖြင့် ကွာခြားမှု မရှိပါ။ ကျွန်ုပ်တို့သည် ဤ pods များကို node မှ node သို့ လွှဲပြောင်းခြင်းမပြုမီတွင်၊ ၎င်းတို့ကို local physical disk သို့ လမ်းကြောင်းအချို့တွင် တွဲထားရမည်ဖြစ်ပြီး၊ သို့သော် ယခုအခါ ဤအသိပညာအားလုံးကို Kubernetes ကိုယ်တိုင်တွင် ထုပ်ပိုးထားသည်။ ၎င်းသည် configure လုပ်ရန်ပိုမိုလွယ်ကူလာသည်ကိုတွေ့ရသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကျွန်တော်တို့ရဲ့ လက်တွေ့ပြဿနာကို ပြန်ကြည့်ရအောင်။ YAML နမူနာပုံစံသို့ ပြန်သွားကြပါစို့။ ဤနေရာတွင် ကျွန်ုပ်တို့တွင် သိုလှောင်မှုအစစ်အမှန်ရှိသည်။ အဲဒါကို ကျနော်တို့ ပြန်ကြည့်တယ်။ ကျွန်ုပ်တို့သည် ဂန္ထဝင် VolumeClaim နမူနာပုံစံကို k8s တွင် သတ်မှတ်ထားသည်။ ကျွန်ုပ်တို့ လိုချင်သော သိုလှောင်မှု အမျိုးအစားကို ဖော်ပြပါသည်။

၎င်းပြီးနောက် k8s သည် သိုလှောင်မှုကို တောင်းဆိုလိမ့်မည်။ StatefulSet တွင် ကျွန်ုပ်တို့အား ခွဲဝေပေးပါမည်။ အဆုံးတွင်၎င်းသည် ClickHouse ၏လက်မှဖြစ်လိမ့်မည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကျွန်တော်တို့မှာ ဒီအစီအစဉ်ရှိတယ်။ ကျွန်ုပ်တို့၏ မြဲမြံသောသိုလှောင်မှုသည် အနီရောင်ဖြစ်ပြီး ၎င်းကိုလုပ်ဆောင်ရန် လိုအပ်သည်ဟု အရိပ်အမြွက်ပြပုံရသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ပြီးတော့ အစိမ်းရောင်ပြောင်းသွားတယ်။ ယခုအခါ k8s အစုအဝေးအစီအစဉ်ရှိ ClickHouse သည် လုံးဝ အပြီးသတ်သွားပါပြီ။ ကျွန်ုပ်တို့တွင် shard များ၊ ပုံတူများ၊ ZooKeeper ရှိသည်၊ တစ်နည်းမဟုတ်တစ်နည်း အကောင်အထည်ဖော်သည့် တကယ့် Persistent ရှိသည်။ အစီအစဥ်သည် အပြည့်အဝလည်ပတ်နေပြီဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကျွန်ုပ်တို့ ဆက်လက်ရှင်သန်နေပါသည်။ ကျွန်ုပ်တို့၏အစုအဖွဲ့သည် ဖွံ့ဖြိုးဆဲဖြစ်သည်။ Alexey သည် ClickHouse ၏ ဗားရှင်းအသစ်ကို ကြိုးပမ်းခဲ့သည်။

ကျွန်ုပ်တို့၏အစုအဝေးရှိ ClickHouse ဗားရှင်းအသစ်ကို စမ်းသပ်ရန် လက်တွေ့ကျသောတာဝန်တစ်ခု ပေါ်လာသည်။ သဘာဝအားဖြင့်၊ သင်သည် ၎င်းကို အကုန်မထုတ်ချင်ပါ၊ ဝေးထောင့်တစ်နေရာတွင် ပုံစံတူဗားရှင်းအသစ်တစ်ခုကို ထားလိုပြီး ဗားရှင်းအသစ်တစ်ခုမဟုတ်သော်လည်း ၎င်းတို့သည် မကြာခဏထွက်လာသောကြောင့် ဗားရှင်းအသစ်နှစ်ခုကို တစ်ပြိုင်နက်တည်းထားလိုပါသည်။

ဒီအကြောင်း ဘာပြောနိုင်မလဲ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဒီမှာ ဒီလိုမျိုး အခွင့်အရေးတစ်ခုပဲရှိတယ်။ ဤအရာများသည် pod ပုံစံများဖြစ်သည်။ ကျွန်ုပ်တို့၏အော်ပရေတာသည် သင့်အား ကွဲပြားသောအစုအဝေးတစ်ခုတည်ဆောက်ရန် လုံးဝခွင့်ပြုထားကြောင်း သင်ရေးသားနိုင်သည်။ အဲဒါတွေ။ အစုအစည်းတစ်ခုရှိ ပုံတူများအားလုံးကို စတင်ကာ၊ ကျွန်ုပ်တို့လိုချင်သော ClickHouse ဗားရှင်း၊ မည်သည့်ဗားရှင်းကို ကျွန်ုပ်တို့ လိုချင်သည်ဖြစ်စေ ကိုယ်ရေးကိုယ်တာပုံတူတစ်ခုစီဖြင့် အဆုံးသတ်ပါသည်။ ကျွန်ုပ်တို့လိုအပ်သော ဖွဲ့စည်းမှုပုံစံဖြင့် အစုအဖွဲ့ကို အပြည့်အဝ configure လုပ်နိုင်ပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အထဲမှာ နည်းနည်းနက်သွားရအောင်။ ယင်းမတိုင်မီတွင်၊ ClickHouse-operator သည် ClickHouse ၏အသေးစိတ်အချက်အလက်များနှင့် စပ်လျဉ်း၍ ကျွန်ုပ်တို့ပြောဆိုခဲ့သည်။

ယခု ကျွန်ုပ်သည် မည်သည့်အော်ပရေတာမဆို ယေဘူယျအားဖြင့် အလုပ်လုပ်ပုံအပြင် K8s နှင့် မည်သို့အပြန်အလှန်အကျိုးသက်ရောက်ပုံနှင့် ပတ်သက်၍ စကားအနည်းငယ်ပြောလိုပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

K8s နဲ့ ဆက်ဆံပုံကို အရင်ကြည့်ရအောင်။ Kubectl လျှောက်ထားသောအခါ ဘာဖြစ်သွားမလဲ။ ကျွန်ုပ်တို့၏အရာဝတ္ထုများသည် API မှတဆင့် etcd တွင်ပေါ်လာသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဥပမာအားဖြင့်၊ အခြေခံ Kubernetes အရာဝတ္ထုများ- pod၊ StatefulSet၊ ဝန်ဆောင်မှု စသည်တို့ကို စာရင်းအောက်တွင် ဖော်ပြထားသည်။

တစ်ချိန်တည်းမှာ ရုပ်ပိုင်းဆိုင်ရာက ဘာမှမဖြစ်သေးပါဘူး။ ဤအရာဝတ္ထုများကို အစုအဝေးတွင် အကောင်ထည်ဖော်ရပါမည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဤနေရာတွင် controller ဝင်လာသည်။ ထိန်းချုပ်ကိရိယာသည် ဤဖော်ပြချက်များအား အကောင်အထည်ပေါ်စေသည့် အထူး k8s အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ ကာယကံနဲ့ ဘယ်လို လုပ်ရမယ်ဆိုတာ သူသိတယ်။ သူသည် ကွန်တိန်နာများကို မည်သို့လည်ပတ်ရမည်၊ ဆာဗာအလုပ်လုပ်နိုင်စေရန်အတွက် ထိုနေရာတွင် ပြုပြင်ရမည့်အရာများကို သိရှိသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

၎င်းသည် ကျွန်ုပ်တို့၏အရာဝတ္ထုများကို K8s တွင် အကောင်အထည်ပေါ်စေသည်။

သို့သော် ကျွန်ုပ်တို့သည် pods များနှင့် StatefulSets များဖြင့်သာ လည်ပတ်လိုပါက၊ ကျွန်ုပ်တို့သည် ClickHouseInstallation၊ ဆိုလိုသည်မှာ ClickHouse အမျိုးအစား၏ အရာဝတ္ထုတစ်ခုဖြစ်ပြီး ၎င်းကို တစ်ခုတည်းအဖြစ် လုပ်ဆောင်ရန်အတွက် ကျွန်ုပ်တို့ ဖန်တီးလိုပါသည်။ အခုထိတော့ ဒီလိုဖြစ်နိုင်ချေ မရှိသေးပါဘူး။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဒါပေမယ့် K8s မှာ အောက်ပါကောင်းတဲ့အရာတွေရှိပါတယ်။ ကျွန်ုပ်တို့၏အစုအဝေးကို pods နှင့် StatefulSet တို့မှ စုဝေးစေမည့် ဤရှုပ်ထွေးသည့်အရာကဲ့သို့သော တစ်နေရာရာတွင် ကျွန်ုပ်တို့ကို ကျွန်ုပ်တို့အားရှိစေလိုပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ပြီးတော့ ဒီအတွက် ဘာတွေလုပ်ဖို့ လိုမလဲ။ ပထမဦးစွာ Custom Resource Definition သည် ပုံထဲသို့ရောက်ပါသည်။ ဒါဘာလဲ? ဤသည်မှာ K8s အတွက် ဖော်ပြချက်ဖြစ်ပြီး၊ အတွင်းတွင် ရှုပ်ထွေးနေမည့် pod, StatefulSet တွင် စိတ်ကြိုက်ရင်းမြစ်တစ်ခု ထည့်လိုသည့် နောက်ထပ်ဒေတာအမျိုးအစားတစ်ခု ရှိပါမည်။ ဤသည်မှာ ဒေတာဖွဲ့စည်းပုံ၏ ဖော်ပြချက်ဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

Kubectl apply မှတဆင့်လည်း ထိုနေရာသို့ ပို့ပေးပါသည်။ Kubernetes က ဝမ်းသာအားရ ယူလိုက်သည်။

ယခုကျွန်ုပ်တို့၏သိုလှောင်မှုတွင်၊ etcd ရှိ အရာဝတ္ထုသည် ClickHouseInstallation ဟုခေါ်သော စိတ်ကြိုက်အရင်းအမြစ်တစ်ခုကို မှတ်တမ်းတင်ရန် အခွင့်အရေးရှိသည်။

ဒါပေမယ့် အခုအချိန်အထိ ဘာမှဖြစ်လာမှာမဟုတ်ဘူး။ ဆိုလိုသည်မှာ၊ ယခုကျွန်ုပ်တို့သည် shards များနှင့်ပုံတူများကိုဖော်ပြသည့် YAML ဖိုင်ကိုဖန်တီးပြီး "kubectl apply" ဟုပြောပါက၊ ထို့နောက် Kubernetes သည် ၎င်းကိုလက်ခံမည်ဖြစ်ပြီး၊ ၎င်းကို etcd တွင်ထည့်ကာ "ကောင်းပြီ၊ ဒါပေမယ့် ကျွန်တော် ဘာလုပ်ရမှန်းမသိဘူး အဲဒါကို။ ClickHouseInstallation ကို ဘယ်လိုထိန်းသိမ်းရမလဲဆိုတာ ကျွန်တော်မသိဘူး။"

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ထို့ကြောင့်၊ Kubernetes သည် ဒေတာအမျိုးအစားအသစ်ကို ဆောင်ရွက်ပေးနိုင်ရန် တစ်စုံတစ်ဦးကို လိုအပ်ပါသည်။ ဘယ်ဘက်တွင် ကျွန်ုပ်တို့တွင် မူရင်းဒေတာအမျိုးအစားများနှင့် အလုပ်လုပ်နိုင်သော မူရင်း Kubernetes ထိန်းချုပ်ကိရိယာတစ်ခုရှိသည်။ ညာဘက်တွင် စိတ်ကြိုက်ဒေတာအမျိုးအစားများနှင့် အလုပ်လုပ်နိုင်သော စိတ်ကြိုက်ထိန်းချုပ်ကိရိယာတစ်ခု ရှိသင့်သည်။

နောက်တစ်မျိုးက အော်ပရေတာလို့ခေါ်တယ်။ K8s ပြင်ပတွင်လည်း လုပ်ဆောင်နိုင်သောကြောင့် ၎င်းကို Kubernetes အဖြစ် ဤနေရာတွင် အထူးထည့်သွင်းထားပါသည်။ မကြာခဏဆိုသလို၊ အော်ပရေတာအားလုံးကို Kubernetes တွင် ကွပ်မျက်ထားသော်လည်း မည်သည့်အရာကမှ အပြင်ဘက်တွင် မရပ်မနား တားဆီးထားသောကြောင့် ဤနေရာတွင် ၎င်းကို အပြင်ဘက်သို့ အထူးရွှေ့ထားသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ထို့အပြင်၊ အော်ပရေတာဟုလည်းလူသိများသော စိတ်ကြိုက်ထိန်းချုပ်သူသည် API မှတစ်ဆင့် Kubernetes နှင့် အပြန်အလှန်အကျိုးသက်ရောက်သည်။ API နဲ့ ဘယ်လို တုံ့ပြန်ရမလဲဆိုတာ သိထားပြီးသားပါ။ စိတ်ကြိုက်အရင်းအမြစ်တစ်ခုမှ ကျွန်ုပ်တို့ပြုလုပ်လိုသော ရှုပ်ထွေးသောပတ်လမ်းကို မည်သို့ပုံဖော်ရမည်ကို သူသိထားပြီးဖြစ်သည်။ ဤသည်မှာ အော်ပရေတာလုပ်သည့်အတိုင်းဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အော်ပရေတာဘယ်လိုအလုပ်လုပ်သလဲ။ သူဘယ်လိုလုပ်လဲဆိုတာကို ညာဘက်ခြမ်းကိုကြည့်လိုက်ရအောင်။ အော်ပရေတာသည် ဤအရာအားလုံးကို မည်သို့အကောင်အထည်ပေါ်စေသနည်း၊ K8s နှင့် နောက်ထပ်အပြန်အလှန်ဆက်သွယ်မှု မည်သို့ဖြစ်ပေါ်လာသည်ကို လေ့လာကြည့်ကြပါစို့။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အော်ပရေတာသည် ပရိုဂရမ်တစ်ခုဖြစ်သည်။ သူမသည် အဖြစ်အပျက်ကို ဦးတည်သည်။ အော်ပရေတာသည် Kubernetes API ကို အသုံးပြု၍ အစီအစဉ်များကို စာရင်းသွင်းသည်။ Kubernetes API တွင် သင်အစီအစဉ်များကို စာရင်းသွင်းနိုင်သည့် ဝင်ခွင့်အမှတ်များ ရှိသည်။ K8s တွင် တစ်စုံတစ်ခု ပြောင်းလဲပါက Kubernetes သည် လူတိုင်းထံ အဖြစ်အပျက်များကို ပေးပို့သည် ၊ ဆိုလိုသည်မှာ၊ ဤ API ပွိုင့်ကို စာရင်းသွင်းထားသူ မည်သူမဆို အကြောင်းကြားချက်များကို လက်ခံရရှိမည်ဖြစ်သည်။

အော်ပရေတာသည် ဖြစ်ရပ်များကို စာရင်းသွင်းပြီး တုံ့ပြန်မှုမျိုး ပြုလုပ်ရပါမည်။ ၎င်း၏တာဝန်မှာ ပေါ်ပေါက်လာသော အဖြစ်အပျက်များကို တုံ့ပြန်ရန်ဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အချို့သော အပ်ဒိတ်များဖြင့် ပွဲများကို ထုတ်ပေးပါသည်။ ClickHouseInstallation ၏ဖော်ပြချက်ပါရှိသော ကျွန်ုပ်တို့၏ YAML ဖိုင်ရောက်ရှိလာပါသည်။ kubectl apply မှတဆင့် etcd သို့သွားလေ၏။ ထိုနေရာတွင် ဖြစ်ရပ်တစ်ခု အစပျိုးခဲ့ပြီး ရလဒ်အနေဖြင့် ဤဖြစ်ရပ်သည် ClickHouse-operator သို့ ရောက်လာခဲ့သည်။ အော်ပရေတာသည် ဤဖော်ပြချက်ကို လက်ခံရရှိခဲ့သည်။ ပြီးတော့ သူတစ်ခုခုလုပ်ရမယ်။ ClickHouseInstallation အရာဝတ္တုအတွက် အပ်ဒိတ်တစ်ခု ရောက်ရှိလာပါက၊ သင်သည် အစုအဝေးကို အပ်ဒိတ်လုပ်ရန် လိုအပ်သည်။ အော်ပရေတာ၏တာဝန်မှာ အစုအဝေးကို အပ်ဒိတ်လုပ်ရန်ဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

သူဘာလုပ်နေတာလဲ။ ပထမဦးစွာ၊ ကျွန်ုပ်တို့သည် ဤအပ်ဒိတ်တွင် လုပ်ဆောင်မည့်အရာအတွက် လုပ်ဆောင်ချက်အစီအစဉ်တစ်ခု ရေးဆွဲရန်လိုအပ်ပါသည်။ အပ်ဒိတ်များသည် အလွန်သေးငယ်နိုင်သည်၊ i.e. YAML လည်ပတ်မှုတွင် သေးငယ်သော်လည်း အစုအဝေးတွင် အလွန်ကြီးမားသော အပြောင်းအလဲများကို ထည့်သွင်းနိုင်သည်။ ထို့ကြောင့်၊ အော်ပရေတာသည် အစီအစဉ်တစ်ခုကို ဖန်တီးပြီးနောက် ၎င်းကို လိုက်နာသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဤအစီအစဥ်အရ၊ သူသည် အစေ့များ၊ ဝန်ဆောင်မှုများ အကောင်အထည်ပေါ်စေရန်အတွက် အတွင်းတွင် ဤဖွဲ့စည်းပုံကို စတင်ချက်ပြုတ်သည်။ သူ့အဓိကတာဝန်ကို လုပ်ပါ။ ဤသည်မှာ Kubernetes တွင် ClickHouse အစုအဝေးတစ်ခုကို တည်ဆောက်နည်းဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကဲ ဒီလို စိတ်ဝင်စားစရာကောင်းတဲ့ အရာတစ်ခုကို ကြည့်လိုက်ကြရအောင်။ ၎င်းသည် Kubernetes နှင့် အော်ပရေတာကြားတွင် တာဝန်ခွဲဝေမှုတစ်ခုဖြစ်သည်။ Kubernetes ဘာလုပ်သလဲ၊ အော်ပရေတာလုပ်ဆောင်ပုံနှင့် ၎င်းတို့အချင်းချင်း အပြန်အလှန်တုံ့ပြန်ပုံ။

Kubernetes သည် စနစ်အရာများအတွက် တာဝန်ရှိသည်၊ ဆိုလိုသည်မှာ၊ စနစ်-နယ်ပယ်အဖြစ် အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သော အခြေခံအရာဝတ္ထုအစုအဝေးတစ်ခုအတွက်။ Kubernetes သည် pods များကိုဖွင့်နည်း၊ ကွန်တိန်နာများကိုပြန်လည်စတင်ရန်၊ volumes များကိုတပ်ဆင်နည်း၊ ConfigMap နှင့်မည်သို့အလုပ်လုပ်ရမည်ကိုသိသည်။ မည်သည့်အရာကိုမဆို စနစ်ဟု ခေါ်နိုင်သည်။

အော်ပရေတာများသည် ဒိုမိန်းများတွင် လုပ်ဆောင်သည်။ အော်ပရေတာတစ်ခုစီကို ၎င်း၏ဘာသာရပ်နယ်ပယ်အတွက် ပြုလုပ်ထားသည်။ ကျွန်ုပ်တို့သည် ClickHouse အတွက်ပြုလုပ်ခဲ့သည်။

နှင့် အော်ပရေတာသည် ပုံတူထည့်ခြင်း၊ ပုံတူပြုလုပ်ခြင်း၊ စောင့်ကြည့်စစ်ဆေးခြင်းစသည့် အကြောင်းအရာနယ်ပယ်အလိုက် တိကျစွာ အပြန်အလှန်တုံ့ပြန်သည်။ အဲဒီလို ကွဲပြားမှုရှိတယ်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ပုံတူလုပ်ဆောင်ချက်ကို ပေါင်းထည့်တဲ့အခါ ဒီတာဝန်ခွဲဝေမှု ဘယ်လိုဖြစ်ပေါ်လာသလဲဆိုတဲ့ လက်တွေ့ဥပမာကို ကြည့်ကြရအောင်။

ပုံစံတူတစ်ခုထည့်ရန် အော်ပရေတာသည် လုပ်ဆောင်စရာတစ်ခုကို လက်ခံရရှိသည် ။ အော်ပရေတာ ဘာလုပ်သလဲ။ StatefulSet အသစ်တစ်ခု ဖန်တီးရန် လိုအပ်ကြောင်း အော်ပရေတာမှ တွက်ချက်ပေးမည်ဖြစ်ပြီး ထိုကဲ့သို့သော ပုံစံများ၊ အသံအတိုးအကျယ် အရေးဆိုမှုကို ဖော်ပြရမည်ဖြစ်ပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အားလုံးကို ပြင်ဆင်ပြီး K8s သို့ ပေးပို့ခဲ့သည်။ ConfigMap၊ StatefulSet၊ Volume လိုအပ်တယ်လို့ သူကပြောပါတယ်။ Kubernetes အလုပ်လုပ်နေပါသည်။ သူလုပ်ဆောင်နေတဲ့ အခြေခံယူနစ်တွေကို အကောင်ထည်ဖော်တယ်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ထို့နောက် ClickHouse-operator သည် ပြန်လည်ပါဝင်လာသည်။ သူ့မှာ တစ်ခုခုလုပ်လို့ရနေပြီဖြစ်တဲ့ ကာယကံရှင်တစ်ယောက်ရှိတယ်။ ပြီးလျှင် ClickHouse-operator သည် domain စည်းကမ်းများဖြင့် အလုပ်လုပ်ပါသည်။ အဲဒါတွေ။ အတိအကျအားဖြင့် ClickHouse၊ အစုအဝေးတစ်ခုတွင် ပုံတူတစ်ခုထည့်သွင်းရန်အတွက်၊ ဦးစွာ၊ သင်သည် ဤအစုအဝေးတွင်ရှိသော ဒေတာအစီအစဉ်ကို စီစဉ်သတ်မှတ်ရပါမည်။ ဒုတိယအနေနှင့်၊ ဤပုံတူကို ရှင်းရှင်းလင်းလင်း ခြေရာခံနိုင်စေရန် စောင့်ကြည့်ရေးတွင် ထည့်သွင်းရပါမည်။ အော်ပရေတာက ဒါကို စီစဉ်ပြီးပြီ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ထို ClickHouse ကိုယ်တိုင်က ကစားပြီးမှသာ၊ i.e. အခြားအဆင့်မြင့်သောအဖွဲ့အစည်း။ ဒါက ဒေတာဘေ့စ်တစ်ခု ဖြစ်နေပါပြီ။ ၎င်းတွင် ၎င်း၏ကိုယ်ပိုင်ဥပမာ၊ အစုအဝေးတွင်ပါဝင်ရန် အဆင်သင့်ဖြစ်စေသော အခြားပုံစံတူပုံစံတူရှိသည်။

ပုံတူကူးထည့်သည့်အခါ ကွပ်မျက်ခြင်းနှင့် တာဝန်ခွဲဝေခြင်းကွင်းဆက်သည် အတော်လေး ရှည်လျားသည်ကို တွေ့ရပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏လက်တွေ့တာဝန်များကို ဆက်လက်လုပ်ဆောင်ပါသည်။ သင့်တွင် အစုအဝေးတစ်ခုရှိပြီးသားဖြစ်ပါက၊ သင်သည် ဖွဲ့စည်းမှုပုံစံကို ရွှေ့ပြောင်းနိုင်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ClickHouse နားလည်နိုင်သော ရှိပြီးသား xml မှတဆင့် ကူးထည့်နိုင်စေရန် ကျွန်ုပ်တို့ ပြုလုပ်ထားပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

သင်သည် ClickHouse ကို ကောင်းစွာချိန်ညှိနိုင်သည်။ hostPath၊ ဒေသဆိုင်ရာ သိုလှောင်မှုအကြောင်း ရှင်းပြသောအခါတွင် ဇုန်သတ်မှတ်ထားသော ဖြန့်ကျက်မှုသာဖြစ်သည်။ ဤသည်မှာ ဇုန်ခွဲဖြန့်ကျက်ခြင်းအား မှန်ကန်စွာပြုလုပ်နည်းဖြစ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

နောက်လက်တွေ့တာဝန်က စောင့်ကြည့်ရေးပါ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကျွန်ုပ်တို့၏ အစုအဝေးတွင် ပြောင်းလဲပါက၊ ထို့နောက် စောင့်ကြည့်စစ်ဆေးခြင်းကို အချိန်အခါအလိုက် စီစဉ်သတ်မှတ်ရန် လိုအပ်ပါသည်။

ပုံကြမ်းကို ကြည့်ရအောင်။ ဤနေရာတွင် အစိမ်းရောင်မြှားများကို ကြည့်ထားပြီးဖြစ်သည်။ အခု အနီရောင်မြှားတွေကို ကြည့်ရအောင်။ ဤနည်းဖြင့် ကျွန်ုပ်တို့၏အစုအဖွဲ့ကို စောင့်ကြည့်လိုပါသည်။ ClickHouse အစုအဝေးမှ မက်ထရစ်များသည် Prometheus သို့ရောက်ရှိပြီးနောက် Grafana သို့ မည်သို့နည်း။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

စောင့်ကြည့်ဖို့ အခက်အခဲက ဘာလဲ။ ယင်းကို အောင်မြင်မှုတစ်မျိုးအဖြစ် အဘယ်ကြောင့်တင်ပြရသနည်း။ အခက်အခဲသည် ဒိုင်းနမစ်တွင် တည်ရှိသည်။ ကျွန်ုပ်တို့တွင် အစုအဝေးတစ်ခုရှိပြီး ၎င်းသည် တည်ငြိမ်နေပါက၊ ကျွန်ုပ်တို့သည် စောင့်ကြည့်မှုကို တစ်ကြိမ်တည်းသတ်မှတ်နိုင်ပြီး စိတ်အနှောင့်အယှက်မဖြစ်တော့ပါ။

သို့သော် ကျွန်ုပ်တို့တွင် အစုအဝေးများစွာရှိသည် သို့မဟုတ် တစ်စုံတစ်ခုသည် အဆက်မပြတ်ပြောင်းလဲနေပါက၊ လုပ်ငန်းစဉ်သည် တက်ကြွနေပါသည်။ စောင့်ကြည့်စစ်ဆေးခြင်းကို အမြဲတစေ ပြန်လည်ပြင်ဆင်ခြင်းသည် အရင်းအမြစ်များနှင့် အချိန်ကို ဖြုန်းတီးခြင်းဖြစ်သည်၊ ဆိုလိုသည်မှာ၊ ပျင်းရိခြင်းမျှသာ။ ၎င်းသည် အလိုအလျောက်လုပ်ဆောင်ရန် လိုအပ်သည်။ အခက်အခဲသည် လုပ်ငန်းစဉ်၏ ဒိုင်းနမစ်တွင် တည်ရှိသည်။ အော်ပရေတာသည် ၎င်းကို ကောင်းမွန်စွာ အလိုအလျောက်ပြန်လုပ်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ကျွန်ုပ်တို့၏အစုအဝေးသည် မည်သို့တိုးတက်ခဲ့သနည်း။ အစတုန်းကတော့ သူဒီလိုပါပဲ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

နောက်တော့ သူဒီလိုဖြစ်သွားတယ်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

နောက်ဆုံးတော့ သူဒီလိုဖြစ်သွားတယ်။

စောင့်ကြည့်စစ်ဆေးခြင်းကို အော်ပရေတာမှ အလိုအလျောက်လုပ်ဆောင်သည်။ တစ်ခုတည်းသောအချက်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ထွက်ပေါက်တွင်ကျွန်ုပ်တို့သည်ကျွန်ုပ်တို့၏အစုအဝေး၏အသက်တာမည်သို့ဆူပွက်လာသည်ကိုကြည့်ရှုရန် Grafana ဒက်ရှ်ဘုတ်ကိုကြည့်ပါ။

စကားမစပ်၊ Grafana ဒက်ရှ်ဘုတ်ကိုလည်း အရင်းအမြစ်ကုဒ်ဖြင့် ကျွန်ုပ်တို့၏အော်ပရေတာနှင့် တိုက်ရိုက်ဖြန့်ဝေပါသည်။ ချိတ်ဆက်ပြီး အသုံးပြုနိုင်ပါတယ်။ ကျွန်ုပ်တို့၏ DevOps သည် ကျွန်ုပ်အား ဤဖန်သားပြင်ဓာတ်ပုံကို ပေးခဲ့ပါသည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ငါတို့နောက်ဘယ်ကိုသွားချင်လဲ။ ဤ-

  • စမ်းသပ်မှု automation ကိုတီထွင်ပါ။ အဓိကတာဝန်မှာ ဗားရှင်းအသစ်များကို အလိုအလျောက် စမ်းသပ်ခြင်း ဖြစ်သည်။
  • ZooKeeper နှင့် ပေါင်းစပ်မှုကိုလည်း ကျွန်ုပ်တို့ အမှန်တကယ် အလိုအလျောက် လုပ်ဆောင်လိုပါသည်။ ZooKeeper-operator နှင့် ပေါင်းစည်းရန် အစီအစဉ်ရှိပါသည်။ အဲဒါတွေ။ ZooKeeper အတွက် အော်ပရေတာတစ်ခုအား ရေးသားထားပြီး ပိုမိုအဆင်ပြေသောဖြေရှင်းချက်တစ်ခုတည်ဆောက်ရန် အော်ပရေတာနှစ်ခုမှစတင်ပေါင်းစပ်ခြင်းသည် ယုတ္တိတန်ပါသည်။
  • ကျွန်ုပ်တို့သည် ပိုမိုရှုပ်ထွေးသော အရေးကြီးသော လက္ခဏာများကို ပြုလုပ်လိုပါသည်။
  • ကျွန်ုပ်တို့သည် Templates ၏အမွေဆက်ခံခြင်းသို့ ချဉ်းကပ်လာနေပြီဖြစ်သည်၊ ဆိုလိုသည်မှာ အော်ပရေတာ၏နောက်ထပ်ထွက်ရှိမှုနှင့်အတူ ကျွန်ုပ်တို့တွင် တမ်းပလိတ်များကို အမွေဆက်ခံထားပြီးဖြစ်ကြောင်း အစိမ်းရောင်ဖြင့် မီးမောင်းထိုးပြခဲ့သည်။ ၎င်းသည် အပိုင်းပိုင်းများမှ ရှုပ်ထွေးသော ပုံစံများကို တည်ဆောက်နိုင်စေမည့် အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။
  • ကျွန်ုပ်တို့သည် ရှုပ်ထွေးသောအလုပ်များကို အလိုအလျောက်လုပ်ဆောင်လိုပါသည်။ အဓိကကတော့ Re-sharding ပါ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အလယ်အလတ်ရလဒ်အချို့ကို ယူကြပါစို့။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ရလဒ်အနေနဲ့ ဘာရလာသလဲ။ လုပ်သင့်လုပ်ထိုက်သလား၊ မလုပ်သင့်ဘူးလား။ ဒေတာဘေ့စ်ကို Kubernetes ထဲသို့ ဆွဲယူကာ ယေဘုယျအားဖြင့် အော်ပရေတာနှင့် အထူးသဖြင့် Alitnity အော်ပရေတာတို့ကို အသုံးပြုရန်ပင် လိုအပ်ပါသလော။

အထွက်တွင်၊

  • ဖွဲ့စည်းမှုပုံစံ၊ ဖြန့်ကျက်ခြင်းနှင့် ပြုပြင်ထိန်းသိမ်းခြင်းများ၏ သိသာထင်ရှားသော ရိုးရှင်းမှုနှင့် အလိုအလျောက်လုပ်ဆောင်မှု။
  • ချက်ချင်း built-in စောင့်ကြည့်။
  • ရှုပ်ထွေးသော အခြေအနေများအတွက် အဆင်သင့်အသုံးပြုနိုင်သော ကုဒ်လုပ်ထားသော ပုံစံများ။ ပုံတူထည့်ခြင်းကဲ့သို့ လုပ်ဆောင်ချက်ကို ကိုယ်တိုင်လုပ်ဆောင်ရန် မလိုအပ်ပါ။ အော်ပရေတာက ဒီလိုလုပ်တယ်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

နောက်ဆုံးမေးခွန်းတစ်ခုပဲ ကျန်တော့တယ်။ ကျွန်ုပ်တို့တွင် Kubernetes၊ virtualization ဒေတာဘေ့စ်တစ်ခု ရှိနှင့်ပြီးဖြစ်သည်။ အထူးသဖြင့် ClickHouse ကို စွမ်းဆောင်ရည်အတွက် အကောင်းဆုံးဖြစ်အောင် ပြုလုပ်ထားသောကြောင့်၊ ထိုသို့သော ဖြေရှင်းချက်၏ စွမ်းဆောင်ရည်ကကော။

အဖြေကတော့ အားလုံးအဆင်ပြေပါတယ်။ အသေးစိတ်တော့ မပြောတော့ပါဘူး၊ ဒါက သီးခြားအစီရင်ခံစာရဲ့ ခေါင်းစဉ်ပါ။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ဒါပေမယ့် TSBS လိုမျိုး ပရောဂျက်တစ်ခုရှိတယ်။ ၎င်း၏အဓိကတာဝန်ကား အဘယ်နည်း။ ဒါက ဒေတာဘေ့စ် စွမ်းဆောင်ရည် စမ်းသပ်မှုပါ။ ဒါဟာ နွေးနွေးထွေးထွေးနဲ့ ပျော့ပျောင်းတဲ့ ပျော့ပျောင်းမှုကို နှိုင်းယှဉ်ဖို့ ကြိုးစားမှုပါ။

သူဘယ်လိုအလုပ်လုပ်သလဲ။ ဒေတာအစုံကို ထုတ်ပေးသည်။ ထို့နောက် တူညီသောစမ်းသပ်မှုအစုကို အသုံးပြု၍ ဤဒေတာအစုကို မတူညီသောဒေတာဘေ့စ်များတွင် လုပ်ဆောင်သည်။ ပြီးတော့ ဒေတာဘေ့စ်တစ်ခုစီက ပြဿနာတစ်ခုကို ဘယ်လိုသိတဲ့နည်းနဲ့ ဖြေရှင်းပေးတယ်။ ပြီးရင် ရလဒ်တွေကို နှိုင်းယှဉ်နိုင်ပါတယ်။

၎င်းသည် ဒေတာဘေ့စ်အမြောက်အများကို ပံ့ပိုးထားပြီးဖြစ်သည်။ အဓိက သုံးခုကို ဖော်ထုတ်ထားပါတယ်။ ဤ-

  • TimescaleDB
  • InfluxDB
  • ClickHouse

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

နှိုင်းယှဉ်မှုတစ်ခုကိုလည်း အလားတူဖြေရှင်းချက်တစ်ခုဖြင့် ပြုလုပ်ခဲ့သည်။ RedShift နှင့် နှိုင်းယှဉ်ခြင်း။ နှိုင်းယှဉ်မှုကို Amazon တွင် ပြုလုပ်ခဲ့သည်။ ClickHouse သည် ဤကိစ္စတွင် လူတိုင်းထက် သာလွန်သည်။

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

ငါပြောခဲ့တဲ့စကားကနေ ဘယ်လိုကောက်ချက်ချနိုင်မလဲ။

  • Kubernetes ရှိ DB ဖြစ်နိုင်သည်။ ဖြစ်နိုင်ချေရှိသော်လည်း ခြုံငုံကြည့်ရသည်မှာ ဖြစ်နိုင်ချေရှိသည်။ Kubernetes ရှိ ClickHouse သည် ကျွန်ုပ်တို့၏အော်ပရေတာ၏အကူအညီဖြင့် ကျိန်းသေဖြစ်နိုင်သည်။
  • အော်ပရေတာသည် လုပ်ငန်းစဉ်များကို အလိုအလျောက်လုပ်ဆောင်ရန် ကူညီပေးပြီး ဘဝကို အမှန်တကယ် ပိုမိုလွယ်ကူစေသည်။
  • စွမ်းဆောင်ရည်ကတော့ ပုံမှန်ပါပဲ။
  • ပြီးတော့ ဒါကို လုပ်နိုင်တယ်၊ သုံးသင့်တယ်လို့ ယူဆတယ်။

ပွင့်လင်းအရင်းအမြစ် - ကျွန်ုပ်တို့နှင့်ပူးပေါင်းပါ။

ကျွန်တော်ပြောပြီးသားအတိုင်း၊ အော်ပရေတာသည် လုံးဝ open source ထုတ်ကုန်တစ်ခုဖြစ်သောကြောင့် လူအများဆုံးအသုံးပြုပါက အလွန်ကောင်းမွန်ပါသည်။ ကျွန်တော်တို့နဲ့အတူပါဝင်ပါ! ငါတို့အားလုံး မင်းကိုစောင့်နေတယ်။

သင်တို့ရှိသမျှသည်ကျေးဇူးတင်ပါသည်

မေးခွန်းများကို

ဒေတာဘေ့စ်အစုအဝေးများကို စီမံခန့်ခွဲရန်အတွက် Kubernetes ရှိ အော်ပရေတာ။ Vladislav Klimenko (Altinity၊ 2019)

အစီရင်ခံစာအတွက် ကျေးဇူးတင်ပါသည်။ ကျွန်တော့်နာမည်က Anton ပါ။ ကျွန်တော်က SEMrush ကပါ။ သစ်ခုတ်တာ ဘာဖြစ်နေတာလဲလို့ တွေးနေတယ်။ စောင့်ကြည့်ခြင်းအကြောင်း ကျွန်ုပ်တို့ကြားရသော်လည်း အစုအဖွဲ့တစ်ခုလုံးအကြောင်းပြောလျှင် သစ်ခုတ်ခြင်းအကြောင်း ဘာမှမရှိပါ။ ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့သည် ဟာ့ဒ်ဝဲတွင် အစုအဝေးတစ်ခုကို တင်ထားသည်။ ထို့အပြင် ကျွန်ုပ်တို့သည် စံနည်းလမ်းများကို အသုံးပြု၍ ၎င်းတို့ကို ဘုံအမှိုက်ပုံအဖြစ် စုစည်းကာ ဗဟိုချုပ်ကိုင်မှုရှိသော သစ်ခုတ်ခြင်းကို အသုံးပြုပါသည်။ ပြီးတော့ အဲဒီကနေမှ ကျွန်တော်တို့ စိတ်ဝင်စားတဲ့ အချက်အလက်ကို ရရှိပါတယ်။

မေးခွန်းကောင်း၊ ဆိုလိုသည်မှာ လုပ်ရန်စာရင်းတစ်ခုတွင် လော့ဂ်အင်လုပ်ပါ။ ကျွန်ုပ်တို့၏အော်ပရေတာသည် ၎င်းကို အလိုအလျောက်လုပ်ဆောင်ခြင်းမရှိသေးပါ။ ဖွံ့ဖြိုးဆဲ၊ ပရောဂျက်က တော်တော်ငယ်သေးတယ်။ သစ်ခုတ်ရန် လိုအပ်ချက်ကို ကျွန်ုပ်တို့ နားလည်ပါသည်။ ဒါကလည်း အရမ်းအရေးကြီးတဲ့ အကြောင်းအရာတစ်ခုပါ။ စောင့်ကြည့်ခြင်းထက် အရေးကြီးသည် ဟု ယူဆပါသည်။ သို့သော် အကောင်အထည်ဖော်ရန် စာရင်းတွင် ပထမဦးစွာ စောင့်ကြည့်ခြင်း ဖြစ်သည်။ သစ်ခုတ်တာတွေရှိမယ်။ သဘာဝအားဖြင့်၊ ကျွန်ုပ်တို့သည် အစုအဖွဲ့၏ဘဝ၏ ကဏ္ဍအားလုံးကို အလိုအလျောက်လုပ်ဆောင်ရန် ကြိုးစားကြသည်။ ထို့ကြောင့် အဖြေမှာ လောလောဆယ်တွင် အော်ပရေတာမှ မည်သို့လုပ်ဆောင်ရမည်ကို ကံမကောင်းစွာဖြင့် မသိရသေးသော်လည်း ၎င်းမှာ အစီအစဥ်တွင် ရှိနေသည်၊ ကျွန်ုပ်တို့ ပြုလုပ်မည်ဖြစ်သည်။ ပါဝင်လိုပါက ကျေးဇူးပြု၍ ဆွဲထုတ်ပါ။

မင်္ဂလာပါ! အစီရင်ခံစာအတွက် ကျေးဇူးတင်ပါသည်။ Persistent Volumes နှင့် ပတ်သက်သော စံမေးခွန်းတစ်ခုရှိသည်။ ကျွန်ုပ်တို့သည် ဤအော်ပရေတာနှင့် ဖွဲ့စည်းမှုပုံစံတစ်ခုကို ဖန်တီးသောအခါ၊ ကျွန်ုပ်တို့တွင် သီးခြားဒစ် သို့မဟုတ် ဖိုင်တွဲတစ်ခုပါရှိသည့် မည်သည့် node ကို အော်ပရေတာက မည်သို့ဆုံးဖြတ်သနည်း။ ကျွန်ုပ်တို့၏ ClickHouse ကို disk တစ်ခုပါရှိသောဤ node များပေါ်တွင်ကျွန်ုပ်တို့၏ ClickHouse ကိုထားရန်ကျွန်ုပ်တို့ပထမဆုံးရှင်းပြရပါမည် ။

ကျွန်ုပ်နားလည်သလောက်၊ ဤမေးခွန်းသည် ပြည်တွင်းသိုလှောင်မှု၏ ဆက်တိုက်ဖြစ်ပြီး အထူးသဖြင့် ၎င်း၏ hostPath အပိုင်းဖြစ်သည်။ ၎င်းသည် ကျွန်ုပ်တို့တွင် ရုပ်ပိုင်းဆိုင်ရာချိတ်ဆက်ထားသောဒစ်တစ်ခုရှိသည့် ဤကဲ့သို့သော node ပေါ်တွင် pod ကိုစတင်ရန်လိုအပ်ကြောင်းစနစ်တစ်ခုလုံးအားရှင်းပြခြင်းနှင့်တူသည်။ အဖြေက တော်တော်ကြီးနေတာမို့ အပေါ်ယံကြည့်ရင်တော့ ဒီအပိုင်းတစ်ခုလုံးပါပဲ။

တိုတိုပြောရရင်၊ ဒီပုံပါပဲ။ ပုံမှန်အားဖြင့်၊ ကျွန်ုပ်တို့သည် ဤအတွဲများကို ပံ့ပိုးပေးရန်လိုအပ်ပါသည်။ လောလောဆယ်တွင်၊ စက်တွင်းသိုလှောင်မှုတွင် ရွေ့လျားနိုင်သော ပံ့ပိုးမှုမရှိသေးသောကြောင့် DevOps သည် ဒစ်ခ်များကို ၎င်းတို့ကိုယ်တိုင်ဖြတ်ရမည်၊ ဤသည်မှာ ဤ volumes များဖြစ်သည်။ ထို့အပြင် ၎င်းတို့သည် ထိုကဲ့သို့သော node များပေါ်တွင် တည်ရှိသော ထိုကဲ့သို့သော အတန်း၏ ဆက်တိုက်သော အတွဲများ ရှိလိမ့်မည်ဖြစ်ကြောင်း Kubernetes စီမံဆောင်ရွက်ပေးခြင်းကို ရှင်းပြရပါမည်။ ထို့နောက် ယင်းကဲ့သို့ လိုအပ်သည့် ပေါ့ဒ်များနှင့် ယင်းသို့သော ဒေသဆိုင်ရာ သိုလှောင်မှု အတန်းအစားများကို ယင်းကဲ့သို့ နှင့် ထိုကဲ့သို့သော node များအတွက်သာ အညွှန်းများအတိုင်း အချိန်ဇယားဆွဲရန် လိုအပ်ကြောင်း Kubernetes အား ရှင်းပြရန် လိုအပ်ပါသည်။ ဤရည်ရွယ်ချက်များအတွက်၊ အော်ပရေတာသည် တံဆိပ်တစ်မျိုးမျိုးနှင့် လက်ခံဆောင်ရွက်ပေးသည့် သာဓကတစ်ခုလျှင် တစ်ခုကို သတ်မှတ်ပေးနိုင်စွမ်းရှိသည်။ ရိုးရှင်းသောအသုံးအနှုန်းများဖြင့် လိုအပ်ချက်များ၊ အညွှန်းများနှင့်ကိုက်ညီသော node များပေါ်တွင်သာ လုပ်ဆောင်ရန် pods များကို Kubernetes မှ လမ်းကြောင်းပြောင်းသွားမည်ဖြစ်ကြောင်း ထွက်ပေါ်လာပါသည်။ စီမံခန့်ခွဲသူများသည် အညွှန်းများနှင့် ပံ့ပိုးမှုဒစ်များကို ကိုယ်တိုင်သတ်မှတ်ပေးသည်။ ပြီးတော့ အကြေးခွံတွေ လဲတယ်။

ပြီးတော့ တတိယရွေးချယ်မှုကတော့ local က နည်းနည်းပိုလွယ်အောင် ကူညီပေးပါတယ်။ ငါအလေးပေးထားပြီးဖြစ်သည့်အတိုင်း၊ ဤအရာသည် အမြင့်ဆုံးစွမ်းဆောင်ရည်ရရှိရန် ကူညီပေးသည့် ချိန်ညှိခြင်းအတွက် ဝီရိယစိုက်ထုတ်လုပ်ဆောင်ခြင်းဖြစ်သည်။

ဤကိစ္စနှင့်ပတ်သက်ပြီး ကျွန်ုပ်တွင် ဒုတိယမေးခွန်းတစ်ခုရှိသည်။ Kubernetes သည် ကျွန်ုပ်တို့အတွက် node တစ်ခုဆုံးရှုံးသည်ဖြစ်စေ မဆုံးရှုံးသည်ဖြစ်စေ ၎င်းသည် ကျွန်ုပ်တို့အတွက် အရေးမပါသည့်ပုံစံဖြင့် ဒီဇိုင်းရေးဆွဲထားသည်။ ကျွန်ုပ်တို့၏ shard ချိတ်ထားသော node ပျောက်ဆုံးပါက ဤကိစ္စတွင် ကျွန်ုပ်တို့ ဘာလုပ်သင့်သနည်း။

ဟုတ်ကဲ့၊ Kubernetes သည် ကျွန်ုပ်တို့၏ pods များနှင့် ကျွန်ုပ်တို့၏ဆက်ဆံရေးသည် ကျွဲ၊ အဲဒါတွေကို လွှင့်ပစ်ရုံနဲ့ မရနိုင်တဲ့ ပြဿနာတစ်ခုရှိတယ်။ ထို့အပြင် Kubernetes ၏ ဖွံ့ဖြိုးတိုးတက်မှုသည် ၎င်းအား လုံးဝစွန့်ပစ်ထားသည့် အရင်းအမြစ်တစ်ခုကဲ့သို့ အတွေးအခေါ်အရ လုံးဝကုသရန် မဖြစ်နိုင်သည့် ဦးတည်ချက်ဆီသို့ ဦးတည်သွားနေပါသည်။

အခုလက်တွေ့မေးခွန်းအတွက်။ Disk ပေါ်ရှိ node ပျောက်ဆုံးပါက ဘာလုပ်ရမလဲ။ ဤတွင် ပြဿနာကို ပိုမိုမြင့်မားသောအဆင့်တွင် ဖြေရှင်းလျက်ရှိသည်။ ClickHouse ၏ဖြစ်ရပ်တွင်၊ ကျွန်ုပ်တို့တွင်ပိုမိုမြင့်မားသောအဆင့်တွင်အလုပ်လုပ်သောပုံတူများရှိသည်။ ClickHouse အဆင့်မှာ။

ရလာတဲ့ စိတ်နေစိတ်ထားက ဘာလဲ။ ဒေတာမဆုံးရှုံးစေရန် DevOps တွင် တာဝန်ရှိသည်။ သူသည် ပုံတူကူးခြင်းကို မှန်ကန်စွာသတ်မှတ်ထားရမည်ဖြစ်ပြီး ကူးယူမှုလုပ်ဆောင်နေကြောင်း သေချာစေရမည်။ ClickHouse အဆင့်ရှိ ပုံတူသည် ထပ်တူဒေတာရှိရပါမည်။ ဤသည်မှာ အော်ပရေတာဖြေရှင်းရမည့်တာဝန်မဟုတ်ပေ။ Kubernetes ကိုယ်တိုင်ဖြေရှင်းပေးသော ပြဿနာမဟုတ်ပါ။ ၎င်းသည် ClickHouse အဆင့်တွင်ဖြစ်သည်။

သံတုံး ပြုတ်ကျရင် ဘာလုပ်ရမလဲ။ ဒုတိယတစ်ခုကို တပ်ဆင်ရန်၊ ၎င်းပေါ်တွင် အခွေကို မှန်ကန်စွာ ပံ့ပိုးပေးကာ တံဆိပ်များ အသုံးပြုရန် လိုအပ်မည်ဖြစ်သည် ။ ၎င်းနောက်၊ Kubernetes သည် ၎င်းတွင် instance pod တစ်ခုကို စတင်နိုင်သည့် လိုအပ်ချက်များနှင့် ကိုက်ညီမည်ဖြစ်သည်။ Kubernetes က ၎င်းကို စတင်ပါမည်။ သင်၏ အစေ့အရေအတွက်သည် သတ်မှတ်ထားသော အရေအတွက်နှင့် ပြည့်မီရန် မလုံလောက်ပါ။ ငါပြခဲ့တဲ့ သံသရာကို ဖြတ်သွားလိမ့်မယ်။ အမြင့်ဆုံးအဆင့်တွင်၊ ClickHouse သည် ကျွန်ုပ်တို့သည် ပုံစံတူတစ်ခုထည့်သွင်းထားကြောင်း နားလည်လာမည်ဖြစ်ပြီး ၎င်းသည် ဗလာဖြစ်နေသေးပြီး ၎င်းထံသို့ ဒေတာလွှဲပြောင်းခြင်းကို စတင်ရန်လိုအပ်ပါသည်။ အဲဒါတွေ။ ဤလုပ်ငန်းစဉ်သည် ကောင်းမွန်စွာ အလိုအလျောက်မဖြစ်သေးပါ။

အစီရင်ခံစာအတွက် ကျေးဇူးတင်ပါသည်။ စိတ်ညစ်စရာတွေ အမျိုးမျိုးဖြစ်လာတဲ့အခါ အော်ပရေတာက ပျက်သွားပြီး ပြန်စပြီး အဲဒီအခိုက်အတန့်တွေ ရောက်လာတဲ့အခါ ဒါကို သင်ဘယ်လိုကိုင်တွယ်မလဲ။

အော်ပရေတာ ပျက်ကျပြီး ပြန်လည်စတင်ပါက ဘာဖြစ်မည်နည်း၊

ဟုတ်ကဲ့။ အဲဒီအချိန်မှာ အဖြစ်အပျက်တွေ ရောက်လာတယ်။

ဤကိစ္စတွင် လုပ်ဆောင်ရမည့်တာဝန်ကို အော်ပရေတာနှင့် Kubernetes အကြား တစ်စိတ်တစ်ပိုင်း မျှဝေပါသည်။ Kubernetes တွင် ဖြစ်ပွားခဲ့သည့် အဖြစ်အပျက်တစ်ခုကို ပြန်လည်ပြသနိုင်စွမ်းရှိသည်။ သူပြန်ရိုက်တယ်။ အော်ပရေတာ၏တာဝန်မှာ အဖြစ်အပျက်မှတ်တမ်းကို သူ့အပေါ်ပြန်ဖွင့်သည့်အခါ၊ ဤဖြစ်ရပ်များသည် စွမ်းဆောင်ရည်မရှိဟု သေချာအောင်ပြုလုပ်ရန်ဖြစ်သည်။ ဒါမှလည်း အလားတူဖြစ်ရပ်မျိုး ထပ်ခါတလဲလဲ ပေါ်ပေါက်ခြင်းက ကျွန်ုပ်တို့ရဲ့စနစ်ကို မပျက်စီးစေပါဘူး။ ကျွန်ုပ်တို့၏ အော်ပရေတာသည် ဤတာဝန်ကို ကျေပွန်သည်။

မင်္ဂလာပါ! အစီရင်ခံစာအတွက် ကျေးဇူးတင်ပါသည်။ Dmitry Zavyalov, ကုမ္ပဏီ Smedova အော်ပရေတာသို့ haproxy ဖြင့် စိတ်ကြိုက်ပြင်ဆင်မှုရွေးချယ်စရာများ ထည့်ရန် စီစဉ်ထားပါသလား။ စံတစ်ခုမှတပါး အခြားသော Balancer အချို့ကို ကျွန်ုပ်စိတ်ဝင်စားပါမည်၊ ထို့ကြောင့် ClickHouse သည် စမတ်ကျပြီး အမှန်တကယ်ရှိနေကြောင်း နားလည်နိုင်မည်ဖြစ်သည်။

Ingress အကြောင်း ပြောနေတာလား။

ဟုတ်ကဲ့၊ Ingress ကို haproxy ဖြင့် အစားထိုးပါ။ haproxy တွင် ပုံစံတူများပါရှိသည့် အစုအဝေး၏ topology ကို သင်သတ်မှတ်နိုင်သည်။

အဲဒါကို ကျွန်တော်တို့ မစဉ်းစားသေးဘူး။ လိုအပ်ပြီး အဘယ်ကြောင့် လိုအပ်ကြောင်း ရှင်းပြနိုင်လျှင် အထူးသဖြင့် ပါဝင်လိုပါက ၎င်းကို အကောင်အထည်ဖော်ရန် ဖြစ်နိုင်ပါမည်။ ရွေးချယ်မှုကို ထည့်သွင်းစဉ်းစားရန် ကျွန်ုပ်တို့ ပျော်ရွှင်ပါမည်။ တိုတောင်းသောအဖြေမှာ မဟုတ်ဘူး၊ ကျွန်ုပ်တို့တွင် ယခုလို လုပ်ဆောင်နိုင်စွမ်းမရှိပါ။ အကြံပြုချက်အတွက် ကျေးဇူးတင်ပါသည်၊ ဤကိစ္စကို ကျွန်ုပ်တို့ စစ်ဆေးပါမည်။ အကယ်၍ သင်သည် အသုံးပြုမှုကိစ္စနှင့် လက်တွေ့တွင် အဘယ်ကြောင့် လိုအပ်ကြောင်းကို ရှင်းပြပါက၊ ဥပမာ၊ GitHub တွင် ပြဿနာများကို ဖန်တီးပါက အလွန်ကောင်းမွန်ပါသည်။

ရှိပြီးသား။

ဒဏ်ငွေ။ ကျွန်ုပ်တို့သည် မည်သည့်အကြံပြုချက်များကိုမဆို ဖွင့်ဆိုထားပါသည်။ ပြီးလျှင် haproxy ကို todo list တွင် ထည့်ထားသည်။ လုပ်စရာစာရင်းက တိုးလာတယ်၊ မလျော့သေးဘူး။ ဒါပေမယ့် ဒါကကောင်းတယ်၊ ထုတ်ကုန်က ဝယ်လိုအားရှိနေတယ်လို့ ဆိုလိုတယ်။

source: www.habr.com

မှတ်ချက် Add