Kubernetes အခြေခံ လမ်းညွှန်: ကွန်တိန်နာများကို ထိရောက်စွာ စီမံခန့်ခွဲရန် ဘယ်လိုလုပ်မလဲ
Kubernetes အခြေခံ လမ်းညွှန်: ကွန်တိန်နာများကို ထိရောက်စွာ စီမံခန့်ခွဲရန် ဘယ်လိုလုပ်မလဲ
Kubernetes သည် လက်ရှိတွင် အထင်ကရဆုံး ကွန်တိန်နာ အုပ်ချုပ်မှု ပလက်ဖောင်းဖြစ်လာပြီး၊ ၎င်းသည် ကွန်တိန်နာများကို အလိုအလျောက် တပ်ဆင်ခြင်း၊ တိုးချဲ့ခြင်းနှင့် စီမံခန့်ခွဲခြင်းအတွက် ဖြေရှင်းချက်တစ်ခုကို ပေးသည်။ ဤဆောင်းပါးသည် စတင်လေ့လာသူများနှင့် အလယ်အလတ် ဖွံ့ဖြိုးသူများအတွက် အသုံးဝင်သော အခြေခံ လမ်းညွှန်ကို ပေးမည်ဖြစ်ပြီး၊ သင်သည် Kubernetes ၏ အထွေထွေ အကြောင်းအရာများနှင့် အပြုအမူများကို မြန်မြန်ဆန်ဆန် လေ့လာနိုင်ရန် ကူညီပါမည်။
Kubernetes ဆိုတာဘာလဲ?
Kubernetes (အများအားဖြင့် K8s ဟု အတိုကောက်ခေါ်သည်) သည် ကွန်တိန်နာများကို အလိုအလျောက် တပ်ဆင်ခြင်း၊ တိုးချဲ့ခြင်းနှင့် စီမံခန့်ခွဲခြင်းအတွက် အသုံးပြုသော အခမဲ့ အရင်းအမြစ် ပလက်ဖောင်းတစ်ခုဖြစ်သည်။ ၎င်းကို Google မှ ဖွံ့ဖြိုးပြီး Cloud Native Computing Foundation (CNCF) သို့ အလှူပြုခဲ့သည်။ Kubernetes ၏ အဓိပ္ပါယ်အဓိပ္ပါယ်မှာ အက်ပလီကေးရှင်း၏ အသက်တာစီမံခန့်ခွဲမှုကို လွယ်ကူစေရန်နှင့် စနစ်၏ အမြင့်ဆုံးရရှိမှုနှင့် အလိုအလျောက် စီမံခန့်ခွဲမှုကို သေချာစေရန် ဖြစ်သည်။
Kubernetes ၏ အဓိက အစိတ်အပိုင်းများ
1. Pod
Pod သည် Kubernetes ၌ အနိမ့်ဆုံး တပ်ဆင်မှုယူနစ်ဖြစ်ပြီး၊ ၎င်းသည် ကွန်တိန်နာတစ်ခု သို့မဟုတ် အများအပြားကို ပါဝင်နိုင်သည်။ အချို့ Pod များသည် ကွန်ရက်နှင့် သိမ်းဆည်းမှုကို မျှဝေပြီး၊ အနီးကပ်ဆက်နွယ်သော ဝန်ဆောင်မှုများကို လည်ပတ်ရန် သင့်လျော်သည်။
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app-container
image: nginx
2. Deployment
Deployment သည် Pod ၏ အသက်တာကို စီမံခန့်ခွဲရန် အသုံးပြုသည်၊ သတ်မှတ်ထားသော Pod အရေအတွက်ကို လည်ပတ်နေစေရန် သေချာစေပြီး၊ ဗားရှင်းထိန်းချုပ်မှုနှင့် အပ်ဒိတ်လုပ်ခြင်းကို လုပ်ဆောင်နိုင်သည်။
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: nginx
3. Service
Service သည် တည်ငြိမ်သော ဝင်ရိုးကို ပေးပြီး၊ အခြား Pod များ သို့မဟုတ် အပြင်ဘက်အသုံးပြုသူများကို လည်ပတ်နေသော Pod များကို ဝင်ရောက်ရန် ခွင့်ပြုသည်။
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
type: LoadBalancer
selector:
app: my-app
ports:
- port: 80
targetPort: 80
Kubernetes ၏ အားသာချက်များ
- အလိုအလျောက် စီမံခန့်ခွဲမှု: Kubernetes သည် ကွန်တိန်နာ အက်ပလီကေးရှင်းများကို အလိုအလျောက် တပ်ဆင်၊ တိုးချဲ့နှင့် စီမံခန့်ခွဲနိုင်ပြီး၊ လက်မှတ်လုပ်ငန်းများကို လျှော့ချပြီး၊ အမှားဖြစ်နိုင်မှုကို လျော့နည်းစေသည်။
- အမြင့်ဆုံးရရှိမှု: ReplicaSets မှတဆင့် Kubernetes သည် လည်ပတ်နေသော Pod အထူးအရေအတွက်ကို သေချာစေပြီး၊ တစ်ခုခု အထူးအရေအတွက် ပျက်ကွက်ပါက စနစ်သည် အလိုအလျောက် ပြန်လည်စတင်ခြင်း သို့မဟုတ် အစားထိုးခြင်းကို လုပ်ဆောင်သည်။
- အလှည့်ကျမှု: Kubernetes သည် အတွင်းပိုင်း အလှည့်ကျမှု လုပ်ဆောင်ချက်ကို ပါဝင်ပြီး၊ ဝန်ဆောင်မှုများအတွက် လှည့်ကျမှုကို သတ်မှတ်နိုင်ပြီး၊ အရင်းအမြစ်များကို ထိရောက်စွာ အသုံးပြုနိုင်သည်။
Kubernetes ကို မြန်မြန်စွာ စတင်ရန် ဘယ်လိုလုပ်မလဲ
1. ပတ်ဝန်းကျင် ပြင်ဆင်ခြင်း
ပထမဦးစွာ သင်သည် Kubernetes ပတ်ဝန်းကျင်ကို တည်ဆောက်ရန် လိုအပ်သည်။ ၎င်းကို Minikube ကို အသုံးပြု၍ ဒေသတွင် စမ်းသပ်ခြင်း သို့မဟုတ် Cloud Service Provider (ဥပမာ Google Kubernetes Engine, AWS EKS, Azure AKS) တွင် ကလပ်တစ်ခု တည်ဆောက်ခြင်းဖြင့် ပြုလုပ်နိုင်သည်။
Minikube ကို အသုံးပြု၍ Kubernetes ကို တပ်ဆင်ခြင်း
- Minikube နှင့် kubectl ကို တပ်ဆင်ပါ
# Minikube ကို တပ်ဆင်ပါ (တပ်ဆင်နည်းကို Minikube ၏ တရားဝင်စာရွက်စာတမ်းကို ကြည့်ပါ)
brew install minikube
# kubectl ကို တပ်ဆင်ပါ
brew install kubectl
- Minikube ကို စတင်ပါ
minikube start
2. ပထမဆုံး အက်ပလီကေးရှင်းကို တပ်ဆင်ပါ
Nginx ကို ဥပမာအနေနှင့် ယခု Deployment နှင့် Service ကို သတ်မှတ်ခြင်းဖြင့် Nginx ကို တပ်ဆင်နိုင်သည်။
# deployment.yaml ဖိုင်ကို ဖန်တီးပါ
cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
EOF
# deployment ကို လုပ်ဆောင်ပါ
kubectl apply -f deployment.yaml
# service.yaml ဖိုင်ကို ဖန်တီးပါ
cat service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
EOF
# service ကို လုပ်ဆောင်ပါ
kubectl apply -f service.yaml
3. အက်ပလီကေးရှင်းကို ဝင်ရောက်ပါ
သင်သည် NodePort အမျိုးအစား Service တစ်ခုကို ဖန်တီးသောအခါ၊ Kubernetes သည် ၎င်းအတွက် ပေါက်ကွဲမှုတစ်ခုကို သတ်မှတ်ပါလိမ့်မည်။ ဝင်ရောက်ရန် လိပ်စာကို ရယူရန် အောက်ပါ အမိန့်ကို အသုံးပြုနိုင်သည်။
minikube service nginx-service --url
ထုတ်ပြန်ထားသော URL ကို ဘရောက်ဇာတွင် ဝင်ရောက်ပါက Nginx ၏ ကြိုဆိုမှုစာမျက်နှာကို ကြည့်ရှုနိုင်ပါသည်။
ရှေ့ဆက်ဖြစ်နိုင်သော အမှားများနှင့် အစမ်းသပ်ခြင်း
Kubernetes ကို အသုံးပြုစဉ်တွင် သင်သည် Pod ၏ အခြေအနေသည် CrashLoopBackOff ဖြစ်သော အခက်အခဲများကို တွေ့ရှိနိုင်သည်။ ၎င်းသည် အမှားမဟုတ်ပါ၊ သို့သော် အန္တရာယ်ကင်းသော စနစ်တစ်ခုဖြစ်ပြီး၊ Kubernetes သည် Pod ပျက်ကွက်ပြီးနောက် အဆုံးမရှိသော ပြန်လည်စတင်မှုကို မလုပ်ပါ၊ သို့သော် ပြန်လည်စတင်မှုတိုင်းအကြား အချိန်ကို တိုးမြှင့်ပြီး စနစ်ကို ရှုပ်ထွေးမှုမှ ကာကွယ်သည်။
သင်သည် Pod ၏ မှတ်တမ်းများကို ကြည့်ရှုရန် အောက်ပါ အမိန့်ကို အသုံးပြုနိုင်သည်၊ အစမ်းသပ်ရန် ကူညီပါ။
kubectl logs
အဆုံးသတ်
Kubernetes သည် အခိုင်အမာသော ကွန်တိန်နာ စီမံခန့်ခွဲမှု ကိရိယာတစ်ခုဖြစ်ပြီး၊ ၎င်း၏ အဓိက အကြောင်းအရာများနှင့် အသုံးပြုမှု အမိန့်များကို သိရှိခြင်းဖြင့် သင်သည် Cloud Native အက်ပလီကေးရှင်းများကို ပိုမို ထိရောက်စွာ စီမံခန့်ခွဲနိုင်မည်ဖြစ်သည်။ Cloud Computing နှင့် ကွန်တိန်နာ နည်းပညာများ၏ အကျယ်ချုပ်မှုကြောင့် Kubernetes ကို လေ့လာခြင်းသည် သင်၏ အလုပ်အကိုင် ဖွံ့ဖြိုးမှုအတွက် အသစ်သော အခွင့်အလမ်းများကို ဖွင့်လှစ်မည်ဖြစ်သည်။ ဤလမ်းညွှန်သည် Kubernetes ၏ လေ့လာမှု ခရီးစဉ်တွင် သင်အား ကူညီရန်နှင့် ညွှန်ပြရန် အထောက်အကူဖြစ်မည်ဟု မျှော်လင့်ပါသည်။





