Kubernetes က individual containers တွေကို တိုက်ရိုက် manage or schedule မလုပ်ပါဘူး။ pods တွေကို ပဲ orchestrate လုပ်ပါတယ်။ Pod က containers တွေအတွက် လိုအပ်တဲ့ abstraction layer ကိုပေးလို့ပါ။
အရင်အပတ်က ရေးခဲ့သလိုပဲ pod မှာ container တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုနိုင်ပါတယ်။
- Create, Start, Stop, Scale စတာတွေလုပ်တဲ့အခါမှာ pod ထဲမှာရှိတဲ့ containers တွေအပေါ် အတူတကွ သက်ရောက်ပါတယ်
- Pod တစ်ခုကို node တစ်ခုပေါ်မှာ deploy လုပ်တာပြီးသွားတဲ့အခါ သူ့မှာပါတဲ့ containers တွေအားလုံးဟာ ဒီ node တစ်ခုတည်းပေါ်မှာ အတူတကွ ယှဥ်တွဲပြီး run သွားနိုင်ပြီဖြစ်ပါတယ်။
- Primary container တစ်ခုဟာ sidecar container, init container တို့လို့ တခြားသော containers တွေနဲ့ အတူတွဲပြီး run ဖို့လိုလာတဲ့ အခါ မှာ pod က ဒီအချက်ကို ပြေလည်စေပါတယ်။ process တစ်ခုကို contianer တစ်ခုအဖြစ်နဲ့ သွားတဲ့သဘောပါ။
- Kubernetes အနေနဲ့ container တစ်လုံး fail သွားခဲ့ရင်လည်း pod တစ်ခုလုံးကို အသစ် pod တစ်ခု နဲ့ replace လုပ်တာ၊ ဒါမှမဟုတ် အဲ့ container တစ်လုံးစာကိုပဲ ပြန်ပြီး restart လုပ်ပေးနိုင်ပါတယ်။
- Networkတွေ Storage volumes တွေကို share ပြီးသုံးနိုင်အောင် pod က allow လုပ်ပါတယ်။ pod ထဲက containers တွေဟာ တစ်ခုနဲ့တစ်ခု အချင်းချင်း localhost ကနေဆက်သွယ်လို့ရသွားပါတယ်။
စတဲ့အထက်ပါအချက်တွေကတော့ kubernetes မှာရှိတဲ့ containers နဲ့ pods တွေရဲ့ အကြောင်းဖြစ်ပါတယ်။
တဆက်တည်းမှာပဲ pods တွေကို ဘယ်လို deploy လုပ်လဲဆိုတာကို နမူနာနဲ့တကွပြပါမယ်။
- YAML Configuration File သုံးပြီး Deploy လုပ်တဲ့နည်း
- Imperative Command သုံးပြီး Create လုပ်တဲ့နည်း
ဆိုပြီး နည်းလမ်း၂ခုသုံးလို့ရပါတယ်။
YAML Configuration File
ဒါက အသုံးအများဆုံးနည်းလမ်းပါ။ ဥပမာ myapp-pod.yaml file ကအောက်မှာပြထားသလိုရှိတယ်ဆိုပါစို့။
1apiVersion: v1
2kind: Pod
3metadata:
4 name: myapp-pod
5 labels:
6 app: myapp
7 tier: frontend
8spec:
9 containers:
10 - name: nginx-container
11 image: nginx:latest
12 ports:
13 - containerPort: 80ဒါကို deploy လုပ်မယ်ဆိုရင်
1kubectl apply -f myapp-pod.yamlImperative Command
အလွယ်တကူ အမြန်ဆုံး create လုပ်ချင်ရင် သုံးပါတယ်။
1kubectl run nginx-container --image=nginx:latest --port=80 --labels="app=myapp,tier=frontend"ဒါတွေကတော့ အခြေခံသဘောတရားတွေပါ။
အခုဆိုရင် pod ကို deploy ဘယ်လိုလုပ်လဲဆိုတဲ့ နည်းလမ်းတွေလည်းသိသွားပြီးနောက်မှာတော့ မှတ်ရမှာတစ်ခုက pod ကို delete လုပ်လိုက်ရင် permanently ပျက်သွားပါတယ် ပြန်ပြီး create လုပ်မှ အသစ်ရပါမယ်။ Pods တွေဟာ restart, failover, scaling စတာတွေ မရှိပါဘူး။ ဒါကြောင့် Production မှာ Pods တိုက်ရိုက် deploy မလုပ်ဘဲ higher-level controllers တွေဖြစ်တဲ့ Deployment, StatefulSet စတာတွေသုံးသင့်ပါတယ်။ ဒီအပတ်တော့ ဒီလောက်ပါပဲ။
Discussion
Join the conversation
How do you feel about this article?
Comments
Sign in to join the conversation
Sign in to be the first to comment!
Share Your Article
Share with your professional network
Recent Articles

AWS - Application Load Balancer
Elastic Load Balancing (ELB) ELB ဆိုတာကတော့ request တွေကို တစ်နေရာတည်းမှ လက်ခံကာ Amazon EC2 instances၊ containers, etc.....

Terraform Day 3: Benefits of Terraform State
Terraform ကိုလေ့လာ တဲ့အခါ ကျွန််တော်တို့ရဲ့ Project Folder ထဲမှာ terraform.tfstate ဆိုတဲ့ ဖိုင်လေးကို တွေ့ဖူးကြပါလိမ့်မယ...

Terraform Day 2: Essential IaC Principles You Must Know
မနေ့ကတော့ Terraform အကြောင်း အကြမ်းဖျင်း Concept ကို ပြောပြခဲ့ပြီးပြီဆိုတော့ ဒီနေ့မှာတော့ Terraform ကို Professional ကျက...

TCP/IP Protocol
အားလုံးပဲမင်္ဂလာပါ။ ဒီနေ့ ကျွန်တော်တို့ TCP/IP Protocol အကြောင်း ဆွေးနွေးသွားပါမယ်။ ပထမဆုံးအနေနဲ့ TCP/IP ရဲ့ History လေး...

Terraform Day 1: Introduction to IAC and Terraform
ကျွန်တော်တို့ cloud အကြောင်း စပြောကြပြီဆိုရင် အရင်ဆုံး ခေါင်းထဲရောက်လာတာ Console ထဲဝင်၊ UI ကနေ ခလုတ်လေးတွေ လိုက်နှိပ်ပြီ...

