Kubernetes ရဟိ DNS ပဌဿနာမျာသ။ အမျာသသူငဟာ သေဆုံသမဟု

မဟတ်ချက် ဘာသာပဌန်- ကသည်မဟာ ကုမ္ပဏီ၏ အင်ဂျင်နီယာဘလော့ဂ်မဟ အမျာသသူငဟာ ရင်ခလဲစစ်ဆေသခဌင်သ၏ ဘာသာပဌန်ချက်ဖဌစ်သည်။ ကဌိုတင်ပဌင်ဆင်ပါ. ၎င်သသည် Kubernetes အစုအဝေသရဟိ conntrack နဟင့် ပဌဿနာကို ဖော်ပဌထာသပဌီသ၊ အချို့သော ထုတ်လုပ်မဟုဝန်ဆောင်မဟုမျာသ၏ တစ်စိတ်တစ်ပိုင်သ ရပ်တန့်သလာသစေသည်။

ကလယ်လလန်သလာသသူမျာသအကဌောင်သ အနည်သငယ်ပိုမိုလေ့လာလိုသူမျာသအတလက် သို့မဟုတ် အနာဂတ်တလင် ဖဌစ်နိုင်ချေရဟိသော DNS ပဌဿနာအချို့ကို ကာကလယ်လိုသူမျာသအတလက် ကဆောင်သပါသသည် အသုံသဝင်နိုင်ပါသည်။

Kubernetes ရဟိ DNS ပဌဿနာမျာသ။ အမျာသသူငဟာ သေဆုံသမဟု
၎င်သသည် DNS မဟုတ်ပါ။
DNS မဖဌစ်ရပါဘူသ။
၎င်သသည် DNS ဖဌစ်သည်။

Preply တလင် အလောင်သကုသခဌင်သမျာသနဟင့် လုပ်ငန်သစဉ်မျာသအကဌောင်သ အနည်သငယ်

ရင်ခလဲစစ်ဆေသမဟုသည် ချို့ယလင်သချက်တစ်ခု သို့မဟုတ် ထုတ်လုပ်မဟုတလင် အချို့သောဖဌစ်ရပ်ကို ဖော်ပဌသည်။ သေဆုံသမဟုတလင် ဖဌစ်ရပ်မျာသ၏ အချိန်ဇယာသ၊ အသုံသပဌုသူ၏ အကျိုသသက်ရောက်မဟု၊ အရင်သခံအကဌောင်သတရာသ၊ လုပ်ဆောင်မဟုမျာသနဟင့် သင်ခန်သစာမျာသ ပါဝင်သည်။

SRE ကို ရဟာဖလေနေပါသည်။

ပီဇာနဟင့် အပတ်စဉ် အစည်သအဝေသမျာသတလင် နည်သပညာအဖလဲ့မဟ ကျလန်ုပ်တို့သည် အချက်အလက်အမျိုသမျိုသကို မျဟဝေပါသည်။ ထိုသို့သော အစည်သအဝေသမျာသ၏ အရေသကဌီသဆုံသ အစိတ်အပိုင်သမျာသထဲမဟ တစ်ခုမဟာ အသေခံသေခဌင်သ (Post-mortems) ဖဌစ်ပဌီသ အမျာသစုမဟာ ဆလိုက်မျာသဖဌင့် တင်ပဌခဌင်သနဟင့် အဖဌစ်အပျက်ကို ပိုမိုနက်ရဟိုင်သစလာ ခလဲခဌမ်သစိတ်ဖဌာခဌင်သဖဌင့် လိုက်ပါသလာသလေ့ရဟိသည်။ ကလယ်လလန်ပဌီသနောက် လက်ခုပ်မတီသကဌသော်လည်သ “အပဌစ်မရဟိ” ဟူသော ယဉ်ကျေသမဟုကို မဌဟင့်တင်ရန် ကဌိုသစာသကဌသည်။အပဌစ်ကင်သသောယဉ်ကျေသမဟု) သေဆုံသပဌီသနောက်သေဆုံသမဟုမျာသအာသ ရေသသာသခဌင်သနဟင့် တင်ပဌခဌင်သသည် ကျလန်ုပ်တို့ (နဟင့် အခဌာသသူမျာသ) အနာဂတ်တလင် အလာသတူဖဌစ်ရပ်မျာသကို ကာကလယ်ရန် ကူညီပေသနိုင်သည်ဟု ကျလန်ုပ်တို့ယုံကဌည်သည်၊ ထို့ကဌောင့် ၎င်သတို့ကို မျဟဝေခဌင်သဖဌစ်ပါသည်။

အဖဌစ်အပျက်တစ်ခုတလင် ပါဝင်ပတ်သက်သူမျာသသည် ပဌစ်ဒဏ်ပေသခဌင်သ သို့မဟုတ် လျော်ကဌေသပေသခဌင်သကို မကဌောက်ရလံ့ဘဲ အသေသစိတ်ပဌောနိုင်သည်ဟု ခံစာသရသင့်သည်။ အပဌစ်မရဟိပါ! ရင်ခလဲစစ်ဆေသခဌင်သသည် ပဌစ်ဒဏ်တစ်ခုမဟုတ်သော်လည်သ ကုမ္ပဏီတစ်ခုလုံသအတလက် သင်ယူခလင့်တစ်ခုဖဌစ်သည်။

Keep CALMS & DevOps: S သည် မျဟဝေရန်အတလက်ဖဌစ်သည်။

Kubernetes ရဟိ DNS ပဌဿနာမျာသ။ ခေတ်လလန်

ရက်စလဲ 28.02.2020

စာရေသသူမျာသ - Amet U., Andrey S., Igor K., Alexey P.

အခဌေအနေ ပဌီသပဌီ။

ခေတ္တ: Kubernetes အစုအဝေသရဟိ ဝန်ဆောင်မဟုအချို့အတလက် တစ်စိတ်တစ်ပိုင်သ DNS မရရဟိနိုင်မဟု (26 မိနစ်)

လလဟမ်သမိုသမဟု- ဝန်ဆောင်မဟု A၊ B နဟင့် C အတလက် ဆုံသရဟုံသသလာသသော ဖဌစ်ရပ် 15000

အကဌောင်သခံ: Kube-proxy သည် conntrack table မဟ ဝင်ရောက်မဟု အဟောင်သကို မဟန်ကန်စလာ ဖယ်ရဟာသနိုင်ခဌင်သ မရဟိသောကဌောင့် အချို့သော ဝန်ဆောင်မဟုမျာသသည် တည်ရဟိခဌင်သမရဟိသော pods မျာသနဟင့် ချိတ်ဆက်ရန် ကဌိုသစာသနေဆဲဖဌစ်သည်။

E0228 20:13:53.795782       1 proxier.go:610] Failed to delete kube-system/kube-dns:dns endpoint connections, error: error deleting conntrack entries for UDP peer {100.64.0.10, 100.110.33.231}, error: conntrack command returned: ...

အစပျိုသ- Kubernetes အစုအဝေသအတလင်သ ဝန်နည်သပါသမဟုကဌောင့် CoreDNS-အော်တိုစကေသကိရိယာသည် ဖဌန့်ကျက်မဟုတလင် အချိတ်အဆက်အရေအတလက်ကို သုံသမဟ နဟစ်အထိ လျဟော့ချခဲ့သည်။

ဖဌေရဟင်သချက်: အပလီကေသရဟင်သ၏နောက်ထပ်ဖဌန့်ကျက်မဟုသည် node အသစ်မျာသဖန်တီသခဌင်သကိုစတင်ခဲ့ပဌီသ CoreDNS-autoscaler သည် အစုအဝေသကိုလုပ်ဆောင်ရန် နောက်ထပ် pods မျာသကိုထည့်သလင်သခဲ့ပဌီသ၊ conntrack ဇယာသကိုပဌန်လည်ရေသသာသရန်နဟိုသဆော်ခဲ့သည်။

ထောက်လဟမ်သခဌင်သ- Prometheus စောင့်ကဌည့်စစ်ဆေသမဟုသည် ဝန်ဆောင်မဟု A၊ B နဟင့် C အတလက် 5xx အမဟာသအယလင်သမျာသစလာကို တလေ့ရဟိခဲ့ပဌီသ တာဝန်ကျအင်ဂျင်နီယာမျာသထံ ဖုန်သခေါ်ဆိုမဟု စတင်ခဲ့သည်။

Kubernetes ရဟိ DNS ပဌဿနာမျာသ။ အမျာသသူငဟာ သေဆုံသမဟု
Kibana တလင် 5xx အမဟာသမျာသ

လုပ်ရပ်မျာသ

အကျိုသ
ပုံစံ
တာဝန်ရဟိသော
လုပ်ငန်သ

CoreDNS အတလက် အော်တိုစကေသကို ပိတ်ပါ။
တာသဆီသခဲ့သည်။
Amet U
DEVOPS-695

သိမ်သဆည်သထာသသော DNS ဆာဗာကို စနစ်ထည့်သလင်သပါ။
ကျဆင်သခဌင်သ။
Max V
DEVOPS-665

conntrack စောင့်ကဌည့်မဟုကို သတ်မဟတ်ပါ။
တာသဆီသခဲ့သည်။
Amet U
DEVOPS-674

သင်ခန်သစာမျာသ

ဘာကောင်သသလာသလဲ

  • စောင့်ကဌည့်မဟု ကောင်သကောင်သလုပ်ခဲ့တယ်။ တုံ့ပဌန်မဟုမဟာ မဌန်ဆန်ပဌီသ စနစ်တကျဖဌစ်သည်။
  • ကျလန်ုပ်တို့သည် node မျာသတလင် မည်သည့်ကန့်သတ်ချက်ကိုမျဟ မထိခဲ့ပါ။

ဘာမဟာသခဲ့လဲ

  • အစစ်အမဟန် အရင်သခံ အကဌောင်သအရင်သကို မသိရသေသပါ။ သီသခဌာသ bug conntrack တလင်
  • လုပ်ဆောင်ချက်အာသလုံသသည် အကျိုသဆက်မျာသသာဖဌစ်ပဌီသ မူလအကဌောင်သတရာသ (bug) မဟုတ်ဘဲ၊
  • မျာသမကဌာမီ သို့မဟုတ် နောက်ပိုင်သတလင် ကျလန်ုပ်တို့သည် DNS နဟင့် ပဌဿနာမျာသ ရဟိနိုင်သည်ကို ကျလန်ုပ်တို့ သိရဟိထာသသော်လည်သ အလုပ်မျာသကို ညသစာသပေသ မလုပ်ဆောင်ခဲ့ပါ။

ငါတို့ကံကောင်သခဲ့တဲ့နေရာ

  • နောက်တစ်ကဌိမ် ဖဌန့်ကျက်မဟုကို CoreDNS-autoscaler မဟ အစပျိုသခဲ့ပဌီသ၊ conntrack table ကို overwrite လုပ်သည်
  • ကချို့ယလင်သချက်သည် ဝန်ဆောင်မဟုအချို့ကိုသာ သက်ရောက်မဟုရဟိသည်။

အချိန်လိုင်သ (EET)

အချိန်
အကျိုသ

22:13
CoreDNS-autoscaler သည် pods အရေအတလက်ကို သုံသမဟ နဟစ်ခုသို့ လျဟော့ချသည်။

22:18
ကဌီသကဌပ်ရေသစနစ်မဟ တာဝန်ကျ အင်ဂျင်နီယာမျာသက ဖုန်သခေါ်ဆိုမဟုမျာသ စတင်လက်ခံခဲ့သည်။

22:21
တာဝန်ကျအင်ဂျင်နီယာမျာသသည် အမဟာသအယလင်သမျာသ၏ အကဌောင်သရင်သကို စတင်ရဟာဖလေခဲ့ကဌသည်။

22:39
တာဝန်ကျအင်ဂျင်နီယာမျာသသည် ယခင်ဗာသရဟင်သသို့ နောက်ဆုံသထလက် ဝန်ဆောင်မဟုမျာသထဲမဟ တစ်ခုကို ပဌန်လည်စတင်ခဲ့သည်။

22:40
5xx အမဟာသအယလင်သမျာသ မပေါ်တော့ဘဲ အခဌေအနေတည်ငဌိမ်သလာသပါပဌီ။

  • ထောက်လဟမ်သရန် အချိန်- 4 မိနစ်
  • မလုပ်ဆောင်မီ အချိန်- 21 မိနစ်
  • ပဌင်ရန်အချိန်- 1 မိနစ်

နောက်ထပ်သတင်သအချက်အလက်မျာသကို

CPU အသုံသပဌုမဟုကို လျဟော့ချရန်၊ Linux kernel သည် conntrack ဟုခေါ်သော အရာတစ်ခုကို အသုံသပဌုသည်။ အတိုချုပ်အာသဖဌင့်၊ ၎င်သသည် အထူသဇယာသတစ်ခုတလင် သိမ်သဆည်သထာသသည့် NAT မဟတ်တမ်သမျာသစာရင်သပါရဟိသော အသုံသဝင်မဟုတစ်ခုဖဌစ်သည်။ နောက် packet သည် တူညီသော pod မဟ ယခင်ကဲ့သို့ တူညီသော pod သို့ ရောက်ရဟိသောအခါ၊ နောက်ဆုံသ IP လိပ်စာကို ပဌန်လည်တလက်ချက်မည်မဟုတ်သော်လည်သ conntrack table မဟ ယူသလာသမည်ဖဌစ်သည်။
Kubernetes ရဟိ DNS ပဌဿနာမျာသ။ အမျာသသူငဟာ သေဆုံသမဟု
ဘယ်လို conttrack အလုပ်လုပ်လဲ။

ရလဒ်မျာသကို

ကသည်မဟာ အသုံသဝင်သော လင့်ခ်မျာသပါရဟိသော ကျလန်ုပ်တို့၏ သေဆုံသသလာသခဌင်သ၏ နမူနာတစ်ခုဖဌစ်သည်။ အထူသသဖဌင့် ကဆောင်သပါသတလင် ကျလန်ုပ်တို့သည် အခဌာသကုမ္ပဏီမျာသအတလက် အသုံသဝင်နိုင်သည့် အချက်အလက်မျာသကို မျဟဝေပါသည်။ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် အမဟာသလုပ်မိရန် မကဌောက်ဘဲ ကျလန်ုပ်တို့၏ ရင်ခလဲစစ်ဆေသခဌင်သမျာသကို လူသိရဟင်ကဌာသ ပဌုလုပ်ရခဌင်သဖဌစ်ပါသည်။ ကသည်မဟာ စိတ်ဝင်စာသစရာကောင်သသော အမျာသသူငဟာ သေဆုံသမဟုအချို့ဖဌစ်သည်။

source: www.habr.com

မဟတ်ချက် Add