Friday, October 23, 2020

What I learned about Kubernetes - Environment Variables

                 ဒီ article မှာက Kubernetes မှာပါဝင်တဲ့ environment variable အကြောင်းကို ပြောပြမှာဖြစ်ပါတယ်။ ဒီ Environment variable တွေကို အဓိက ဘာအတွက်အသုံးပြုလဲဆိုတော့ ကျွန်တော်တို့ deploy လုပ်လိုက်တဲ့  applications တွေရဲ့  additional service တွေကို သတ်မှတ်ပေးတာဖြစ်ပါတယ်။ ဥပမာ အားဖြင့် MySQL service နဲ့ ပတ်သတ်ပြီး သူ့ရဲ့ db_hostname, db_username and db_password စတာတွေကို define လုပ်ဖို့အတွက် env variable ကို အသုံးပြုရပါတယ်။

So, Let's get started....

How many types of environment variable in kubernetes?

            Kubernetes မှာ environment variable type (၃) မျိုးရှိပါတယ်။ 

1. Plain Key Value Type

2. Config Map Type

3. Secret Type ဆိုပြီး ဖြစ်ပါတယ်။


1. Plain Key Value Type

            ပထမဆုံး environment variable type ကတော့ plain key value type ဖြစ်ပါတယ်။ သူ့ကို ဘယ်လိုတည်ဆောက်ရလဲဆိုတော့  application တွေ deploy လုပ်တဲ့ YAML file ထဲမှာ တစ်ပါထဲ ထည့်သွင်း တည်ဆောက်ပါတယ်။ ဥပမာ MySQL Pod ရဲ့ YAML file ထဲမှာ env variable ကို တစ်ပါထဲ ထည့်သွင်းတည်ဆေက်တာဖြစ်ပါတယ်။

               အောက်ပုံမှာဆိုရင် ကျွန်တော်တို့ webapp-color ဆိုတဲ့ app တစ်ခုကို အသုံးပြုထားတာဖြစ်ပြီးတော့ ၎င်းအတွက် လိုအပ်တဲ့ env variable ကိုပါတစ်ဆက်ထဲ ဖော်ပြထားတာဖြစ်ပါတယ်။ env variable မှာ ဒီ webapp-color app ကို run ပြီးနောက် သူ့ကိုလှမ်းခေါ်လိုက်တဲ့အခါ app_color သည် အစိမ်းရောင် ပြနေရမှာဖြစ်ပါတယ်။






2. Config Map

            အိုကေ နောက်တစ်ခုအနေနဲ့ config map env variable ဖြစ်ပါတယ်။ config map ကိုတော့ ကျွန်တော်တို့ အပေါ်မှာ လုပ်ခဲ့သလိုမျိုး Pod definition file ထဲကို env variable တွေ မထည့်တော့ပဲ သီးခြား config map တစ်ခု တည်ဆောက်မယ် ပြီးမှ ၎င်း. config map ကို သူ့နဲ့သတ်ဆိုင်တဲ့ pod နဲ့ ချိတ်ဆက်ပေးတဲ့ ပုံစံဖြစ်ပါတယ်။

                အောက်ပုံတွေမှာ config map ဘယ်လို တည်ဆောက်လဲ​ ပြီးနောက် configmap ကို Pod နဲ့ definition file (YAML) ထဲမှာ ဘယ်လိုမျိုး ချိတ်ဆက်ပြီး အသုံးပြုထားလဲဆိုတာပြထားပါတယ်။






3. Secret

        နောက်ဆုံးတစ်ခု ကတော့ secret env variable ဖြစ်ပြီး သူ့ကိုအဓိက သုံးရခြင်း ရည်ရွယ်ချက်က key value တွေကို encoded format ဖြင့် သိမ်းဆည်းနိုင်တဲ့အတွက်ဖြစ်ပါတယ်။ Config map env variable လိုမျိုးပဲ  သီးခြား တည်ဆောက်ရပြီး သူ့ကို အသုံးပြုမယ့် Pod နဲ့ချိတ်ဆက်ပေးရပါတယ်။ Key Value တွေကို encoded လုပ်ရာမှာ base64 encoding method ကိုအသုံးပြုပါတယ်။

            အောက်ပုံမှာဆိုရင် secret env variable ထဲမှာ အသုံးပြုမယ့် mysql အတွက် လိုအပ်တဲ့ key value တွေကို encoded format ပြောင်းလဲပေးတာဖြစ်ပါတယ်။


                  အောက်ပုံမှာဆိုရင်တော့ db-secret file name ဖြင့် secret env variable တစ်ခုတည်ဆောက်မယ် အဲ့ဒီ file ထဲမှာ အပေါ်မှာ encoded လုပ်ခဲ့တဲ့ mysql key value တွေကို assign ချပေးမယ်။ ပြီးတဲ့အခါ သူနဲ့ သက်ဆိုင်တဲ့ Pod definition file ထဲမှာ ချိတ်ဆက်ပေးပြီး အသုံးပြထားတာဖြစ်ပါတယ်။




ဒါကတော့ Kubernetes ရဲ့ environment variable အကြောင်းလေးဖြစ်ပါတယ်။ 

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