စိတ်ကဌိုက်ပဌင်ဆင်ရန် အကျဉ်သချုပ် နိဒါန်သ

မဟတ်ချက်။ ဘာသာပဌန်ဆောင်သပါသကို IT တလင် အတလေ့အကဌုံမျာသစလာရဟိသော အင်ဂျင်နီယာ Scott Lowe မဟ ရေသသာသခဲ့ခဌင်သဖဌစ်ပဌီသ ပုံနဟိပ်စာအုပ် ခုနစ်အုပ် (အဓိကအာသဖဌင့် VMware vSphere) ၏ စာရေသဆရာ/ပူသတလဲရေသသာသသူဖဌစ်သည်။ ယခု သူသည် ၎င်သ၏ VMware လုပ်ငန်သခလဲ Heptio (2016 ခုနဟစ်တလင် ဝယ်ယူခဲ့သည်)၊ cloud computing နဟင့် Kubernetes တို့ကို အထူသပဌု၍ အလုပ်လုပ်ပါသည်။ စာသာသကိုယ်တိုင်က နည်သပညာကို အသုံသပဌု၍ Kubernetes အတလက် ဖလဲ့စည်သမဟုဆိုင်ရာ စီမံခန့်ခလဲမဟုအတလက် တိုတောင်သပဌီသ နာသလည်ရလလယ်ကူသော နိဒါန်သတစ်ခုအဖဌစ် လုပ်ဆောင်ပါသည်။ စိတ်ကဌိုက်လုပ်ပါ။မကဌာသေသမီက K8s ၏ အစိတ်အပိုင်သဖဌစ်လာခဲ့သည်။

စိတ်ကဌိုက်ပဌင်ဆင်ရန် အကျဉ်သချုပ် နိဒါန်သ

Kustomize သည် အသုံသပဌုသူမျာသအာသ "ရိုသရဟင်သပဌီသ ပုံစံခလက်မပါသော YAML ဖိုင်မျာသကို ကလဲပဌာသခဌာသနာသသောရည်ရလယ်ချက်မျာသအတလက် စိတ်ကဌိုက်ပဌင်ဆင်နိုင်ပဌီသ မူရင်သ YAML ကို နဂိုအတိုင်သထာသ၍ အသုံသပဌုရနိုင်သည်" (ဖော်ပဌချက်ကို တိုက်ရိုက်ချေသယူပါသည်။ GitHub တလင် repository ကို စိတ်ကဌိုက်ပဌင်ဆင်ပါ။) Kustomize ကို တိုက်ရိုက်လုပ်ဆောင်နိုင်သည် သို့မဟုတ် Kubernetes 1.14 တလင် အသုံသပဌုထာသသည်။ kubectl -k ၎င်သ၏လုပ်ဆောင်နိုင်စလမ်သကို အသုံသပဌုရန် ( Kubernetes 1.15 တလင် ဖဌစ်သော်လည်သ၊ သီသခဌာသ binary သည် kubectl တလင် တည်ဆောက်ထာသသော စလမ်သရည်မျာသထက် အသစ်ဖဌစ်သည်)။ (မဟတ်ချက်။ ဘာသာပဌန်: မကဌာသေသမီက ထုတ်ပဌန်မဟုနဟင့်အတူ ကူဘာနက် 1.16 စိတ်ကဌိုက်လုပ်ပါ။ မဟထောက်ပံ့သည် kubeadm utility တလင်လည်သဖဌစ်သည်။) ဒီ post မဟာတော့ စာဖတ်သူတလေကို Customize ရဲ့ အခဌေခံအချက်လေသတလေကို မိတ်ဆက်ပေသချင်ပါတယ်။

၎င်သ၏ အရိုသရဟင်သဆုံသပုံစံ/လျဟောက်လလဟာတလင်၊ kustomize သည် အရင်သအမဌစ်မျာသစုစည်သမဟု (YAML ဖိုင်မျာသ- Kubernetes အရာဝတ္ထုမျာသ- အသုံသချမဟုမျာသ၊ ဝန်ဆောင်မဟုမျာသ စသည်ဖဌင့်) နဟင့် အဆိုပါအရင်သအမဌစ်မျာသအတလက် လိုအပ်သောပဌောင်သလဲမဟုမျာသအတလက် ညလဟန်ကဌာသချက်မျာသစာရင်သမျာသ။ တလင်ပါရဟိသော နည်သဥပဒေသကို make အသုံသပဌုသကဲ့သို့ပင် Makefileနဟင့် Docker မဟ ညလဟန်ကဌာသချက်မျာသကို အခဌေခံ၍ ကလန်တိန်နာကို တည်ဆောက်သည်။ Dockerfileစိတ်ကဌိုက်အသုံသပဌုပါ။ kustomization.yaml အသုံသပဌုသူသည် အရင်သအမဌစ်အစုတစ်ခုသို့ ပဌောင်သလဲလိုသော ပဌောင်သလဲမဟုမျာသအကဌောင်သ လမ်သညလဟန်ချက်မျာသကို သိမ်သဆည်သရန်။

ဒါကတော့ နမူနာဖိုင်တစ်ခုပါ။ kustomization.yaml:

resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

ဖိုင်ထဲက ဖဌစ်နိုင်တဲ့ အကလက်တလေအာသလုံသကို ပဌောပဌဖို့ ကဌိုသစာသမဟာ မဟုတ်ပါဘူသ။ kustomization.yaml (ဒီအကဌောင်သရေသထာသတာ ကောင်သပါတယ်။ ဒီမဟာ) ဒါပေမယ့် တိကျတဲ့ ဥပမာတစ်ခုရဲ့ အကျဉ်သချုံသကို ငါပဌောပဌမယ်။

  • လယ်ယာ resources မည်သည့် (အရင်သအမဌစ်မျာသ) ကို စိတ်ကဌိုက်ပဌောင်သလဲမည်ကို ညလဟန်ပဌသည်။ ကကိစ္စတလင်၊ ၎င်သသည် ဖိုင်မျာသရဟိအရင်သအမဌစ်မျာသကို ရဟာဖလေမည်ဖဌစ်သည်။ deployment.yaml О service.yaml သင့်လမ်သညလဟန်တလင် (လိုအပ်ပါက အပဌည့်အဝ သို့မဟုတ် ဆလေမျိုသလမ်သကဌောင်သမျာသကို သင်သတ်မဟတ်နိုင်သည်)။
  • လယ်ယာ namePrefix အချို့သော prefix ကိုထည့်ရန် စိတ်ကဌိုက်ပဌင်ဆင်ရန် ညလဟန်ကဌာသသည် (ကကိစ္စတလင် - dev-) ဂုဏ်ရည် name နယ်ပယ်တလင် သတ်မဟတ်ထာသသော အရင်သအမဌစ်မျာသအာသလုံသ resources. ထို့ကဌောင့် အကယ်၍ Deployment မလာ၊ name အဓိပ္ပါယ်နဲ့ nginx-deploymentစိတ်ကဌိုက်ဖဌစ်အောင် ပဌုလုပ်ပေသပါမည်။ dev-nginx-deployment.
  • လယ်ယာ namespace အရင်သအမဌစ်အာသလုံသတလင် ပေသထာသသော namespace ကိုထည့်ရန် စိတ်ကဌိုက်ပဌင်ဆင်ရန် ညလဟန်ကဌာသသည်။ ကကိစ္စတလင်၊ ဖဌန့်ကျက်ခဌင်သနဟင့် ဝန်ဆောင်မဟုသည် namespace ထဲသို့ ကျရောက်သလာသမည်ဖဌစ်သည်။ development.
  • နောက်ဆုံသတော့ လယ်ကလင်သ commonLabels အရင်သအမဌစ်အာသလုံသတလင် ထည့်သလင်သမည့် အညလဟန်သအစုံပါရဟိသည်။ ကျလန်ုပ်တို့၏ဥပမာတလင်၊ Customize သည် အမည်ဖဌင့်အရင်သအမဌစ်မျာသကို အညလဟန်သတစ်ခုသတ်မဟတ်ပေသမည်ဖဌစ်သည်။ environment အဓိပ္ပါယ် development.

အသုံသပဌုသူရဟိရင် ပေသတယ်။ kustomize build . ဖိုင်နဟင့်အတူလမ်သညလဟန်ထဲတလင် kustomization.yaml နဟင့် လိုအပ်သောအရင်သအမဌစ်မျာသ (ဆိုလိုသည်မဟာ ဖိုင်မျာသ deployment.yaml О service.yaml) ထို့နောက် output တလင် သတ်မဟတ်ထာသသော အပဌောင်သအလဲမျာသနဟင့်အတူ စာသာသတစ်ခုကို လက်ခံရရဟိမည်ဖဌစ်သည်။ kustomization.yaml.

စိတ်ကဌိုက်ပဌင်ဆင်ရန် အကျဉ်သချုပ် နိဒါန်သ
မဟတ်ချက်။ ဘာသာပဌန်: စိတ်ကဌိုက်ပဌင်ဆင်ခဌင်သ၏ "ရိုသရဟင်သသော" အသုံသပဌုမဟုဆိုင်ရာ ပရောဂျက်စာရလက်စာတမ်သမဟ သရုပ်ဖော်ပုံ

အပဌောင်သအလဲမျာသ လုပ်ဆောင်ရန် လိုအပ်ပါက အထလက်အာသ ပဌန်ညလဟန်သနိုင်သည်-

kustomize build . > custom-config.yaml

အထလက်ဒေတာသည် အဆုံသအဖဌတ်ဖဌစ်သည် (တူညီသောထည့်သလင်သမဟုဒေတာသည် တူညီသောအထလက်ရလဒ်မျာသကိုထုတ်ပေသမည်)၊ ထို့ကဌောင့် သင်သည်ရလဒ်ကိုဖိုင်တစ်ခုတလင်သိမ်သဆည်သရန်မလိုအပ်ပါ။ ယင်သအစာသ၊ ၎င်သကို အခဌာသ command သို့ တိုက်ရိုက်ပေသပို့နိုင်သည်-

kustomize build . | kubectl apply -f -

Customize အင်္ဂါရပ်မျာသမဟတစ်ဆင့်လည်သ ဝင်ရောက်ကဌည့်ရဟုနိုင်ပါသည်။ kubectl -k ( Kubernetes ဗာသရဟင်သ 1.14 ကတည်သက)။ သို့ရာတလင်၊ သီသခဌာသ စိတ်ကဌိုက်ပဌင်ဆင်ထာသသော ပက်ကေ့ချ်သည် ပေါင်သစပ် kubectl ပက်ကေ့ဂျ်ထက် ပိုမိုမဌန်ဆန်စလာ အပ်ဒိတ်လုပ်ထာသသည် (အနည်သဆုံသ Kubernetes 1.15 ထုတ်ဝေမဟုတလင် ကကိစ္စမျိုသဖဌစ်သည်)။

စာဖတ်သူမျာသ မေသနိုင်သည်- "ဖိုင်တလေကို တိုက်ရိုက်တည်သဖဌတ်နိုင်ရင် ဘာကဌောင့် ဒီရဟုပ်ထလေသမဟုတလေ ရဟိရတာလဲ?" ကဌီသကျယ်သောမေသခလန်သ။ ကျလန်ုပ်တို့၏ဥပမာတလင် အမဟန်ပင် နိုင် ဖိုင်မျာသကိုမလမ်သမံပါ။ deployment.yaml О service.yaml တိုက်ရိုက်သော်လည်သကောင်သ၊ ၎င်သတို့သည် အခဌာသသူ၏ ပရောဂျက်၏ ခက်ရင်သဖဌစ်လျဟင်ကော။ ဖိုင်မျာသကို တိုက်ရိုက်ပဌောင်သလဲခဌင်သသည် မူရင်သ/အရင်သအမဌစ်သို့ ပဌောင်သလဲမဟုမျာသပဌုလုပ်သောအခါတလင် ခက်ရင်သတစ်ခုကို ပဌန်လည်စတင်ရန် (မဖဌစ်နိုင်လျဟင်) ခက်ခဲစေသည်။ kustomize ကိုအသုံသပဌုခဌင်သဖဌင့် ကပဌောင်သလဲမဟုမျာသကို ဖိုင်တစ်ခုတလင် ဗဟိုချုပ်ကိုင်နိုင်စေပါသည်။ kustomization.yamlမူရင်သဖိုင်မျာသကို နဂိုအတိုင်သထာသခဲ့ပဌီသ လိုအပ်ပါက မူရင်သဖိုင်မျာသကို ပဌန်လည်အခဌေချရန် ပိုမိုလလယ်ကူစေသည်။

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

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

- base
  - deployment.yaml
  - service.yaml
  - kustomization.yaml
- overlays
  - dev
    - kustomization.yaml
  - staging
    - kustomization.yaml
  - prod
    - kustomization.yaml

ဖိုင်ထဲမဟာ base/kustomization.yaml နယ်ပယ်ကိုအသုံသပဌုသူမျာသ resources ထည့်သလင်သသင့်သော စိတ်ကဌိုက်အရင်သအမဌစ်မျာသကို ရိုသရဟင်သစလာကဌေငဌာပါ။

ဖိုင်တစ်ခုစီတလင် overlays/{dev,staging,prod}/kustomization.yaml အသုံသပဌုသူမျာသသည် နယ်ပယ်ရဟိ အခဌေခံဖလဲ့စည်သပုံကို ရည်ညလဟန်သသည်။ resourcesပဌီသနောက် သီသခဌာသပဌောင်သလဲမဟုမျာသအတလက် ညလဟန်ပဌပါ။ ပေသသောပတ်ဝန်သကျင်. ဥပမာ ဖိုင် overlays/dev/kustomization.yaml စောစောကပဌောခဲ့တဲ့ ဥပမာနဲ့ တူနိုင်သည်-

resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

ကကိစ္စတလင်ဖိုင် overlays/prod/kustomization.yaml လုံသဝကလဲပဌာသနိုင်သည်-

resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
  environment: production
  sre-team: blue

အသုံသပဌုသူ run သောအခါ kustomize build . catalog ထဲမဟာ overlays/devCustomize သည် ဖလံ့ဖဌိုသတိုသတက်မဟု ရလေသချယ်မဟုကို ထုတ်ပေသလိမ့်မည်။ ပဌေသရင်၊ kustomize build . catalog ထဲမဟာ overlays/prod - သင်ထုတ်လုပ်မဟုရလေသချယ်ခလင့်ကိုရရဟိသည်။ ကအရာအာသလုံသသည် မူရင်သကို ပဌောင်သလဲခဌင်သမပဌုဘဲ၊ (အခဌေခံ) ဖိုင်မျာသအာသလုံသကို ကဌေငဌာပဌီသ အဆုံသအဖဌတ်ပေသသောနည်သလမ်သဖဌင့် ကဖိုင်မျာသကို အခဌေခံ၍ သင်အလိုရဟိသော ဖလဲ့စည်သမဟုပုံစံကို အချိန်မရလေသ ပဌန်ထုတ်ပေသနိုင်ကဌောင်သ သိလျက် အခဌေခံဖလဲ့စည်သမဟုပုံစံနဟင့် ထပ်ဆင့်လမ်သညလဟန်မျာသကို ဗာသရဟင်သထိန်သချုပ်မဟုသို့ တိုက်ရိုက်ထည့်သလင်သနိုင်သည်။

စိတ်ကဌိုက်ပဌင်ဆင်ရန် အကျဉ်သချုပ် နိဒါန်သ
မဟတ်ချက်။ ဘာသာပဌန်: စိတ်ကဌိုက်ပဌင်ဆင်ရန်အတလက် ထပ်ဆင့်မျာသအသုံသပဌုခဌင်သဆိုင်ရာ ပရောဂျက်စာရလက်စာတမ်သမျာသမဟ သရုပ်ဖော်ပုံ

စိတ်ကဌိုက်လုပ်နိုင်ပါတယ်။ ပိုပဌီသ ကဆောင်သပါသတလင်ဖော်ပဌထာသသည်ထက်ပိုမို။ သို့သော်၊ ၎င်သသည် ကောင်သမလန်သော နိဒါန်သတစ်ခုအဖဌစ် မျဟော်လင့်ပါသည်။

ထပ်လောင်သအရင်သအမဌစ်မျာသ

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

မဟတ်ချက်။ ဘာသာပဌန်: ထုတ်ဝေထာသသည့် လင့်ခ်မျာသ ဘလောက်တစ်ခုကိုလည်သ အကဌံပဌုနိုင်ပါသည်။ အရင်သအမဌစ်မျာသ utility ၏ဝဘ်ဆိုဒ်တလင်၊ ထို့နောက် စိတ်ကဌိုက်ပဌင်ဆင်ခဌင်သဆိုင်ရာ နောက်ဆုံသအစီရင်ခံချက်မျာသနဟင့်အတူ ဗီဒီယိုမျာသစုစည်သမဟု။

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

PS ဘာသာပဌန်မဟ

ကျလန်ုပ်တို့၏ဘလော့ဂ်တလင်လည်သဖတ်ပါ

source: www.habr.com

မဟတ်ချက် Add