Friday, October 23, 2020

What I learned about Kubernetes - Kubernetes Backup and Restore

                 ဒီ article မှာတော့ Kubernetes cluster တစ်ခုကို ဘယ်လို backup and restore လုပ်မလဲ ဆိုတာ ပြောပြပေးသွားမှာဖြစ်ပါတယ်။


So, What are the things to backup in kubernetes cluster?

        Kubernetes cluster တစ်ခုမှာ ဘယ်အရာတွေကို backup လုပ်မလဲဆိုတော့

1. Resource Configuration

2. Etcd

3. Persistence Volume

1. Resource Configuration

            Recourse configuration ဆိုတာက ကျွန်တော်တို့ Kubernetes cluster အတွင်းမှာ Pods, Deployment and services စတာတွေ ကို deploy လုပ်တဲ့အခါမှာ resource configuration တွေဖြစ်တဲ့ yaml definition file တွေ ရေးပြီး declarative way အနေနဲ့ deploy လုပ်ကြပါတယ်။ ဆိုတော့ အဲ့ဒီ definition file တွေကို backup လုပ်ခြင်းဖြင့် cluster တစ်ခုခုဖြစ်ခဲ့ရင် restore ပြန်လည်ပြုလုပ်နိုင်ပါတယ်။

               Backup ပြုလုပ်တဲ့နေရာမှာ definition file တွေကို GitHub လိုမျိုး repository တွေ သိမ်းဆည်းလို့ရတဲ့နေရာမျိုးမှာ ပြုလုပ်သင့်ပါတယ်။ နောက်တစ်ခုအနေနဲ့ အပေါ်မှာပြောခဲ့သလိုမျိုးပဲ deploy method တွေမှာ definition file (declarative method) အနေနဲ့ မသုံးပဲ terminal ပေါ်မှာ တစ်ခါတည်း deploy လုပ်တဲ့ imperative method တွေနဲ့လဲ​တည်ဆောက်နိုင်သည့်အတွက် အဲ့လိုမျိုး တည်ဆောက်တဲ့ အခါ backup လုပ်tစရာ definition file မရှိတဲ့အတွက် ဒီလိုအခြေအနေမျိုးဆိုရင်တော့ Kube-api server ကို Query လုပ်ပြီး backup လုပ်သင့်ပါတယ်။  Kube-api server ကို အသုံးပြုပြီး query လုပ်ရာမှာ kubectl ကိုအသုံးပြုနိုင်သလို 3rd party app တွေ ဖြစ်တဲ့ "Velero" လိုမျိုး application ဖြင့် kubeapi-server ကို query လုပ်ပြီး Backup လုပ်နိုင်ပါတယ်။

Using kubectl to export all the resource config as a YAML file for backup

$kubectl get all --all-namespaces -o yaml > all-deploy-services.yaml ဆိုပြီး အသုံးပြုနိုင်ပါတယ်။

2. Etcd

            Etcd ကတော့ Kubernetes cluster တစ်ခုလုံးရဲ့ information တွေ ကို သိမ်းဆည်းထားပေးတဲ့နေရာဖြစ်ပါတယ်။ ဒါကြောင့် resource configuartion backup အစား etcd  ကိုလဲ backup လုပ်နိုင်ပါတယ်။

How to backup Etcd?

        Etcd မှာ cluster information တွေကို သိမ်းပေးတဲ့ directory တစ်ခုရှိပါတယ်။ အဲ့ဒီ directory ကို backup ပြုလုပ်ရမှာပါ။ Etcd server မှာ built-in snapshot feature ပါဝင်သည့်အတွက် snapshot feature ကိုအသုံးပြုပြီး ၎င်း directory ကို backup လုပ်တာဖြစ်ပါတယ်။ 

Etcd config file location: /etc/kubernetes/manifests/etcd.yaml

How to restore Etcd?

        Restore ပြန်လုပ်ရာမှာတော့ အရင်ဆုံး

1. kube-api server service ကို stop လုပ်ပေးရပါမယ်။

2. ပြီးမှ snapshot ဖြင့် backup လုပ်ထားတဲ့ etcd database file ကို restore ပြန်လုပ်ယူမှာဖြစ်ပါတယ်။

Restore ပြန်လုပ်တဲ့အခါမှာ ကိုယ်က restore test လုပ်တာဆိုရင်  data directory location ကို အသစ်ပေးပြီး existing kubernetes cluster နဲ့ မရောအောင် သတ်မှတ်ပေးပြီး restore လုပ်နိုင်ပါတယ်။

For detail step by step method of backup and restore etcd, pls follow this link

https://github.com/mmumshad/kubernetes-cka-practice-test-solution-etcd-backup-and-restore


That's it 😊


Pls Like and Subscribe Our Root Of Info FB Page and Youtube Channel


https://www.facebook.com/rootofinfo


https://www.youtube.com/channel/UCkOi7WxhUBKONv3uD0CvuWw?view_as=subscriber


Thank you!!!




Share:

0 comments:

Post a Comment