KlusterKit- Kubernetes ဖြန့်ကျက်မှုများကို ရိုးရှင်းလွယ်ကူစေရန်နှင့် ရုပ်ပိုင်းအရ သီးခြားဖြစ်သော ပရဝုဏ်အတွင်းတွင် လုပ်ဆောင်ရန် ပွင့်လင်းအရင်းအမြစ် ကိရိယာအစုံ

KlusterKit

ယနေ့တွင် Platform9 သည် GitHub ရှိ Apache v2.0 လိုင်စင်အောက်တွင် ကိရိယာသုံးမျိုးပါသော ကိရိယာအစုံပါသော Klusterkit ကို အခမဲ့ရှာဖွေနေကြောင်း ကြေညာရန် စိတ်လှုပ်ရှားနေပါသည်။

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

Klusterkit တွင် Kubernetes ထုတ်လုပ်မှု အစုအဝေး၏ ဘဝသံသရာကို စီမံခန့်ခွဲရန် အတူတကွ သို့မဟုတ် သီးခြားအသုံးပြုနိုင်သည့် သီးခြားလွတ်လပ်သော ကိရိယာသုံးခု ပါဝင်သည်-

  1. etcdadmရိုးရှင်းသော etcd အစုအဝေးစီမံခန့်ခွဲမှုအတွက် CLI။
  2. nodeadmkubeadm ကို ချဲ့ထွင်ပြီး kubeadm လိုအပ်သော မှီခိုအားထားမှုများကို ဖြန့်ကျက်ပေးသည့် node စီမံအုပ်ချုပ်မှုအတွက် CLI တစ်ခု။
  3. cctlKubernetes ကွန်မြူနတီမှ Cluster API ကိုလက်ခံပြီး အစုအဝေး၏ဘဝစက်ဝန်းစီမံခန့်ခွဲမှုတူးလ်တစ်ခု၊ ကိရိယာတစ်ခုဖြစ်သည့် Kubernetes ကွန်မြူနတီမှ Cluster API ကိုလက်ခံကာ nodeadm နှင့် etcdadm ကိုအသုံးပြု၍ ဝုဏ်အတွင်းနှင့် ရုပ်ပိုင်းဆိုင်ရာအထီးကျန်ပတ်ဝန်းကျင်များတွင်ပင် ချောမွေ့စွာရရှိနိုင်သည့် Kubernetes အစုအဝေးများကို ချောမွေ့စွာပေးပို့ထိန်းသိမ်းနိုင်မည်ဖြစ်သည်။

ဤကိရိယာသုံးမျိုးသည် အောက်ပါလုပ်ငန်းများကို အတူတကွလုပ်ဆောင်သည်-

  • Cluster API မှတစ်ဆင့် ကိုယ်ထိလက်ရောက် သီးခြားခွဲထုတ်ထားသော ပတ်ဝန်းကျင်များတွင် အလွယ်တကူရရှိနိုင်သော etcd အစုအဝေးနှင့် Kubernetes ဒက်ရှ်ဘုတ်ကို အလွယ်တကူ စီစဉ်စီမံပါ။
  • etcd မိတ္တူကို အသုံးပြု၍ ပျက်ကွက်ပြီးနောက် အစုအဝေး ထိန်းချုပ်အကန့်ကို ပြန်လည်ရယူခြင်း။
  • Kubernetes ကို ရုပ်ပိုင်းဆိုင်ရာ သီးခြားပတ်ဝန်းကျင်သို့ ပို့ဆောင်ရန် လိုအပ်သော ပစ္စည်းအားလုံးကို ထုပ်ပိုးခြင်း။

Klusterkit အင်္ဂါရပ်များ

  • Multi-master ပံ့ပိုးမှု (HA အစုအဝေး K8s)။
  • ပေးပို့ခြင်းနှင့် လုံခြုံသော etcd အစုအဝေးများကို စီမံခန့်ခွဲခြင်း။
  • ရုပ်ပိုင်းအရ သီးခြားပတ်ဝန်းကျင်တွင် အလုပ်လုပ်ခြင်း။
  • အဆင့်မြှင့်တင်မှုများနှင့် rollbacks များကို ပံ့ပိုးပေးသည်။
  • နောက်ကွယ်တွင် CNI အဖြစ် ဖလန်နယ် (vxlan)၊ အခြားသော CNI များကို ပံ့ပိုးကူညီရန် အစီအစဉ်ရှိပါသည်။
  • အရန်ခုံများ ဆုံးရှုံးပြီးနောက် etcd အစုအဝေးများကို အရန်သိမ်းခြင်းနှင့် ပြန်လည်ရယူခြင်း။
  • မန်မိုရီနှင့် CPU အချိန်ကုန်ခြင်းမှ ထိန်းချုပ်မှုဘောင်ကို ကာကွယ်ပေးသည်။

Klusterkit ဖြေရှင်းချက်ဗိသုကာ

KlusterKit

အမှားခံနိုင်ရည်ရှိမှုနှင့် ရိုးရှင်းမှုအတွက်၊ Klusterkit သည် Kubernetes အစုအဝေး မက်တာဒေတာကို သိမ်းဆည်းရန် cctl-state.yaml ဖိုင်တစ်ခုတည်းကို အသုံးပြုသည်။ cctl CLI မှတဆင့် သင်သည် ဤအခြေအနေဖိုင်ပါရှိသော မည်သည့်စက်တွင် Kubernetes အစုအဝေး၏ ဘဝသံသရာကို စီမံခန့်ခွဲနိုင်သည်။ ၎င်းသည် အော်ပရေတာ၏ လက်တော့ပ် သို့မဟုတ် Kubernetes အစုအဝေး၏ အစိတ်အပိုင်းဖြစ်သော အခြားကွန်ပျူတာတစ်ခုခု ဖြစ်နိုင်သည်။

Cctl သည် အစုအစည်းများပေါ်ရှိ CRUD လုပ်ဆောင်ချက်များအတွက် ဒစ်ဂျစ်တိုက်အဖြစ် အစုအဝေး-api အင်တာဖေ့စ်ကို ရေစီးကြောင်းမှ ခေါ်ဆိုသည်။ သူသုံးလိုက်သည် ssh-ပံ့ပိုးပေးသူPlatform9 မှ open-source bare metal cluster-api ပံ့ပိုးပေးသူဖြစ်ပြီး၊ ၎င်းသည် အစုအဝေးတွင် လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် etcdadm နှင့် nodeadm ကိုခေါ်ဆိုသည်။

Klusterkit နှင့် ၎င်း၏ အစိတ်အပိုင်းများကို အသုံးပြုပုံ-

1 – go get command ဖြင့် tool သုံးခုထဲမှ မည်သည်ကိုမဆို အလွယ်တကူ စုဆောင်းနိုင်သည်-

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 – ထို့နောက်တွင် အဆိုပါ executable များကို ထုပ်ပိုးပြီး အလွန်ရရှိနိုင်သော Kubernetes အစုအဝေးကို လုပ်ဆောင်သင့်သည့် ပစ်မှတ်စက်များသို့ ကူးယူနိုင်ပါသည်။ nodeadm နှင့် etcdadm ဖိုင်များကို ဗားရှင်းလမ်းညွှန်များတွင် ထည့်ပါ-

cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//

cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//

3 – သင် ဒေသတွင်းတွင် Kubernetes အစုအဝေးကို စုစည်းထားရန် လိုအပ်ပါက၊ ရုပ်ပိုင်းဆိုင်ရာ သီးခြားခွဲထားသော ပတ်ဝန်းကျင်တွင်၊ nodeadm နှင့် etcdadm ဒေါင်းလုဒ်အမိန့်တို့ကို အသုံးပြု၍ အင်တာနက်အသုံးပြုခွင့်ရှိသော ကွန်ပျူတာတွင် လိုအပ်သော မှီခိုမှုများကို အလွယ်တကူ ကြိုတင်ဒေါင်းလုဒ်လုပ်နိုင်ပါသည်။ ထို့နောက် ဒေါင်းလုဒ်လုပ်ထားသော အရာများ (ဆိုလိုသည်မှာ systemd အတွက် kubelet နှင့် kubelet unit ဖိုင်၊ CNI စီမံလုပ်ဆောင်နိုင်သော ဖိုင်များ၊ kubeadm ဖိုင်၊ Kubernetes၊ သိမ်းဆည်းထားသော ပုံနှင့် systemd ဖိုင်၊ etcd container image နှင့် သက်ဆိုင်ရာ configuration files) အပါအဝင် ကွန်တိန်နာပုံများအားလုံးကို အလွယ်တကူ ကူးယူနိုင်ပါသည်။ cctl၊ nodeadm နှင့် etcdadm တို့နှင့်အတူ။ (အသေးစိတ်အချက်အလက်များကို တွင်ကြည့်ပါ။ ဝီကီ).

4 – အရာအားလုံးပြီးသည်နှင့်၊ သင်သည် command နှစ်ခုဖြင့် ပထမဆုံး Kubernetes အစုအဝေးကို ဖန်တီးနိုင်သည်-

- ပထမဦးစွာ အစုအဖွဲ့အတွက် အထောက်အထားများကို ဖန်တီးပါ။

$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa

- ထို့နောက် cluster object တစ်ခုကို ဖန်တီးပါ။ -ကူညီပံ့ပိုးပေးထားသော ရွေးချယ်စရာများစာရင်းကို ပြုစုပေးသည်။

$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24

- နောက်ဆုံးတွင်၊ အစုအဝေးတွင်ပထမဆုံးစက်ကိုဖန်တီးပါ။

$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master

စာရွက်စာတမ်းအပြည့်အစုံကို တွင် ဖတ်ရှုပါ။ GitHub.

source: www.habr.com

မှတ်ချက် Add