မနေ့က Docker အကြောင်း ရေးခဲ့တယ် — container ဆိုတာ program တစ်ပုဒ်ကို ပစ္စည်းအစုံနဲ့ ထုပ်ပိုးထားတဲ့ သေတ္တာလေးလို့ ပြောခဲ့တယ်။
ဒါပေမဲ့ လက်တွေ့ website ကြီးတစ်ခုမှာ container တစ်လုံးတည်း မဟုတ်ဘူး — ဆယ်ချီ၊ ရာချီ ရှိတယ်။ အဲဒါတွေကို ဘယ်သူ စီမံမလဲ?
အဲဒီအလုပ်ကို လုပ်ပေးတာက Kubernetes (အတိုခေါ် K8s)။
Kubernetes ဆိုတာ ဘာလဲ?
လွယ်လွယ်ပြောရရင် — container တွေ အများကြီးကို စီမံခန့်ခွဲပေးတဲ့ စနစ်။ container orchestration လို့ ခေါ်တယ်။
ဆိပ်ကမ်းရဲ့ ကြီးကြပ်ရေးမှူး
ဥပမာ ဆိပ်ကမ်းတစ်ခု စိတ်ကူးကြည့်ပါ။ ကွန်တိန်နာတွေ ရာချီ ရပ်ထားတယ်။ သင်္ဘောတွေ ဝင်လိုက် ထွက်လိုက်၊ ကုန်တွေ တင်လိုက် ချလိုက်။
Docker က ကွန်တိန်နာ တစ်လုံးချင်းစီ — သူ့အထဲမှာ ဘာထည့်ထားလဲ၊ ဘယ်လို ဖွင့်ရမလဲဆိုတာ သိတယ်။
Kubernetes က ဆိပ်ကမ်း ကြီးကြပ်ရေးမှူး —
ဘယ်ကွန်တိန်နာ ဘယ်နေရာမှာ ရပ်ရမလဲ ဆုံးဖြတ်တယ်။
ကွန်တိန်နာတစ်လုံး ပျက်သွားရင် အသစ်တစ်လုံး အစားထိုးခိုင်းတယ်။
အလုပ်များလာရင် ကွန်တိန်နာ အပို ခေါ်တယ်၊ အားလာရင် ပြန်လျှော့တယ်။
ကိုယ်က တစ်လုံးချင်း လိုက်ကြည့်စရာ မလိုဘူး — captain က အကုန် စီမံပေးတယ်။
တကယ်တမ်း ဘာတွေ လုပ်ပေးလဲ?
၁. Auto restart — container တစ်ခု crash သွားရင် Kubernetes က အလိုအလျောက် အသစ်ပြန်ဖွင့်ပေးတယ်။ မနက် ၃ နာရီ server ကျသွားလည်း ကိုယ် အိပ်နေတုန်း သူက ပြင်ပေးနေတာ။
၂. Auto scaling — website ကို လူ ရုတ်တရက် အများကြီး ဝင်လာရင် container အပိုတွေ အလိုအလျောက် ဖွင့်ပေးတယ်။ လူနည်းသွားရင် ပြန်ပိတ်တယ်။ ငွေလည်း သက်သာတယ်။
၃. Load balancing — ဝင်လာတဲ့ လူတွေကို container တွေအပေါ် မျှဝေချပေးတယ်။ တစ်လုံးတည်း အလုပ်ပိပြီး ကျန်တာတွေ အားနေတာမျိုး မဖြစ်ဘူး။
၄. Rolling update — version အသစ် တင်ချင်ရင် တစ်ခါတည်း အကုန် မပိတ်ဘူး။ တစ်လုံးချင်း အသစ်လဲ၊ အဟောင်းဖြုတ် — website က လုံးဝ မရပ်ဘူး။
Pod နဲ့ Node — စကားလုံး နှစ်လုံး
Kubernetes မှာ စကားလုံး နှစ်လုံး ခဏခဏ ကြားရလိမ့်မယ် —
Pod — container တစ်ခု ဒါမှမဟုတ် အစုအဖွဲ့ (အသေးဆုံးယူနစ်)။
Node — pod တွေ run တဲ့ ကွန်ပျူတာ / server တစ်လုံး။
Captain (Kubernetes) က node တွေပေါ်မှာ pod တွေ ဘယ်လို နေရာချမလဲ စီမံတယ် — ဆိပ်ကမ်းမှာ ကွန်တိန်နာ ဘယ်ဂိုဒေါင်ထဲ ထည့်မလဲ ဆုံးဖြတ်သလိုပေါ့။
ဘယ်သူ သုံးလဲ?
Google, Spotify, Airbnb — ကုမ္ပဏီကြီးတွေ အကုန် ဒါသုံးတယ်။ တကယ်တော့ Kubernetes ကို Google ကပဲ အစက ဖန်တီးခဲ့တာ။
ကိုယ်က website သေးသေးလေး run တာဆိုရင် Kubernetes မလိုသေးဘူး — Docker တစ်လုံးတည်းနဲ့ လုံလောက်တယ်။ ဒါပေမဲ့ traffic ကြီးလာပြီး container တွေ များလာတဲ့နေ့… အဲဒီနေ့ကျရင် captain တစ်ယောက် လိုလာလိမ့်မယ်။ 🙂