StorageReview.com

Thin Client မှာ Docker Swarm ထည့်သွင်းခြင်း

စီးပွားရေးလုပ်ငန်း  ◇  HomeLab

ကျွန်တော့်ရဲ့ homelab အတွက် ဘတ်ဂျက်အများကြီးမသုံးနိုင်တဲ့သူတစ်ယောက်အနေနဲ့ HP t730 thin client က homelab မှာသုံးဖို့ တကယ်ကိုသင့်တော်ပါတယ်။ ကျွန်တော့်အတွက်ကံကောင်းတာက သူတို့ရဲ့ sub-Reddit မှာ မကြာသေးခင်က StorageReview giveaway တစ်ခုမှာ တစ်ခုရခဲ့ပါတယ် ။ t730 မှာ RAM နဲ့ CPU လုံလောက်စွာပါဝင်ပြီး အသုံးပြုမှုအများစုအတွက် ပြောင်းလွယ်ပြင်လွယ်ရှိပေမယ့် အလွန်အကျွံမဟုတ်ပါဘူး။ Pi-Hole ကို hosting လုပ်တာ၊ PfSense Router/Firewall အဖြစ်အသုံးပြုခြင်း၊ ဒါမှမဟုတ် Docker Swarm နဲ့ချိတ်ဆက်ခြင်းစတဲ့ကိစ္စတွေမှာပါ။

Docker Swarm ထည့်သွင်းခြင်း

Docker ဒါမှမဟုတ် containers တစ်ခုလုံးနဲ့ မရင်းနှီးဘူးဆိုရင် သူတို့ကို ဘာနဲ့မဆို run နိုင်တဲ့ lightweight VM တွေလို့ မြင်ကောင်းမြင်နိုင်ပါတယ်။ ဒါက ရိုးရှင်းလွန်းတဲ့ လုပ်ဆောင်ချက်တစ်ခုဖြစ်ပေမယ့် အလွန်အကျွံ ရှုပ်ထွေးမနေဘဲ လုံလောက်တဲ့ အချက်အလက်တွေကို ပေးပါတယ်။ Swarm က Docker ရဲ့ extension တစ်ခုပါ။ containers တွေကို node အများအပြားမှာ deploy လုပ်ခြင်း၊ resources တွေကို manage လုပ်တာတွေနဲ့ တခြား containers တွေကို "orchestrate" လုပ်ဖို့ ရိုးရှင်းပြီး built-in နည်းလမ်းတစ်ခုကို ပံ့ပိုးပေးပါတယ်။

ကျွန်တော့်ရဲ့ လက်ရှိ infrastructure မှာ Swarm မှာ run နေတဲ့ node ၅ ခု ရှိပြီးသားပါ။ Raspberry Pi B4 လေးခုနဲ့ Dell Optiplex 7040 တစ်ခုပါ။ ဒါက စတင်ဖို့အတွက် အကောင်းဆုံး အခြေခံတစ်ခုပါပဲ။ ဒါပေမယ့် ဒီ Docker Swarm tutorial နဲ့အတူ လိုက်လုပ်ဖို့ node တစ်ခုပဲ လိုအပ်ပါတယ်။ ကျွန်တော် ဒါကို ဘာမှမပေးရဘဲ ရခဲ့ပေမယ့် eBay မှာ ရှာပြီး ဈေးဆစ်ရင် ဒေါ်လာ ၂၀၀ ဒါမှမဟုတ် ဒီထက်နည်းတဲ့ဈေးနဲ့ ရနိုင်တယ်ဆိုတာ သတိပြုသင့်ပါတယ်။

Docker Swarm လည်ပတ်မှုစနစ်ကို ထည့်သွင်းခြင်း

အစပြုဖို့အတွက်၊ ကျွန်တော်ရွေးချယ်ထားတဲ့ Linux distribution ဖြစ်တဲ့ Debian Buster ကို HP t730 မှာ install လုပ်ခဲ့ပါတယ်။ ပြီးရင် Debian installer ကို USB flash drive ထဲ flash လုပ်ရပါမယ်။ image ကို flash လုပ်ဖို့ အကောင်းဆုံး option ကတော့ အခမဲ့ဖြစ်ပြီး အသုံးပြုရလွယ်ကူတဲ့ Balena Etcher ပါ ။ အဲဒါပြီးသွားရင် installation လုပ်ငန်းစဉ်ကို စတင်ပါမယ်။

hp t730ပုံ ၁: SSD အသစ်ကို ထည့်သွင်းခြင်း

အစပိုင်းမှာ t730 မှာ 32GB SATA M.2 drive ကို 256GB drive နဲ့ အစားထိုးခဲ့ပါတယ်။ ဒါပေမယ့် အဲဒီအချိန်တုန်းက ကျွန်တော်မသိလိုက်ဘဲ အဲဒါက နောက်ဆုံးမှာ ပြဿနာတွေဖြစ်စေခဲ့ပါတယ်။ firmware interface အချို့မှာ bug တွေရှိပြီး တစ်ခါတစ်ရံမှာ non-vendor drive တွေနဲ့ အလုပ်မလုပ်ပါဘူး။ ကျွန်တော် install လုပ်ခဲ့တဲ့ drive က အလုပ်မလုပ်တဲ့ drive တစ်ခုပါ။ ဒီပြဿနာကို ရှောင်ရှားဖို့အတွက် Debian ကို install လုပ်တဲ့အခါ Grub ကို removable အနေနဲ့ install လုပ်ခိုင်းရပါတယ်။ သင် install လုပ်တဲ့ drive ပေါ်မူတည်ပြီး ဒီလိုကြုံတွေ့ရနိုင်သလို မကြုံတွေ့ရလည်း ဖြစ်နိုင်ပါတယ်။

ဒီနေ့ ကျွန်တော်တို့လုပ်နေတဲ့အရာအတွက် 256GB မလိုအပ်ဘူးဆိုတာ မှတ်ထားပါ၊ ကျွန်တော်မှာ အခုမှရှိတာပါ။ အနည်းဆုံး 64GB ကို အကြံပြုပါတယ်၊ ဒါပေမယ့် အဲဒါက drive မှာ data သိမ်းဆည်းနိုင်တဲ့ပမာဏကို ကန့်သတ်နိုင်ပါတယ်။

Drive ကို install လုပ်ပြီးတာနဲ့ Debian install screen ကို boot တက်လိုက်ပါတယ်။ basic installation လုပ်ပြီး language, keyboard layout စတာတွေကို ရွေးပါတယ်။ user configuration အတွက် သီးသန့်လုပ်ပါတယ်။ root user အတွက် password လုံးဝမထည့်ပါဘူး။ password manager မှာ သိမ်းထားတဲ့ password အရမ်းရှည်တဲ့ administrator ဆိုတဲ့ user အသစ်တစ်ခု ဖန်တီးပါတယ်။ ဒီလိုလုပ်ခြင်းအားဖြင့် system ကို လုံခြုံစေပါတယ်။

partition ခွဲဖို့အတွက် layout ရိုးရှင်းတဲ့ layout တစ်ခုကို ရွေးချယ်ခဲ့ပြီး boot partition 1GB နဲ့ ကျန်တဲ့ drive ကို root partition ကို ခွဲဝေပေးခဲ့ပါတယ်။ filesystem တွေအတွက် FAT32 နဲ့ ext4 ကို ရွေးချယ်ခဲ့ပါတယ်။ Btrfs လိုမျိုး တည်ငြိမ်မှုနဲ့ မြန်နှုန်းကြောင့် ext4 ကို ပိုနှစ်သက်ပါတယ်။ filesystem အသစ်တွေရဲ့ နောက်ဆုံးပေါ် feature အချို့ မပါဝင်ရင်တောင်မှပါ။

base package တွေကို ရွေးချယ်တဲ့ မျက်နှာပြင်ကို ရောက်တဲ့အခါ OpenSSH server ကလွဲလို့ ကျန်တာအားလုံးကို deselect လုပ်လိုက်ပါတယ်။ ဒီလိုလုပ်ရတဲ့ အကြောင်းရင်းကတော့ base system ကို တတ်နိုင်သမျှ ပေါ့ပါးစေချင်ပြီး headless လည်း ဖြစ်တာကြောင့် GUI မပါပါဘူး။ ဒါပေမယ့် ဒီ tutorial ကို အပြီးသတ်ဖို့အတွက် OpenSSH server ပဲ လိုအပ်ပြီး လိုအပ်တဲ့ package တွေကို ထပ်ထည့်နိုင်ပါတယ်။

ပုံ ၂: ထည့်သွင်းနေသော ပက်ကေ့ဂျ်များ

အစောပိုင်းက ကျွန်တော်ဖော်ပြခဲ့တဲ့ EFI firmware bug နဲ့ ကြုံတွေ့ရရင် Debian wiki မှာ ဘယ်လိုဖြေရှင်းရမလဲ ဆိုတဲ့ လမ်းညွှန်ချက်ကောင်းတစ်ခု ရှိပါတယ် ။ Grub ကို install လုပ်ပြီးတာနဲ့ USB stick ကို reboot လုပ်ပြီး ဖြုတ်ပါမယ်။ အားလုံးအဆင်ပြေသွားရင် သင် install လုပ်မယ့်အရာပေါ်မူတည်ပြီး TTY ဒါမှမဟုတ် GUI ထဲကို boot လုပ်ပါလိမ့်မယ်။

ထည့်သွင်းပြီးနောက် ဖွဲ့စည်းပုံ

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

# ဒါက အနာဂတ်အဆင့်တွေကို ပြီးမြောက်ဖို့ လိုအပ်တဲ့ package တွေကို install လုပ်ပေးပါတယ်။ sudo apt updatessudo apt install gnupg ca-certificates apt-transport-https curl lsb-release -y# ဒါက Docker packagescurl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# ပြီးတော့ Docker ကို install လုပ်တဲ့ repository ကိုထည့်ဖို့အတွက် ဒီလိုလုပ်ပါ-echo “deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

အဲဒါပြီးသွားရင် Docker ကို install လုပ်ပြီး service ကို enable လုပ်ရပါမယ်။

sudo apt-get docker-ce ကို install လုပ်ပါ။

sudo systemctl enable –now docker

အခုဆိုရင် Docker ကိုသုံးပြီး service တွေကို run ဖို့ အဆင်သင့်ဖြစ်ပါပြီ။

HP t730 မှာ Docker Swarm ကို အသုံးပြုခြင်း

Swarm ကို ပထမဆုံးအကြိမ်အသုံးပြုတဲ့အခါ swarm ကို initialize လုပ်ရပါမယ်။ အောက်က command တွေကို ပြန်ကြည့်ရအောင်။ swarm ရှိပြီးသားဆိုရင် ဒီအဆင့်ကို ကျော်သွားလိုက်ပါ။

sudo docker swarm init ကို စတင်အသုံးပြုပါ။

အလုပ်လုပ်မလုပ် စစ်ဆေးချင်ရင် ဒီ command ကို terminal မှာ paste လုပ်ပါ။

အကယ်၍ [ “$(sudo docker info | grep Swarm | sed 's/Swarm: //g')” == “inactive” ] ဖြစ်ပါက echo false; မဟုတ်ပါက echo true; fi

သင့် host သည် Swarm mode တွင် run နေပါက ထို command သည် 'true' ကို ပြန်ပေးသင့်သည်။

ကျွန်ုပ်တို့၏ ပထမဆုံးဝန်ဆောင်မှုကို ဆောင်ရွက်ပေးခြင်း

Swarm မှာ ဝန်ဆောင်မှုတွေ ဖန်တီးဖို့ နည်းလမ်းနှစ်ခု ရှိပါတယ်။

  1. docker ဝန်ဆောင်မှုဖန်တီးပါ ဒါက ဆင်တူပါတယ် docker ပြေး
  2. docker stack ကို ဖြန့်ကျက်ပါ ဒါက ဆင်တူပါတယ် docker-compose

ယေဘုယျအားဖြင့် stack တွေကို အလွယ်တကူ ပြန်လည်ထုတ်လုပ်နိုင်လို့ docker stack deploy ကို အသုံးပြုသင့်ပါတယ်။

ဒါပေမယ့် အလုပ်လုပ်မလုပ် စစ်ဆေးဖို့အတွက် docker service create ကိုသုံးတာကောင်းပါတယ်။

sudo docker service create -p 3000:80 httpd ကို နှိပ်ပါ။

ပြီးဖို့ အချိန်အနည်းငယ်ကြာနိုင်ပေမယ့် command ပြီးသွားရင် port 3000 မှာရှိတဲ့ node ရဲ့ IP ကိုသွားနိုင်ပါတယ်။ သင့်ရဲ့ IP ကိုမသိရင် hostname -I ကို run ပါ။ ကျွန်တော့်ကိစ္စမှာတော့ 192.168.19.73:3000 ကိုသွားရပါတယ် ။ It works ဆိုတဲ့ screen ကိုမြင်ရပါလိမ့်မယ်။

ပိတ်ပွဲ

HP t730 ဟာ အိမ်တွင်းလက်တွေ့အသုံးပြုသူအသစ်တွေ ဒါမှမဟုတ် အတွေ့အကြုံရင့် အိမ်တွင်းလက်တွေ့အသုံးပြုသူတွေအတွက် အလွန်ကောင်းမွန်တဲ့ စက်ငယ်လေးတစ်လုံးဖြစ်ပြီး အသုံးပြုမှုအမျိုးမျိုးကို ပံ့ပိုးပေးတဲ့အပြင် ပေးရတဲ့ဈေး နဲ့လည်း အတော်လေး စွမ်းဆောင်ရည်မြင့်မားပါတယ် ။ ကျွန်တော့်ကိစ္စမှာတော့ ပို့ဆောင်ခ ၁၅ ဒေါ်လာပဲ ကျသင့်ပါတယ် (StorageReview ကို ကျေးဇူးတင်ပါတယ်!)။ ဒီဆောင်းပါးကနေ လူတိုင်း တစ်ခုခု ရလိမ့်မယ်လို့ မျှော်လင့်ပါတယ်။ နည်းပညာအသစ်တွေအကြောင်း လေ့လာချင်တာပဲဖြစ်ဖြစ်၊ ကိုယ်ပိုင်အိမ်တွင်းလက်တွေ့အသုံးပြုဖို့ စိတ်ကူးရချင်တာပဲဖြစ်ဖြစ်ပေါ့။

- အီသန် အက်ဒ်ဝပ်စ်

eBay မှာ HP t730 thin client တွေ ရနိုင်ပါပြီ

StorageReview မှာ ပါဝင်လုပ်ဆောင်ပါ

သတင်းလွှာ | YouTube | ပေါ့ဒ်ကတ်စ် iTunes / Spotify | Instagram | Twitter | TikTok | RSS Feed

Author ည့်သည်စာရေးသူ