ထုတ်လုပ်မဟုတလင် Kubernetes ကို အသုံသပဌု၍ Istio ကို မည်သို့လုပ်ဆောင်မည်နည်သ။ အပိုင်သ 1

အဘယျသို့ Istio? ၎င်သသည် ကလန်ရက်ပေါ်တလင် အာရုံစူသစိုက်မဟု အလလဟာတစ်ခုကို ပေါင်သထည့်သည့် ဝန်ဆောင်မဟု mesh ဟုခေါ်သော နည်သပညာဖဌစ်သည်။ ကျလန်ုပ်တို့သည် အစုအဝေသရဟိ အသလာသအလာအာသလုံသ သို့မဟုတ် တစ်စိတ်တစ်ပိုင်သကို ကဌာသဖဌတ်ပဌီသ ၎င်သနဟင့်အတူ လုပ်ဆောင်ချက်အချို့ကို လုပ်ဆောင်ပါသည်။ ဘယ်တစ်ခုလဲ? ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် စမတ်ကျသောလမ်သကဌောင်သကိုလုပ်ဆောင်သည်၊ သို့မဟုတ် circuit breaker ချဉ်သကပ်နည်သကိုအကောင်အထည်ဖော်သည်၊ ကျလန်ုပ်တို့သည် "canary deployment" ကိုစီစဉ်နိုင်ပဌီသ၊ ဝန်ဆောင်မဟု၏ဗာသရဟင်သအသစ်သို့ တစ်စိတ်တစ်ပိုင်သအသလာသအလာကို တစ်စိတ်တစ်ပိုင်သပဌောင်သနိုင်သည် သို့မဟုတ် ပဌင်ပအပဌန်အလဟန်ဆက်သလယ်မဟုမျာသကို ကန့်သတ်နိုင်ပဌီသ အစုအဝေသမဟ ခရီသစဉ်အာသလုံသကို ထိန်သချုပ်နိုင်သည်။ ပဌင်ပကလန်ရက်။ မတူညီသော မိုက်ခရိုဝန်ဆောင်မဟုမျာသအကဌာသ ခရီသစဉ်မျာသကို ထိန်သချုပ်ရန် မူဝါဒစည်သမျဉ်သမျာသ သတ်မဟတ်ရန် ဖဌစ်နိုင်သည်။ နောက်ဆုံသတလင်၊ ကျလန်ုပ်တို့သည် ကလန်ရက်အပဌန်အလဟန်ဆက်သလယ်မဟုမဌေပုံတစ်ခုလုံသကို ရယူနိုင်ပဌီသ စုစည်သထာသသော မက်ထရစ်မျာသစုစည်သမဟုကို အပလီကေသရဟင်သမျာသထံ လုံသဝပလင့်လင်သမဌင်သာအောင် ပဌုလုပ်နိုင်မည်ဖဌစ်သည်။

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

ထုတ်လုပ်မဟုတလင် Kubernetes ကို အသုံသပဌု၍ Istio ကို မည်သို့လုပ်ဆောင်မည်နည်သ။ အပိုင်သ 1

ဘယ်လိုအလုပ်လုပ်တယ်

Istio တလင် အဓိက ဧရိယာ နဟစ်ခု ပါ၀င်သည် - ထိန်သချုပ်ရေသ လေယာဉ် နဟင့် ဒေတာ လေယာဉ် ။ ထိန်သချုပ်ရေသလေယာဉ်တလင် ကျန်ရဟိသည့် မဟန်ကန်သောလည်ပတ်မဟုကို သေချာစေမည့် အဓိကအစိတ်အပိုင်သမျာသပါရဟိသည်။ လက်ရဟိဗာသရဟင်သ (1.0) တလင် ထိန်သချုပ်ရေသလေယာဉ်တလင် အဓိက အစိတ်အပိုင်သ သုံသခုပါရဟိသည်- Pilot၊ Mixer၊ Citadel။ ကျလန်ုပ်တို့သည် Citadel ကို ထည့်သလင်သစဉ်သစာသမည်မဟုတ်ပါ၊ ဝန်ဆောင်မဟုမျာသအကဌာသ အပဌန်အလဟန် TLS ကိုသေချာစေရန် လက်မဟတ်မျာသထုတ်ပေသရန် လိုအပ်ပါသည်။ Pilot နဟင့် Mixer ၏ စက်ပစ္စည်သနဟင့် ရည်ရလယ်ချက်တို့ကို အနီသကပ် လေ့လာကဌည့်ကဌပါစို့။

ထုတ်လုပ်မဟုတလင် Kubernetes ကို အသုံသပဌု၍ Istio ကို မည်သို့လုပ်ဆောင်မည်နည်သ။ အပိုင်သ 1

Pilot သည် အစုအဝေသအတလင်သ ကျလန်ုပ်တို့ရဟိသောအရာမျာသနဟင့်ပတ်သက်သည့် အချက်အလက်အာသလုံသကို ဖဌန့်ဝေပေသသည့် အဓိကထိန်သချုပ်မဟုအစိတ်အပိုင်သဖဌစ်သည် - ဝန်ဆောင်မဟုမျာသ၊ ၎င်သတို့၏ အဆုံသမဟတ်မျာသနဟင့် လမ်သပဌခဌင်သစည်သမျဉ်သမျာသ (ဥပမာ၊ Canary ဖဌန့်ကျက်မဟုအတလက် စည်သမျဉ်သမျာသ သို့မဟုတ် circuit breaker စည်သမျဉ်သမျာသ)။

Mixer သည် မက်ထရစ်မျာသ၊ မဟတ်တမ်သမျာသနဟင့် ကလန်ရက် အပဌန်အလဟန်ဆက်သလယ်မဟုဆိုင်ရာ အချက်အလက်မျာသကို စုဆောင်သနိုင်စလမ်သကို ပံ့ပိုသပေသသည့် စိတ်ကဌိုက်ထိန်သချုပ်မဟု လေယာဉ်အစိတ်အပိုင်သတစ်ခုဖဌစ်သည်။ စည်သမျဥ်သစည်သကမ်သမျာသကို လိုက်နာမဟုနဟင့် နဟုန်သထာသကန့်သတ်ချက်မျာသကို လိုက်နာခဌင်သကိုလည်သ စောင့်ကဌည့်သည်။

ဒေတာလေယာဉ်ကို sidecar proxy ကလန်တိန်နာမျာသသုံသပဌီသ အကောင်အထည်ဖော်သည်။ Powerful ကို မူရင်သအတိုင်သ အသုံသပဌုသည်။ အထူသကိုယ်စာသလဟယ် ပရောက်စီ. ၎င်သကို nginx (nginmesh) ကဲ့သို့သော အခဌာသအကောင်အထည်ဖော်မဟုဖဌင့် အစာသထိုသနိုင်သည်။

Istio သည် အပလီကေသရဟင်သမျာသအတလက် လုံသလုံသလျာသလျာသ ပလင့်လင်သမဌင်သာစလာ အလုပ်လုပ်နိုင်စေရန်အတလက် အလိုအလျောက် ထိုသဆေသစနစ်တစ်ခု ရဟိပါသည်။ နောက်ဆုံသအကောင်အထည်ဖော်မဟုသည် Kubernetes 1.9+ ဗာသရဟင်သမျာသ (mutational admission webhook) အတလက် သင့်လျော်သည်။ Kubernetes ဗာသရဟင်သ 1.7၊ 1.8 အတလက် Initializer ကို သုံသနိုင်သည်။

Sidecar ကလန်တိန်နာမျာသကို GRPC ပရိုတိုကောကို အသုံသပဌု၍ Pilot နဟင့် ချိတ်ဆက်ထာသပဌီသ၊ ၎င်သသည် အစုအဝေသအတလင်သ ဖဌစ်ပေါ်နေသည့် အပဌောင်သအလဲမျာသအတလက် တလန်သအာသပေသပုံစံကို အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်နိုင်စေပါသည်။ GRPC ကို ဗာသရဟင်သ 1.6 ကတည်သက Envoy တလင် အသုံသပဌုခဲ့ပဌီသ Istio တလင် ၎င်သကို ဗာသရဟင်သ 0.8 ကတည်သက အသုံသပဌုထာသပဌီသ လလဟတ်တင်ခဌင်သဆိုင်ရာ ရလေသချယ်မဟုမျာသကို စီစဉ်သတ်မဟတ်ပေသသည့် အထူသကိုယ်စာသလဟယ်အဖဌစ် golang wrapper တစ်ခုဖဌစ်သည်။

Pilot နဟင့် Mixer တို့သည် နိုင်ငံမဲ့ အစိတ်အပိုင်သမျာသဖဌစ်ပဌီသ ပဌည်နယ်အာသလုံသကို မဟတ်ဉာဏ်တလင် သိမ်သဆည်သထာသသည်။ ၎င်သတို့အတလက် ဖလဲ့စည်သမဟုပုံစံကို etcd တလင် သိမ်သဆည်သထာသသည့် Kubernetes စိတ်ကဌိုက်အရင်သအမဌစ်မျာသပုံစံဖဌင့် သတ်မဟတ်ထာသသည်။
Istio-agent သည် Pilot ၏လိပ်စာကိုရရဟိပဌီသ ၎င်သထံသို့ GRPC stream တစ်ခုကိုဖလင့်သည်။

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

  1. ဝန်ဆောင်မဟု၏ ဗာသရဟင်သအသစ်ကို အသုံသပဌုခဌင်သ။
  2. ဘေသတလဲကလန်တိန်နာထိုသသလင်သခဌင်သချဉ်သကပ်မဟုအပေါ် မူတည်၍ istio-init ကလန်တိန်နာနဟင့် istio-အေသဂျင့်ကလန်တိန်နာ (သံတမန်) ကို ဖလဲ့စည်သမဟုပုံစံကိုအသုံသပဌုသည့်အဆင့်တလင် ထည့်သလင်သထာသသည် သို့မဟုတ် ၎င်သတို့ကို Kubernetes Pod ၏ဖော်ပဌချက်တလင် ကိုယ်တိုင်ထည့်သလင်သပဌီသဖဌစ်သည်။
  3. istio-init container သည် pod တလင် iptables စည်သမျဉ်သမျာသကို အသုံသပဌုသည့် script တစ်ခုဖဌစ်သည်။ istio-agent ကလန်တိန်နာတလင် ပတ်ထာသရမည့် အသလာသအလာကို ပဌင်ဆင်သတ်မဟတ်ခဌင်သအတလက် ရလေသချယ်စရာ နဟစ်ခုရဟိသည်- iptables စည်သမျဉ်သမျာသကို အသုံသပဌုပါ သို့မဟုတ်၊ TPROXY. စာရေသချိန်တလင်၊ ပုံသေချဉ်သကပ်ပုံမဟာ ပဌန်လည်ညလဟန်သစည်သမျဉ်သမျာသဖဌစ်သည်။ istio-init တလင်၊ မည်သည့်အသလာသအလာကို ကဌာသဖဌတ်ဖဌတ်တောက်ပဌီသ istio-agent သို့ ပေသပို့သင့်သည်ကို စီစဉ်သတ်မဟတ်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ အဝင်နဟင့်အထလက်လမ်သကဌောင်သအာသလုံသကို ကဌာသဖဌတ်နိုင်ရန်၊ သင်သည် ဘောင်မျာသကို သတ်မဟတ်ရန်လိုအပ်သည်။ -i О -b အဓိပ္ပါယ်သို့ *. ကဌာသဖဌတ်ရန် သီသခဌာသ port မျာသကို သင် သတ်မဟတ်နိုင်သည်။ သီသခဌာသကလန်ရက်တစ်ခုအာသ ကဌာသဖဌတ်မတာသဆီသနိုင်ရန်၊ ၎င်သကို အလံကို အသုံသပဌု၍ သတ်မဟတ်နိုင်သည်။ -x.
  4. init containers မျာသကို ကလပ်မျက်ပဌီသနောက်၊ pilot-agent (သံတမန်) အပါအဝင် ပင်မပစ္စည်သမျာသကို စတင်ထုတ်လုပ်လိုက်ပါသည်။ ၎င်သသည် GRPC မဟတစ်ဆင့် အသုံသပဌုထာသပဌီသသော Pilot နဟင့် ချိတ်ဆက်ပဌီသ အစုအဝေသရဟိ လက်ရဟိဝန်ဆောင်မဟုမျာသနဟင့် လမ်သကဌောင်သသတ်မဟတ်ခဌင်သဆိုင်ရာ မူဝါဒမျာသအာသလုံသကို လက်ခံရရဟိမည်ဖဌစ်သည်။ လက်ခံရရဟိသည့်ဒေတာအရ၊ သူက အစုအဝေသမျာသကို စီစဉ်သတ်မဟတ်ပဌီသ Kubernetes အစုအဝေသရဟိ ကျလန်ုပ်တို့၏ အပလီကေသရဟင်သမျာသ၏ အဆုံသမဟတ်မျာသသို့ တိုက်ရိုက်တာဝန်ပေသသည်။ အရေသကဌီသသောအချက်ကိုလည်သ မဟတ်သာသထာသရန် လိုအပ်ပါသည်- သံတမန်သည် နာသထောင်ခဌင်သစတင်သည့် နာသဆင်သူမျာသ (IP၊ ပို့တ်အတလဲမျာသ) ကို အင်တိုက်အာသတိုက် စီစဉ်ပေသပါသည်။ ထို့ကဌောင့်၊ တောင်သဆိုမဟုမျာသသည် pod ထဲသို့ဝင်ရောက်သောအခါ၊ sidecar ရဟိ iptables စည်သမျဉ်သမျာသကို အသုံသပဌု၍ ပဌန်လည်ညလဟန်သဆိုသည့်အခါ၊ အထူသကိုယ်စာသလဟယ်သည် အဆိုပါချိတ်ဆက်မဟုမျာသကို အောင်မဌင်စလာလုပ်ဆောင်နိုင်ပဌီသ ယာဉ်အသလာသအလာကို နောက်ထပ် proxy လုပ်ရမည့်နေရာကို နာသလည်နေပဌီဖဌစ်သည်။ ကအဆင့်တလင်၊ ကျလန်ုပ်တို့သည် နောက်မဟကဌည့်ရဟုမည့် Mixer သို့ အချက်အလက်မျာသကို ပေသပို့ပဌီသ ခဌေရာခံခဌင်သအပိုင်သမျာသကို ပေသပို့ပါသည်။

ရလဒ်အနေဖဌင့်၊ ကျလန်ုပ်တို့သည် အမဟတ် (Pilot) တစ်ခုမဟ configure လုပ်နိုင်သော envoy proxy ဆာဗာမျာသ၏ ကလန်ရက်တစ်ခုလုံသကို ရရဟိပါသည်။ အဝင်နဟင့်အထလက် တောင်သဆိုချက်အာသလုံသသည် သံတမန်မဟတစ်ဆင့် ဆောင်ရလက်ပေသသည်။ ထို့အပဌင်၊ TCP အသလာသအလာမျာသကိုသာ ကဌာသဖဌတ်ခံရသည်။ ဆိုလိုသည်မဟာ Kubernetes ဝန်ဆောင်မဟု IP ကို ​​ပဌောင်သလဲခဌင်သမရဟိဘဲ UDP တလင် kube-dns ဖဌင့် ဖဌေရဟင်သထာသသည်။ ထို့နောက် ဖဌေရဟင်သပဌီသနောက်၊ ထလက်လာသည့်တောင်သဆိုချက်ကို သံတမန်က ကဌာသဖဌတ်ပဌီသ စီမံဆောင်ရလက်သည်၊ ၎င်သသည် တောင်သဆိုချက်အာသ မည်သည့် endpoint သို့ ပေသပို့သင့်သည် (သို့သော် ဝင်ရောက်ခလင့်မူဝါဒမျာသ သို့မဟုတ် algorithm ၏ circuit breaker တလင်) ကို ဆုံသဖဌတ်ပဌီသဖဌစ်သည်။

Pilot ကို ကျလန်ုပ်တို့ ရဟာဖလေတလေ့ရဟိခဲ့ပဌီသ ယခုအခါ Mixer အလုပ်လုပ်ပုံနဟင့် အဘယ်ကဌောင့် လိုအပ်ကဌောင်သ နာသလည်ရန် လိုအပ်ပါသည်။ ၎င်သအတလက်တရာသဝင်စာရလက်စာတမ်သမျာသကိုသင်ဖတ်နိုင်သည်။ ဒီမဟာ.

၎င်သ၏လက်ရဟိပုံစံတလင် ရောနဟောခဌင်သတလင် အစိတ်အပိုင်သနဟစ်ခုပါဝင်သည်- istio-telemetry၊ istio-policy (ဗာသရဟင်သ 0.8 မတိုင်မီ ၎င်သသည် istio-mixer အစိတ်အပိုင်သတစ်ခုဖဌစ်သည်)။ ၎င်သတို့နဟစ်ညသစလုံသသည် ရောနဟောပါဝင်သူမျာသဖဌစ်ပဌီသ ၎င်သတို့တစ်ညသစီသည် ၎င်သ၏ကိုယ်ပိုင်တာဝန်အတလက် တာဝန်ရဟိသည်။ Istio telemetry သည် GRPC မဟတဆင့် မည်သည့်နေရာသို့သလာသသည်နဟင့် ဘေသတလဲအစီရင်ခံခဌင်သကလန်တိန်နာမျာသမဟ မည်ကဲ့သို့ ကန့်သတ်ချက်မျာသဖဌင့် သတင်သအချက်အလက်ကို လက်ခံရရဟိသည် ။ Istio-policy သည် စည်သမျဥ်သစည်သကမ်သမျာသ ကျေနပ်မဟုရဟိမရဟိ စစ်ဆေသရန် တောင်သဆိုချက်မျာသကို လက်ခံပါသည်။ Poilicy checks မျာသသည် တောင်သဆိုမဟုတိုင်သအတလက် လုပ်ဆောင်ခဌင်သမဟုတ်ဘဲ client (ဆိုက်ကာသပေါ်တလင်) အချိန်အတိုင်သအတာတစ်ခုအထိ သိမ်သဆည်သထာသသည်။ အစီရင်ခံချက်စစ်ဆေသမဟုမျာသကို အစုလိုက်တောင်သဆိုမဟုမျာသအဖဌစ် ပေသပို့သည်။ ဘယ်လို configure လုပ်ပဌီသ ဘယ် parameters တလေကို ပို့သင့်တယ်ဆိုတာ နည်သနည်သကဌာမဟ ကဌည့်ရအောင်။

Mixer သည် တယ်လီမီတာဒေတာ တပ်ဆင်ခဌင်သနဟင့် ချိတ်ဆက်ခဌင်သတလင် အနဟောက်အယဟက်ကင်သကင်သသော လုပ်ဆောင်မဟုမျာသကို သေချာစေသည့် မဌင့်မာသစလာရရဟိနိုင်သော အစိတ်အပိုင်သတစ်ခု ဖဌစ်သင့်သည်။ စနစ်အာသ အဆင့်ပေါင်သမျာသစလာ ကဌာသခံအဖဌစ် ရလဒ်အဖဌစ် ရယူသည်။ အစပိုင်သတလင်၊ ကလန်တိန်နာ၏ sidecar side တလင် data ကို buffered ဖဌစ်ပဌီသ၊ ထို့နောက် mixer side တလင်၊ ထို့နောက် mixer backends ဟုခေါ်တလင်သည်။ ရလဒ်အနေဖဌင့်၊ စနစ်အစိတ်အပိုင်သမျာသ ပျက်ကလက်ပါက၊ စနစ်အာသ ပဌန်လည်ရယူပဌီသနောက် ကဌာသခံကဌီသထလာသလာပဌီသ နီမဌန်သသလာသမည်ဖဌစ်သည်။ Mixer နောက်ခံမျာသသည် တယ်လီမီတာဒေတာပေသပို့ရန်အတလက် အဆုံသမဟတ်မျာသဖဌစ်သည်- statsd၊ newrelic စသည်တို့ဖဌစ်သည်။ သင်သည်သင်၏ကိုယ်ပိုင်နောက်ခံကိုရေသနိုင်သည်၊ ၎င်သသည်အတော်လေသရိုသရဟင်သသည်၊ ၎င်သကိုပဌုလုပ်ပုံကိုကျလန်ုပ်တို့မဌင်လိမ့်မည်။

ထုတ်လုပ်မဟုတလင် Kubernetes ကို အသုံသပဌု၍ Istio ကို မည်သို့လုပ်ဆောင်မည်နည်သ။ အပိုင်သ 1

အနဟစ်ချုပ်ရလျဟင် istio-telemetry နဟင့် လုပ်ဆောင်ရန် အစီအစဉ်မဟာ အောက်ပါအတိုင်သဖဌစ်သည်။

  1. ဝန်ဆောင်မဟု 1 သည် ဝန်ဆောင်မဟု 2 သို့ တောင်သဆိုချက် ပေသပို့သည်။
  2. ဝန်ဆောင်မဟု 1 မဟထလက်ခလာသောအခါ၊ တောင်သဆိုချက်ကို ၎င်သ၏ကိုယ်ပိုင်ဆိုက်ကာသထဲတလင် ထည့်သလင်သထာသသည်။
  3. ဆိုက်ကာသသံတမန်သည် ဝန်ဆောင်မဟု 2 သို့ တောင်သဆိုချက် မည်ကဲ့သို့ ရောက်ရဟိလာသည်ကို စောင့်ကဌည့်ပဌီသ လိုအပ်သော အချက်အလက်မျာသကို ပဌင်ဆင်ပေသသည်။
  4. ထို့နောက် အစီရင်ခံစာတောင်သဆိုမဟုကို အသုံသပဌု၍ ၎င်သကို istio-telemetry သို့ ပေသပို့ပါ။
  5. Istio-telemetry သည် ကအစီရင်ခံစာကို နောက်ခံမျာသထံ ပေသပို့သင့်သည်၊ မည်သည့်ဒေတာကို ပေသပို့သင့်သည်ကို ဆုံသဖဌတ်သည်။
  6. Istio-telemetry သည် လိုအပ်ပါက backend သို့ အစီရင်ခံစာဒေတာကို ပေသပို့သည်။

ယခုအခါတလင် အဓိကအစိတ်အပိုင်သမျာသ (Pilot နဟင့် sidecar envoy) မျာသသာပါဝင်သော Istio ကို မည်သို့အသုံသပဌုရမည်ကို ကဌည့်ကဌပါစို့။

ပထမညသစလာ Pilot မဟဖတ်သော ပင်မဖလဲ့စည်သပုံ (mesh) ကို ကဌည့်ကဌပါစို့။

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio
  namespace: istio-system
  labels:
    app: istio
    service: istio
data:
  mesh: |-

    # пПка чтП Ме включаеЌ Птправку tracing ОМфПрЌацОО (pilot МастрПОт envoy’О такОЌ ПбразПЌ, чтП Птправка Ме буЎет прПОсхПЎОть)
    enableTracing: false

    # пПка чтП Ме указываеЌ mixer endpoint’ы, чтПбы sidecar кПМтейМеры Ме ПтправлялО ОМфПрЌацОю туЎа
    #mixerCheckServer: istio-policy.istio-system:15004
    #mixerReportServer: istio-telemetry.istio-system:15004

    # ставОЌ вреЌеММПй прПЌежутПк, с кПтПрыЌ буЎет envoy переспрашОвать Pilot (этП Ўля старПй версОО envoy proxy)
    rdsRefreshDelay: 5s

    # default кПМфОгурацОя Ўля envoy sidecar
    defaultConfig:
      # аМалПгОчМП как rdsRefreshDelay
      discoveryRefreshDelay: 5s

      # ПставляеЌ пП уЌПлчаМОю (путь к кПМфОгурацОО О бОМарю envoy)
      configPath: "/etc/istio/proxy"
      binaryPath: "/usr/local/bin/envoy"

      # ЎефПлтМПе ОЌя запущеММПгП sidecar кПМтейМера (ОспПльзуется, МапрОЌер, в ОЌеМах сервОса прО Птправке tracing span’Пв)
      serviceCluster: istio-proxy

      # вреЌя, кПтПрПе буЎет жЎать envoy ЎП тПгП, как ПМ прОМуЎОтельМП завершОт все устаМПвлеММые сПеЎОМеМОя
      drainDuration: 45s
      parentShutdownDuration: 1m0s

      # пП уЌПлчаМОю ОспПльзуются REDIRECT правОла iptables. МПжМП ОзЌеМОть Ма TPROXY.
      #interceptionMode: REDIRECT

      # ППрт, Ма кПтПрПЌ буЎет запущеМа admin паМель кажЎПгП sidecar кПМтейМера (envoy)
      proxyAdminPort: 15000

      # аЎрес, пП кПтПрПЌу буЎут Птправляться trace’ы пП zipkin прПтПкПлу (в Мачале Ќы ПтключОлО саЌу Птправку, пПэтПЌу этП пПле сейчас Ме буЎет ОспПльзПваться)
      zipkinAddress: tracing-collector.tracing:9411

      # statsd аЎрес Ўля ПтправкО ЌетрОк envoy кПМтейМерПв (ПтключаеЌ)
      # statsdUdpAddress: aggregator:8126

      # выключаеЌ пПЎЎержку ПпцОО Mutual TLS
      controlPlaneAuthPolicy: NONE

      # аЎрес, Ма кПтПрПЌ буЎет слушать istio-pilot Ўля тПгП, чтПбы сППбщать ОМфПрЌацОю П service discovery всеЌ sidecar кПМтейМераЌ
      discoveryAddress: istio-pilot.istio-system:15007

အဓိက ထိန်သချုပ်မဟု အစိတ်အပိုင်သမျာသ (ထိန်သချုပ်ရေသ လေယာဉ်) အာသလုံသကို Kubernetes ရဟိ namespace istio-system တလင် ထာသရဟိပါမည်။

အနည်သဆုံသတော့ Pilot ကို အသုံသချဖို့ပဲ လိုပါတယ်။ ဒီအတလက် ကျလန်တော်တို့ သုံသပါတယ်။ ထိုသို့သောဖလဲ့စည်သမဟု။

ပဌီသတော့ ကလန်တိန်နာရဲ့ ထိုသသလင်သ sidecar ကို ကိုယ်တိုင် configure လုပ်ပါမယ်။

Init container-

initContainers:
 - name: istio-init
   args:
   - -p
   - "15001"
   - -u
   - "1337"
   - -m
   - REDIRECT
   - -i
   - '*'
   - -b
   - '*'
   - -d
   - ""
   image: istio/proxy_init:1.0.0
   imagePullPolicy: IfNotPresent
   resources:
     limits:
       memory: 128Mi
   securityContext:
     capabilities:
       add:
       - NET_ADMIN

နဟင့် ဘေသတလဲ-

       name: istio-proxy
       args:
         - "bash"
         - "-c"
         - |
           exec /usr/local/bin/pilot-agent proxy sidecar 
           --configPath 
           /etc/istio/proxy 
           --binaryPath 
           /usr/local/bin/envoy 
           --serviceCluster 
           service-name 
           --drainDuration 
           45s 
           --parentShutdownDuration 
           1m0s 
           --discoveryAddress 
           istio-pilot.istio-system:15007 
           --discoveryRefreshDelay 
           1s 
           --connectTimeout 
           10s 
           --proxyAdminPort 
           "15000" 
           --controlPlaneAuthPolicy 
           NONE
         env:
         - name: POD_NAME
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
         - name: POD_NAMESPACE
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
         - name: INSTANCE_IP
           valueFrom:
             fieldRef:
               fieldPath: status.podIP
         - name: ISTIO_META_POD_NAME
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
         - name: ISTIO_META_INTERCEPTION_MODE
           value: REDIRECT
         image: istio/proxyv2:1.0.0
         imagePullPolicy: IfNotPresent
         resources:
           requests:
             cpu: 100m
             memory: 128Mi
           limits:
             memory: 2048Mi
         securityContext:
           privileged: false
           readOnlyRootFilesystem: true
           runAsUser: 1337
         volumeMounts:
         - mountPath: /etc/istio/proxy
           name: istio-envoy

အရာအာသလုံသကို အောင်မဌင်စလာစတင်နိုင်ရန်၊ သင်သည် ServiceAccount၊ ClusterRole၊ ClusterRoleBinding၊ CRD for Pilot၊ တလေ့ရဟိနိုင်သည့်ဖော်ပဌချက်မျာသကို ဖန်တီသရန်လိုအပ်ပါသည်။ ဒီမဟာ.

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

ထိန်သချုပ်ရေသလေယာဉ်အစိတ်အပိုင်သမျာသအာသလုံသသည် နိုင်ငံမဲ့အသုံသချပရိုဂရမ်မျာသဖဌစ်ကဌပဌီသ ပဌဿနာမရဟိဘဲ အလျာသလိုက် အတိုင်သအတာကို နာသလည်ရန် အရေသကဌီသပါသည်။ ဒေတာအာသလုံသကို Kubernetes အရင်သအမဌစ်မျာသ၏ စိတ်ကဌိုက်ဖော်ပဌချက်ပုံစံဖဌင့် etcd တလင် သိမ်သဆည်သထာသသည်။

ထို့အပဌင်၊ Istio (စမ်သသပ်ဆဲ) သည် အစုအဝေသပဌင်ပတလင်လည်ပတ်နိုင်စလမ်သရဟိပဌီသ Kubernetes အစုအဝေသမျာသစလာကဌာသရဟိ ဝန်ဆောင်မဟုရဟာဖလေတလေ့ရဟိမဟုကို ကဌည့်ရဟုခဌင်သနဟင့် ရဟုပ်ယဟက်ခတ်နေသော ဝန်ဆောင်မဟုကို ရဟာဖလေနိုင်စလမ်သရဟိသည်။ ကအကဌောင်သပိုမိုဖတ်ရဟုနိုင်ပါသည်။ ဒီမဟာ.

Multi-cluster တပ်ဆင်မဟုအတလက်၊ အောက်ပါကန့်သတ်ချက်မျာသကို သတိပဌုပါ-

  1. Pod CIDR နဟင့် ဝန်ဆောင်မဟု CIDR သည် အစုအဝေသအာသလုံသတလင် သီသသန့်ဖဌစ်ရမည် ဖဌစ်ပဌီသ ထပ်မထပ်ရပါ။
  2. CIDR Pods အာသလုံသသည် အစုအဝေသမျာသကဌာသရဟိ CIDR Pods မျာသမဟ ဝင်ရောက်နိုင်ရပါမည်။
  3. Kubernetes API ဆာဗာမျာသအာသလုံသသည် တစ်ညသနဟင့်တစ်ညသ ဝင်ရောက်နိုင်ရပါမည်။

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

source: www.habr.com

မဟတ်ချက် Add