Developer တွေ Kubernetes လေ့လာဖို့ အချိန်တန်ပြီလား
ရှေ့မှာတုန်းက developer တွေဘာကြောင့် Docker ကိုလေ့လာသင့်လဲ၊ Docker container တွေက ဘယ်လိုမျိုးလဲဆိုတာ ရှင်းပြခဲ့တယ်။ ဒီနေ့ကတော့ Kubernetes အကြောင်း နည်းနည်းလေး ပြောမယ်။
Google ကသူတို့ရဲ့ Google Search တို့၊ Gmail တို့ နောက် Map တို့တွေကို Docker ခေတ်မစားခင် ဟိုးတုန်းတည်းက container တွေနဲ့ run လာတာ။ ဘာလို့ container သုံးတာလဲလို့ မေးရင် တစ်အချက်က OS တခုတည်းပေါ်မှာ container တွေအများကြီး တင်ထားလို့ရပြီး အဲဒီ container တွေက တလုံးနဲ့တလုံး သီးခြားစီအလုပ်လုပ်နိုင်တဲ့အတွက် version မတူတဲ့ dependency တွေကိုတပြိုင်တည်း သုံးလို့ရတယ်။ သီးသန့် VM တွေ ထားစရာ မလိုတဲ့အတွက် resource အလေအလွင့် နည်းတယ်။ အလုပ်ရှုပ်လည်း သက်သာတယ်။
နှစ်အချက် container ဆိုတာ လိုအပ်တဲ့ source code ရော၊ static content တွေရော အကုန်ပါပြီးသား။ ဒီတော့ လိုအပ်ရင် ဒီတိုင်းကောက် run ရုံပဲ။ ဘာမှ ssh ပြီး install စရာတွေ deploy စရာတွေ မရှိဘူး။ Google ရဲ့ core system တွေက နဂိုကတည်းက C++ တွေများတာမို့ ထူးထူးခြားခြား install စရာလည်း သိပ်မရှိပါဘူး။ ဒါပေမယ့် container တွေသုံးလိုက်ခြင်းက ဘယ်နေရာမှာ run တာမဆို အကုန် uniform ဖြစ်သွားစေတယ်။
ဒါပေမယ့် Google ရဲ့ search engine တွေ mail server တွေဆိုတာ တကမ္ဘာလုံးက ပက်ပက်စက်စက် သုံးကြတာမို့လား။ အဲဒီတော့ container အရေအတွက်က ထောင်ချီပြီး ရှိခဲ့မယ်ဆိုတာ အများကြီး တွေးကြည့်စရာ မလိုပါဘူး။ container တလုံးနှစ်လုံးလောက်က အကြောင်း မဟုတ်ပေမယ့် ထောင်ချီလာတဲ့အခါ management software လိုအပ်လာတယ်။
ဘယ်လို management တာဝန်တွေ လုပ်ရမလဲ။
တစ် - Traffic တက်လာလို့ container အလုံး ၁၀၀၀ လိုချင်ရင် ခလုတ်တချက် နှိပ်ရုံနဲ့ container တထောင် ရရမယ်။
နှစ် - ညဖက်တွေမှာ လူသုံးနည်းလို့ အလုံး ၅၀၀ ကိုလျှော့ချချင်ရင် ခလုတ်တချက်နဲ့ လျှော့ချလို့ရရမယ်။
သုံး - VM တွေအများကြီးကို ကိုင်တွယ်ပြီး အဆင်ပြေသင့်တော်မယ့် VM ပေါ်မှာ container တွေကို နေရာချထားနိုင်ရမယ်။
လေး - container တခု hung လာရင် အလုပ်မလုပ်နိုင် ဖြစ်သွားတာကို အလိုအလျောက် သတိထားမိပြီး အသစ်တလုံးနဲ့ အစားထိုးနိုင်ရမယ်။
ဒီတာဝန်တွေက လူတွေသာ manual လုပ်ရလို့က လျှာထွက်သေမယ့် အလုပ်မျိုးတွေပေါ့။ ဒါတောင် အပေါ်ယံလေးပဲ ရှိသေးတယ်။ သူတို့ရဲ့ နောက်ကွယ်က networking ကိုလည်း မေ့ထားခဲ့လို့ မရဘူး။ ဥပမာ container အလုံး ၁၀၀၀ ဖြစ်လာရင် အဲဒီ container တွေအတွက် network namespace ဘယ်သူဆောက်မလဲ။ ဆောက်ပြီး service discovery တို့ source natting တို့လုပ်ဖို့ ip table တွေကို ဘယ်လိုရေးမလဲ စသဖြင့် စသဖြင့်။
Google ကဒီပြဿနာတွေကို ဖြေရှင်းဖို့ Omega နဲ့ Borg လို့ခေါ်တဲ့ software 2 ခုကိုလုပ်ခဲ့တယ်။ open source မဟုတ်ဘူး။ ဒါပေမယ့် နောက်ပိုင်းမှာ ဒီနှစ်ခုကို အခြေခံပြီး အများကြီး ပို advanced ဖြစ်တဲ့ software တခု ထပ်ရေးခဲ့တယ်။ အဲဒါက Kubernetes ပါပဲ။ Kubernetes ကတော့ သိကြတဲ့အတိုင်း open source ပေါ့။
အဲဒီတော့ အကြမ်းဖျင်း ပြန်ချုံ့ပြောရရင် Kubernetes က
တစ် - VM တွေအများကြီးကို စုစည်းပြီး container တွေကို သင့်သလို နေရာချပေးနိုင်တယ်။ VM တွေက Data Center တခုတည်းမှာ ရှိဖို့မလိုဘူး။ တကမ္ဘာလုံး ကြိုက်တဲ့နေရာမှာ ရှိလို့ရတယ်။ စိတ်ပါရင် Mars ဂြိုလ်ထိ သွားတင်ထားလို့ရသေးတယ်။
နှစ် - declarative interface ပါတယ်။ container ဆယ်လုံး ရှိရမယ်ပြောထားရင် တယောက်ယောက်က တခုခုကြောင့် တလုံးဖျက်ချသွားလည်း ချက်ချင်း ပြန်ဆောက်လိမ့်မယ်။
သုံး - developer တွေရော operator တွေပါ container အကြားက networking ကို တစက်ကလေးမှ စဥ်းစားဖို့မလိုအောင် တာဝန်ယူပေးနိုင်တယ်။
အဲဒီလို container management လုပ်တာကို orchestrate လုပ်တယ်လို့ခေါ်တယ်။ ဒီတော့ Kubernetes က container orchestration tool တွေထဲက တခုပေါ့။ ဒီလောက် သိထားရင် Kubernetes ဘာလဲဆိုတာကို တီးမိခေါက်မိ ရှိသွားမယ်ထင်တယ်။