ကျွန်တော် ဒီနေ့ sharing လုပ်ပေးချင်တဲ့ topic ကတော့ ကျွန်တော်တို့တွေရဲ့ kubernetes cluster ပေါ်မှာတင်ထားတဲ့ service / application တစ်ခုကနေ external api လို့ခေါ်တဲ့ အပြင်က organization ဒါမှမဟုတ် bank api လိုမျိုးကို ခေါ်ဖို့လိုအပ်တဲ့ အခါမှာ ဘယ်လိုလုပ်ကြမလဲဆိုတာကို အနည်းငယ်ရှင်းပြပေးပါမယ်။ ကျွန်တော်ကတော့ azure ကိုသုံးတော့ azure kubernetes service ( AKS ) နဲ့ပဲရှင်းပြပေးပါမယ်။
k8s cluster က on-prem အချင်းချင်းဆိုရင်တော့ network သမားတွေကနေ လိုအပ်တဲ့ vpn tunnel တွေဆောက်ပြီး connectivity ရအောင် လုပ်ပေးကြရမှာပေါ့။ ဒီနေရာမှာ ကျွန်တော်တို့ဖက်က cloud ကနေ k8s service ကိုဝယ်သုံးမယ်။ ကျွန်တော့်အတွေ့ကြုံအရ AKS or EKS တစ်ခုခုပေါ်မှာ run ထားတဲ့ application ထဲကနေ external or third party api ကိုခေါ်ဖို့ဆို နည်းလမ်း ၂ခုနဲ့ လုပ်ပေးခဲ့ဖူးပါတယ်။
ပထမနည်းကတော့ bank ကိုသွားပြီး သူတို့ local network နဲ့ vpn tunnel ထိုးပေးတာပါ။ ဒုတိယနည်းကတော့ vpn ထိုးမရပါဖူး။ သူတို့ဖက်က ကျွန်တော်တို့ရဲ့ access လုပ်မယ့် ip ကိုပဲ ပေးပါ whitelist လုပ်ပေးမယ်ပေါ့။ access လုပ်ဖို့လိုတာက just UAT api ပါ။ ဒီနေ့ share ပေးမှာက ဒုတိယနည်းဖြစ်တဲ့ Static IP Whitelisting နဲ့ AKS ထဲကနေ Bank API ကို ဘယ်လိုခေါ်နိုင်မလဲ ဆိုတာကို Step by Step ရှင်းပြပေးသွားမှာပါ။
whitelist လုပ်ပေးရမယ့် IP ကဘယ်ဟာဖြစ်မလဲ
ဆက်ပြီး မဖတ်ခင်မှာ သင်က aks or eks တစ်ခုခုကိုသုံးမယ်။ အခုလိုမျိုး external api နဲ့ မလုပ်ဖူးသေးဘူးဆိုရင် အရင်စဥ်းစားကြည့်ပါ။ သင်ဆိုရင်ကော ဘယ် ip ကိုပေးမှာလဲ။ aks node တွေရဲ့ ip list လား pod or service ရဲ့ ip လား စဥ်းစားလို့ပြီးပြီဆိုရင် ဆက်ပြီး ဆွေးနွေးကြည့်ရအောင်။ အရိုးသားဆုံးဝန်ခံရရင် ကျွန်တော်လည်းဒီ solution ကို chatgpt ကနေ ရခဲ့တာပါ။ ကျွန်တော်တို့ azure NAT gateway ကိုသုံးရပါမယ်။ အရင်ဆုံး ကျွန်တော်သူတို့ကို ပေးခဲ့တာက ingress ရဲ့ service ip ပါ။ load balancer အနေနဲ့ ထုတ်ပေးတော့ဒီဟာကိုပေးရင်ရမယ်လို့ထင်ခဲ့တာပေါ့။ ပေးခဲ့တယ်။ ခေါ်လို့မရဖူး။ နောက်ထပ် ip တွေလည်း ပေးခဲ့သေးတယ်။ တစ်ခုမှအလုပ်မလုပ်ဖူး။
ingress ရဲ့ ip ကဘာလို့အလုပ်မလုပ်တာလဲ
ရှင်းရှင်းလေးပါ။ ingress မလို့အလုပ်မလုပ်တာပေါ့ဗျာ။ inbound နဲ့ outbound traffic တွေဆိုတာကိုသိကြမယ်ထင်ပါတယ်။ inbound ဆိုတာ ingress ဖြစ်ပြီး ကျွန်တော်တို့ရဲ့ service ကို internet ကခေါ်ဖို့အတွက်ကိုဆိုလိုတာပါ။ ဒီနေရာမှာ ကျွန်တော်တို့ဖက်ကနေ bank api ကိုခေါ်ချင်တာမလား ဒါဆို outbound or egress ဖြစ်တယ်။ ဒါဆို egress နဲ့ဆိုင်တဲ့ ip ကိုပေးမှရမယ်။
AKS မှာ Default Outbound Traffic က ဘယ်လိုအလုပ်လုပ်လဲ
AKS cluster ထဲမှာ pod တွေက outbound request ပေးတဲ့အခါ Azure က assign လုပ်ထားတဲ့ dynamic public IP ကိုသုံးပြီး internet ထဲကိုထွက်တယ်။ ဒီ IP တွေက အချိန်အခါအမျိုးမျိုးမှာ ပြောင်းလဲနိုင်တယ်။ ဒါကြောင့် ဘဏ်ဘက်မှာ Whitelist မလုပ်နိုင်ပါဘူး။
NAT gateway ဆိုတာဘာလဲ။ NAT gateway အသုံးဝင်ပုံ
NAT gateway အကြောင်းမရှင်းခင်မှာ NAT ( Network Address Translation ) ဆိုတာကိုတော့အနည်းငယ်သိထားသင့်ပါတယ်။ technical စကားတွေမသုံးပဲပြောရမယ်ဆို private network or ip တွေဟာ internet ကိုမသုံးနိုင်ပါဖူး။ public ကိုထွက်ဖို့ဆို public ip တစ်ခုလိုပါတယ်။ NAT က နားလည်ရလွယ်အောင်ပြောရရင် အဲ့ private ip တွေကို public ပြောင်းတဲ့နေရာမှာ အလုပ်လုပ်ပေးတာပါ။ network သမားစစ်စစ်မဟုတ်လို့ NAT အကြောင်းသေချာမရှင်းပြနိုင်တာ နားလည်ပေးစေလိုပါတယ်။ Azure NAT Gateway ဆိုတာက Azure ရဲ့ Managed NAT Service တစ်ခုဖြစ်ပြီး Azure VNet ထဲမှာရှိတဲ့ Subnet (e.g., AKS Node Subnet) ထဲက Resource တွေ (Pod, Node, etc.) က Outbound Traffic ပေးတဲ့အခါ Static Public IP တစ်ခုတည်းနဲ့ Internet ကို ထွက်နိုင်အောင် လုပ်ပေးပါတယ်။
NAT gateway ချိတ်ဆက်ပုံ
Azure မှာ nat gateway တစ်ခု ဆောက်ပြီး aks ရဲ့ subnet ကို attach လုပ်ပေးလိုက်ပြီဆို ကျွန်တော်တို့ aks ဖက်ကနေ bank api ကိုခေါ်လို့ရသွားပြီဖြစ်ပါတယ်။ ဒီလောက်ဆို ကျွန်တော်ပေးချင်တဲ့ message ကိုသိလောက်ပြီထင်ပါတယ်။ လိုအပ်တဲ့သူတွေလည်းသုံးနိုင်ပါတယ်။ NAT အကြောင်း ingress / egress တွေအကြောင်း ပိုပြီးသိချင်ရင်တော့ ကိုယ်တိုင်ပဲလေ့လာကြည့်ကြဖို့တိုက်တွန်းပါတယ်။ အဆင်ပြေကြပါစေခင်ဗျာ။
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 ကနေ ခလုတ်လေးတွေ လိုက်နှိပ်ပြီ...

