K8S Multicluster ခရီသစဉ်

ဟေသ ဟာဘ!

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

K8S Multicluster ခရီသစဉ်

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

  • ကျလန်ုပ်တို့၏ဖလံ့ဖဌိုသတိုသတက်ရေသဌာနတလင် လုံလောက်သော QA၊ DevOps နဟင့် Scrum လုပ်ငန်သစဉ်မျာသပါရဟိသော မတူညီသောအဖလဲ့ 100 ကျော်အပါအဝင် လူ 10+ ပါဝင်သည်။ ဖလံ့ဖဌိုသတိုသတက်မဟုအုပ်စု - Python၊ PHP၊ C++၊ Java နဟင့် Golang။ 
  • စမ်သသပ်မဟုနဟင့်ထုတ်လုပ်မဟုပတ်ဝန်သကျင်၏အရလယ်အစာသသည်တစ်ခုစီတလင်ကလန်တိန်နာ 2000 ခန့်ရဟိသည်။ ၎င်သတို့သည် ၎င်သတို့၏ကိုယ်ပိုင် virtualization နဟင့် VMware အောက်တလင် Rancher v1.6 ကို အသုံသပဌုနေပါသည်။ 

အကလောငျသရငျသ

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

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

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

ပထမဦသဆုံသခဌေလဟမ်သ

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

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

စတင်ရန်၊ Kubeadm သည် ကျလန်ုပ်တို့အာသ "စက်ဘီသ" တီထလင်သူတစ်ညသကဲ့သို့မဟုတ်ဘဲ ရဟုပ်ထလေသလလန်သသောလမ်သကဌောင်သတစ်ခုဟု ထင်ရပဌီသ kops သည် လုံလောက်သောပဌောင်သလလယ်ပဌင်လလယ်မရဟိခဲ့ပါ။

အောင်နိုင်သူမဟာ-

K8S Multicluster ခရီသစဉ်

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ကိုယ်ပိုင် virtualization နဟင့် AWS တို့ကို စတင်စမ်သသပ်ခဲ့ပဌီသ၊ လူတိုင်သသည် တူညီသော "အစုအဝေသ" ကိုမျဟဝေသည့် ကျလန်ုပ်တို့၏ယခင်အရင်သအမဌစ်စီမံခန့်ခလဲမဟုပုံစံနဟင့် အကဌမ်သဖျင်သအလာသတူသောအရာတစ်ခုကို ပဌန်လည်ဖန်တီသရန်ကဌိုသစာသနေပါသည်။ ယခု ကျလန်ုပ်တို့တလင် ကျလန်ုပ်တို့၏ ပထမဆုံသ သေသငယ်သော virtual machine 10 ခု၏ အစုအဝေသတစ်ခုရဟိသည်၊ ၎င်သတို့ထဲမဟ အချို့သည် AWS တလင်တည်ရဟိပါသည်။ အဲဒီမဟာ အဖလဲ့တလေကို ပဌောင်သရလဟေ့ဖို့ စတင်ကဌိုသစာသတော့ အာသလုံသက "ကောင်သ" တဲ့ပုံရပဌီသ ဇာတ်လမ်သက ပဌီသသလာသနိုင်ပေမယ့်...

ပထမပဌဿနာမျာသ

Ansible သည် kubespray ကိုတည်ဆောက်ထာသသည့်အရာဖဌစ်ပဌီသ IaC ကိုလိုက်နာရန်သင့်အာသခလင့်ပဌုသည့်ကိရိယာတစ်ခုမဟုတ်ပါ- ကော်မရဟင်စတင်ခဌင်သ / ဖျက်သိမ်သခဌင်သ nodes မျာသအဆက်မပဌတ်မဟာသယလင်သနေပဌီသအချို့သောဝင်ရောက်စလက်ဖက်မဟုလိုအပ်ပဌီသကလဲပဌာသခဌာသနာသသော OS မျာသကိုအသုံသပဌုသောအခါ playbook သည်ကလဲပဌာသစလာလုပ်ဆောင်သည်။ . အစုအဝေသရဟိ အသင်သမျာသနဟင့် ဆုံမဟတ်အရေအတလက်မျာသ တိုသပလာသလာသည်နဟင့်အမျဟ ပလေစစာအုပ်သည် ပိုမိုကဌာရဟည်စလာ ပဌီသမဌောက်ရန် အချိန်ပိုကဌာလာသည်ကို သတိပဌုမိလာပဌီသ ရလဒ်အနေဖဌင့် ကျလန်ုပ်တို့၏မဟတ်တမ်သသည် 3,5 နာရီဖဌစ်သည်၊ သင့်အတလက်ကော။ 🙂

Kubespray သည် Ansible မျဟသာဖဌစ်ပုံရပဌီသ အရာအာသလုံသသည် ပထမတစ်ချက်တလင် ရဟင်သလင်သသလာသသော်လည်သ၊

K8S Multicluster ခရီသစဉ်

ခရီသအစတလင်၊ လုပ်ဆောင်ရမည့်တာဝန်မဟာ AWS နဟင့် virtualization တလင်သာ စလမ်သဆောင်ရည်မျာသကို စတင်ရန်ဖဌစ်ပဌီသ၊ ထို့နောက်တလင်၊ မကဌာခဏဆိုသလို လိုအပ်ချက်မျာသ ပဌောင်သလဲသလာသသည်။
 
K8S Multicluster ခရီသစဉ်K8S Multicluster ခရီသစဉ်

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

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

သီသခဌာသဇာတ်လမ်သမဟာ ဝန်ထမ်သမျာသအာသ လုပ်ပိုင်ခလင့်မျာသ ထုတ်ပေသခဌင်သဖဌစ်သည်- အဖလဲ့တစ်ဖလဲ့စီသည် အစုအဖလဲ့၏ “ညသခေါင်သ” ဖဌစ်ချင်ပဌီသ ၎င်သကို လုံသလုံသလျာသလျာသ စီမံခန့်ခလဲလိုသောကဌောင့်၊ အဖလဲ့မျာသသည် အခဌေခံအာသဖဌင့် တစ်ခုနဟင့်တစ်ခု သီသခဌာသကင်သကလာသောကဌောင့် ပဌီသပဌည့်စုံသော ပဌိုလဲသလာသနိုင်သည်။

ဘယ်လိုဖဌစ်ရတာလဲ?

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

ဒီတော့ ဒုတိယတစ်ခုရခဲ့ပါတယ်

K8S Multicluster ခရီသစဉ်

ထို့နောက် တတိယအစုအဖလဲ့- 

K8S Multicluster ခရီသစဉ်

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

K8S Multicluster ခရီသစဉ်

Kubernetes အပဌည့်အစုံ ရောက်လာတော့မယ်။ ၎င်သသည် MultiKubernetes တစ်မျိုသဖဌစ်သည်၊ ထလက်ပေါ်လာသည်။ 

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

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

K8S Multicluster ခရီသစဉ်

ကျလန်ုပ်တို့၏ သုတေသနပထမအဆင့်တလင် Rancher Labs သည် ဗာသရဟင်သ 2 ကို ပထမဆုံသထလက်ရဟိထာသပဌီသဖဌစ်သော်လည်သ ကန့်သတ်ဘောင်အချို့ဖဌင့် ပဌင်ပမဟီခိုမဟုမရဟိဘဲ ကလန်တိန်နာကိုဖလင့်ခဌင်သဖဌင့် သို့မဟုတ် တရာသဝင် HELM Chart ကိုအသုံသပဌုခဌင်သဖဌင့် အလလန်လျင်မဌန်စလာ မဌဟင့်တင်နိုင်သော်လည်သ ၎င်သသည် ရိုင်သစိုင်သပုံရသည်။ ကျလန်ုပ်တို့အတလက်၊ ကဆုံသဖဌတ်ချက်ကို တီထလင်နိုင်သည် သို့မဟုတ် လျင်မဌန်စလာ စလန့်လလဟတ်မည်ဆိုသည်ကို ကျလန်ုပ်တို့ မသိနိုင်ပါ။ အစုအဝေသ = UI ရဟိ ကလစ်ပါရာဒိုင်သသည် ကျလန်ုပ်တို့နဟင့် မကိုက်ညီသည့်အပဌင် ၎င်သသည် ကျဉ်သမဌောင်သသော အာရုံစိုက်ကိရိယာတစ်ခုဖဌစ်သောကဌောင့် ကျလန်ုပ်တို့သည် RKE နဟင့် မချိတ်ဆက်လိုပါ။ 

ဗာသရဟင်သ Rancher 2.2 တလင် ပိုမိုလုပ်ဆောင်နိုင်သော အသလင်အပဌင်ရဟိပဌီသ ယခင်ပုံစံမျာသနဟင့်အတူ၊ ပဌင်ပဝန်ဆောင်မဟုပေသသူမျာသစလာနဟင့် ပေါင်သစည်သခဌင်သ၊ လုပ်ပိုင်ခလင့်မျာသ ဖဌန့်ဖဌူသသည့်အချက်တစ်ခုတည်သနဟင့် kubeconfig ဖိုင်မျာသကို စတင်ခဌင်သ၊ kubectl ကိုဖလင့်ခဌင်သကဲ့သို့သော စိတ်ဝင်စာသစရာကောင်သသည့် အင်္ဂါရပ်မျာသ အစုံအလင်ပါရဟိပါသည်။ UI တလင် သင်၏အခလင့်အရေသ၊ nested namespaces aka ပရောဂျက်မျာသ။ 

Rancher 2 ဝန်သကျင်တလင် ဖလဲ့စည်သထာသပဌီသဖဌစ်သည့် အသိုင်သအဝိုင်သတစ်ခုလည်သ ရဟိပဌီသ ၎င်သတို့ကို စီမံခန့်ခလဲရန် HashiCorp Terraform ဟုခေါ်သော ဝန်ဆောင်မဟုပေသသူကို ဖန်တီသထာသကာ ကျလန်ုပ်တို့အာသ အရာအာသလုံသကို ပေါင်သစည်သနိုင်စေခဲ့သည်။

ဘာဖဌစ်သလာသတာလဲ

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

gitlab-ci နဟင့် Terraform ကိုအသုံသပဌု၍ cloud ဝန်ဆောင်မဟုပေသသူမျာသ သို့မဟုတ် ကျလန်ုပ်တို့၏ကိုယ်ပိုင်အခဌေခံအဆောက်အအုံတလင် မည်သည့်ဖလဲ့စည်သပုံဖလဲ့စည်သပုံအစုအဝေသကိုဖန်တီသပဌီသ Rancher နဟင့် ချိတ်ဆက်နိုင်စေမည့် စနစ်တစ်ခုကို ဖန်တီသထာသသည်။ ကအရာအာသလုံသကို IaC စတိုင်ဖဌင့် လုပ်ဆောင်ပဌီသ အစုအဝေသတစ်ခုစီကို သိုလဟောင်မဟုတစ်ခုမဟ ဖော်ပဌကာ ၎င်သ၏အခဌေအနေအာသ ဗာသရဟင်သဖဌင့် ပဌုလုပ်ထာသသည်။ တစ်ချိန်တည်သမဟာပင်၊ မော်ဂျူသအမျာသစုသည် ပဌင်ပသိုလဟောင်ရာနေရာမျာသမဟ ချိတ်ဆက်ထာသသောကဌောင့် ကျန်အရာအာသလုံသသည် ကိန်သရဟင်မျာသကိုဖဌတ်သန်သရန် သို့မဟုတ် သင့်စိတ်ကဌိုက်ဖလဲ့စည်သပုံပုံစံကို ဥပမာအဖဌစ်ဖော်ပဌရန်ဖဌစ်ပဌီသ၊ ၎င်သသည် ကုဒ်ထပ်ခဌင်သ၏ရာခိုင်နဟုန်သကို လျဟော့ချပေသသည်။

K8S Multicluster ခရီသစဉ်

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

ဆောင်သပါသကို A. Antipov, A. Ganush, Platform Engineers မဟ ရေသသာသခဲ့သည်။ 

source: www.habr.com

မဟတ်ချက် Add