လုပ်ငန်းဆောင်ရွက်မှုများအတွက် ခေတ်မီချဉ်းကပ်နည်းသည် ဖိစီးနေသော စီးပွားရေးပြဿနာများစွာကို ဖြေရှင်းပေးသည်။ ကွန်တိန်နာများနှင့် တီးမှုတ်သူများသည် မည်သည့်ရှုပ်ထွေးမှု၏ပရောဂျက်များကိုမဆို အရွယ်အစားချဲ့ထွင်ရန်၊ ဗားရှင်းအသစ်များကို ရိုးရှင်းလွယ်ကူအောင်ပြုလုပ်ကာ ၎င်းတို့ကို ပိုမိုယုံကြည်စိတ်ချရစေသော်လည်း တစ်ချိန်တည်းမှာပင် developer များအတွက် အပိုပြဿနာများကို ဖန်တီးပေးပါသည်။ ပထမဦးစွာ ပရိုဂရမ်မာသည် သူ၏ကုဒ်- ဗိသုကာပညာ၊ အရည်အသွေး၊ စွမ်းဆောင်ရည်၊ ကျက်သရေရှိမှု- Kubernetes တွင် မည်သို့အလုပ်လုပ်မည်နှင့် အနည်းငယ်မျှသော အပြောင်းအလဲများကိုပင် ပြုလုပ်ပြီးနောက် ၎င်းကို စမ်းသပ်နည်းနှင့် အမှားရှာနည်းတို့ကို ဂရုစိုက်မည်မဟုတ်ပါ။ ထို့ကြောင့် Kubernetes အတွက် ကိရိယာများကို တက်ကြွစွာ တီထွင်နေပြီး အလွန်ရှေးဟောင်းသော ဆော့ဖ်ဝဲရေးသားသူများပင်လျှင် ပြဿနာများကို ဖြေရှင်းပေးကာ အဓိကအရာအပေါ် အာရုံစိုက်နိုင်စေရန် ကူညီပေးသည်မှာ အလွန်သဘာဝကျပါသည်။
ဤသုံးသပ်ချက်သည် Kubernetes အစုအဝေး၏ pod'ax တွင် အလုပ်လုပ်သော ပရိုဂရမ်မာအတွက် ဘဝပိုမိုလွယ်ကူစေမည့် ကိရိယာအချို့အကြောင်း အတိုချုံးအချက်အလက်ကို ပေးပါသည်။
ရိုးရှင်းသောအကူအညီများ
Kubectl-ဒီဘာဂ်
- အနှစ်သာရ: သင့်ကွန်တိန်နာကို Pod ထဲသို့ထည့်ကာ ၎င်းတွင် ဘာဖြစ်သည်ကိုကြည့်ပါ။.
-
GitHub . - GH စာရင်းဇယားအကျဉ်း- ကြယ် 715 ပွင့်၊ ကတိပြုချက် 54 ခု၊ ပံ့ပိုးသူ 9 ဦး။
- ဘာသာစကား- သွားပါ။
- လိုင်စင်- Apache လိုင်စင် 2.0။
kubectl အတွက် ဤပလပ်အင်သည် သင့်အား လုပ်ငန်းစဉ် namespace ကို အခြားကွန်တိန်နာများနှင့် မျှဝေပေးမည့် စိတ်ဝင်စားဖွယ် pod အတွင်းရှိ အပိုကွန်တိန်နာတစ်ခုကို ဖန်တီးနိုင်စေပါသည်။ ၎င်းတွင် သင်သည် pod ၏လုပ်ဆောင်ချက်ကို အမှားရှာနိုင်သည်- ကွန်ရက်ကိုစစ်ဆေးပါ၊ ကွန်ရက်အသွားအလာကို နားထောင်ပါ၊ စိတ်ဝင်စားသည့်လုပ်ငန်းစဉ်ကို ခြေရာခံပါ စသည်ဖြင့်။
လည်ပတ်ခြင်းဖြင့် လုပ်ငန်းစဉ်ကွန်တိန်နာသို့လည်း ပြောင်းနိုင်သည်။ chroot /proc/PID/root
- manifest တွင်သတ်မှတ်ထားသည့်ကွန်တိန်နာတွင် root shell ကိုသင်လိုအပ်သောအခါ၎င်းသည်အလွန်အဆင်ပြေနိုင်သည်။ securityContext.runAs
.
ကိရိယာသည် ရိုးရှင်းပြီး ထိရောက်သောကြောင့် developerတိုင်းအတွက် အသုံးဝင်နိုင်သည်။ အဲဒီအကြောင်းကို ကျွန်တော်တို့ ရေးထားတယ်။
ကြေးနန်း
- အနှစ်သာရ: အက်ပ်ကို သင့်ကွန်ပျူတာသို့ လွှဲပြောင်းပါ။ ဒေသအလိုက် တီထွင်ပြီး အမှားရှာပါ။.
-
ဝက်ဘ်ဆိုက် ;GitHub . - GH ကိန်းဂဏန်းအကျဉ်းချုပ်- ကြယ်ပေါင်း 2131 ပွင့်၊ 2712 commits၊ ပံ့ပိုးသူ 33 ခု။
- ဘာသာစကား- Python။
- လိုင်စင်- Apache လိုင်စင် 2.0။
ဤ snap-in ၏စိတ်ကူးမှာ ပြည်တွင်းအသုံးပြုသူကွန်ပြူတာတွင် အပလီကေးရှင်းဖြင့် ကွန်တိန်နာတစ်လုံးကို စတင်ရန်နှင့် အစုအဝေးမှ ၎င်းသို့ အပြန်တွင် လမ်းကြောင်းအားလုံးကို proxy ပြုလုပ်ရန်ဖြစ်သည်။ ဤနည်းလမ်းသည် သင့်စိတ်ကြိုက် IDE တွင် ဖိုင်များကို တည်းဖြတ်ရုံဖြင့် ပြည်တွင်းတွင် ဖွံ့ဖြိုးတိုးတက်အောင် လုပ်ဆောင်နိုင်စေသည်- ရလဒ်များကို ချက်ချင်းရရှိမည်ဖြစ်သည်။
စက်တွင်းအသုံးပြုခြင်း၏ အားသာချက်များမှာ တည်းဖြတ်မှုများနှင့် လက်ငင်းရလဒ်များကို အဆင်ပြေစေခြင်း၊ အပလီကေးရှင်းကို ပုံမှန်နည်းလမ်းဖြင့် အမှားရှာပြင်ဆင်နိုင်ခြင်းတို့ဖြစ်သည်။ အားနည်းချက်မှာ ၎င်းသည် အလွန်မြင့်မားသော RPS နှင့် အသွားအလာရှိသော အက်ပလီကေးရှင်းတစ်ခုနှင့် လုပ်ဆောင်သည့်အခါ အထူးသဖြင့် သိသာထင်ရှားသော ချိတ်ဆက်မှုအမြန်နှုန်းကို တောင်းဆိုနေခြင်းပင်ဖြစ်သည်။ ထို့အပြင်၊ Telepresence သည် Windows တွင် volume mount များနှင့် ပြဿနာများရှိနေသည်၊ ၎င်းသည် ဤ OS ကိုအသုံးပြုလေ့ရှိသော developer များအတွက် အဆုံးအဖြတ်ပေးနိုင်သောကန့်သတ်ချက်တစ်ခုဖြစ်သည်။
ကျွန်ုပ်တို့သည် Telepresence အသုံးပြုခြင်းအတွေ့အကြုံကို မျှဝေပြီးဖြစ်သည်။
Ksync
- အနှစ်သာရ: အစုအဝေးရှိ ကွန်တိန်နာနှင့် ကုဒ်ကို ချက်ခြင်း တစ်ပြိုင်နက် နီးပါးတူအောင်ပြုလုပ်ခြင်း။.
-
GitHub . - GH စာရင်းဇယားအကျဉ်း- ကြယ် 555 ပွင့်၊ ကတိပြုချက် 362 ခု၊ ပံ့ပိုးသူ 11 ဦး။
- ဘာသာစကား- သွားပါ။
- လိုင်စင်- Apache လိုင်စင် 2.0။
utility သည် သင့်အား local directory ၏ contents များကို cluster အတွင်းရှိ container ၏ directory နှင့် synchronize လုပ်ခွင့်ပေးသည်။ ထိုကဲ့သို့သောကိရိယာသည် scripting programming languages မှ developer များအတွက် ပြီးပြည့်စုံသည်၊ အဓိကပြဿနာမှာ run container တစ်ခုသို့ code ပေးပို့ခြင်းဖြစ်ပါသည်။ Ksync သည် ဤခေါင်းကိုက်ခြင်းကို သက်သာစေရန် ဒီဇိုင်းထုတ်ထားသည်။
command ဖြင့် တစ်ကြိမ် စတင်သောအခါ ksync init
DaemonSet ကို ရွေးချယ်ထားသော container ၏ ဖိုင်စနစ်အခြေအနေကို စောင့်ကြည့်ရန် အသုံးပြုသည့် အစုအဝေးတွင် ဖန်တီးထားသည်။ ၎င်း၏ပြည်တွင်းကွန်ပြူတာတွင် developer သည် command ကိုလုပ်ဆောင်သည်။ ksync watch
ဖွဲ့စည်းမှုပုံစံများနှင့် လုပ်ဆောင်ချက်များကို စောင့်ကြည့်ပေးသော၊
ကျန်တာအားလုံးက ksync က ဘာနဲ့ synchronize လုပ်ရမလဲဆိုတာ ညွှန်ကြားဖို့ပါပဲ။ ဥပမာအားဖြင့်၊ ဤအမိန့်တော်သည်
ksync create --name=myproject --namespace=test --selector=app=backend --container=php --reload=false /home/user/myproject/ /var/www/myproject/
... အမည်ရှိသော စောင့်ကြည့်သူကို ဖန်တီးပါမည်။ myproject
အညွှန်းတစ်ခုပါသော pod တစ်ခုကို ရှာဖွေမည်ဖြစ်သည်။ app=backend
local directory ကို synchronize လုပ်ကြည့်ပါ။ /home/user/myproject/
ကတ်တလောက်နှင့် /var/www/myproject/
ကွန်တိန်နာမှာ ခေါ်တယ်။ php
.
ကျွန်ုပ်တို့၏အတွေ့အကြုံမှ ksync ဆိုင်ရာ ပြဿနာများနှင့် မှတ်စုများ-
- Kubernetes အစုအဝေးများပေါ်တွင် အသုံးပြုရပါမည်။
overlay2
Docker အတွက် storage driver အဖြစ်။ utility သည် အခြားသူများနှင့် အလုပ်မဖြစ်ပါ။ - Windows ကို client OS အဖြစ်အသုံးပြုသောအခါ၊ ဖိုင်စနစ်ကြည့်ရှုသူသည် မှန်ကန်စွာအလုပ်လုပ်မည်မဟုတ်ပါ။ အစုအဝေးဖိုင်များနှင့် လမ်းညွှန်အများအပြားဖြင့် ကြီးမားသောလမ်းညွှန်ချက်များနှင့် လုပ်ဆောင်သည့်အခါ ဤချွတ်ယွင်းချက်ကို သတိပြုမိပါသည်။ ငါတို့ဖန်တီးတယ်။
သက်ဆိုင်ရာပြဿနာ ထပ်တူပြုခြင်းပရောဂျက်တွင်၊ သို့သော် (ဇူလိုင်လအစကတည်းက) တိုးတက်မှုမရှိသေးပါ။ - ဖိုင်ကိုသုံးပါ။
ထပ်တူပြုရန် မလိုအပ်သော လမ်းကြောင်းများ သို့မဟုတ် ဖိုင်ပုံစံများကို သတ်မှတ်ရန် (ဥပမာ၊ လမ်းညွှန်များ.stignore
app/cache
и.git
). - မူရင်းအားဖြင့်၊ ဖိုင်များပြောင်းလဲသည့်အခါတိုင်း ksync သည် ကွန်တိန်နာကို ပြန်လည်စတင်မည်ဖြစ်သည်။ Node.js အတွက် ဒါက အဆင်ပြေပေမယ့် PHP အတွက်ကတော့ လုံးဝမလိုအပ်ပါဘူး။ opcache ကိုပိတ်ပြီး အလံကိုသုံးတာက ပိုကောင်းပါတယ်။
--reload=false
. - ဖွဲ့စည်းမှုပုံစံကို အမြဲပြုပြင်နိုင်သည်။
$HOME/.ksync/ksync.yaml
.
စကွပ်ရှ်
- အနှစ်သာရ: အစုအဝေးအတွင်း တိုက်ရိုက် အမှားရှာပြင်ခြင်း လုပ်ငန်းစဉ်များ.
-
GitHub . - GH ကိန်းဂဏန်းအကျဉ်းချုပ်- ကြယ် 1154 ပွင့်၊ 279 commits၊ ပံ့ပိုးသူ 23 ယောက်။
- ဘာသာစကား- သွားပါ။
- လိုင်စင်- Apache လိုင်စင် 2.0။
ဤကိရိယာသည် pods များတွင် တိုက်ရိုက် အမှားရှာပြင်ခြင်း လုပ်ငန်းစဉ်များအတွက် ဒီဇိုင်းထုတ်ထားသည်။ utility သည် ရိုးရှင်းပြီး အပြန်အလှန်အကျိုးသက်ရောက်မှုဖြင့် သင်အလိုရှိသော debugger ကိုရွေးချယ်ရန်ခွင့်ပြုသည်။ (အောက်တွင်ကြည့်ပါ) သင်ဝင်ရောက်စွက်ဖက်ရန်လိုအပ်သည့်လုပ်ငန်းစဉ်တွင် namespace + pod ၊ လက်ရှိပံ့ပိုးထားသည်-
- delve - for Go အပလီကေးရှင်းများ၊
- GDB - ပစ်မှတ်အဝေးထိန်း + ဆိပ်ကမ်းမှတဆင့် ထပ်ဆင့်ပို့ခြင်း၊
- Java အပလီကေးရှင်းများကို အမှားရှာပြင်ခြင်းအတွက် JDWP ဆိပ်ကမ်းကို ထပ်ဆင့်ပို့ခြင်း။
IDE ဘက်တွင်၊ ပံ့ပိုးမှုကို VScode တွင်သာ ရနိုင်သည် (အသုံးပြုခြင်း။
လုပ်ငန်းစဉ်များကို အမှားရှာပြင်ရန်၊ Squash သည် အစုအဝေးများပေါ်ရှိ အခွင့်ထူးခံကွန်တိန်နာတစ်ခုကို လုပ်ဆောင်သည်၊ ထို့ကြောင့် သင်သည် စွမ်းရည်များနှင့် သင့်ကိုယ်သင် ဦးစွာရင်းနှီးထားရပါမည်။
ပေါင်းစပ်ဖြေရှင်းချက်
developer များ၏ လိုအပ်ချက်များစွာကို ချက်ချင်းဖြည့်ဆည်းပေးနိုင်ရန် ဒီဇိုင်းထုတ်ထားသော အကြီးစား အမြောက်တပ်သို့ ဆက်သွားကြပါစို့။
NB: ဤစာရင်းတွင်၊ ဟုတ်ပါတယ်၊ ကျွန်ုပ်တို့၏ Open Source utility အတွက် နေရာတစ်ခုရှိပါသည်။
DevSpace
- အနှစ်သာရ: Kubernetes တွင်အလုပ်စတင်လုပ်ကိုင်လိုသူများအတွက်၊ သို့သော်၎င်း၏တောနက်ထဲသို့နက်နဲစွာမလေ့လာလိုသူများအတွက်.
-
GitHub . - GH ကိန်းဂဏန်းအကျဉ်းချုပ်- ကြယ် ၆၃၀၊ ၁၉၁၂ ကတိပြုမှု၊ ပံ့ပိုးကူညီသူ ၁၃ ဦး။
- ဘာသာစကား- သွားပါ။
- လိုင်စင်- Apache လိုင်စင် 2.0။
အဖွဲ့ဖွံ့ဖြိုးတိုးတက်မှုအတွက် Kubernetes ဖြင့် စီမံခန့်ခွဲထားသော အစုအဝေးများကို ပံ့ပိုးပေးသည့် အမည်တူကုမ္ပဏီမှ ဖြေရှင်းချက်တစ်ခု။ အသုံးဝင်မှုအား စီးပွားဖြစ်အစုအဝေးများအတွက် ဖန်တီးထားသော်လည်း အခြားမည်သည့်အရာနှင့်မဆို ကောင်းစွာအလုပ်လုပ်သည်။
command ကို run သောအခါ devspace init
ပရောဂျက်ကတ်တလောက်တွင် သင့်အား (အပြန်အလှန်တုံ့ပြန်မှုဖြင့် ကမ်းလှမ်းလိမ့်မည်)။
- အလုပ်လုပ်သည့် Kubernetes အစုအဝေးကို ရွေးပါ၊
- ရှိပြီးသားကိုသုံးပါ။
Dockerfile
၎င်းကိုအခြေခံ၍ ကွန်တိန်နာတစ်ခုဖန်တီးရန် (သို့မဟုတ် အသစ်တစ်ခုထုတ်လုပ်ရန်)၊ - ကွန်တိန်နာပုံများ စသည်တို့ကို သိမ်းဆည်းရန်အတွက် repository တစ်ခုကို ရွေးချယ်ပါ။
ဤပြင်ဆင်မှုအဆင့်များအားလုံးပြီးနောက်၊ သင်သည် command ကို run ခြင်းဖြင့်ဖွံ့ဖြိုးတိုးတက်မှုကိုစတင်နိုင်သည်။ devspace dev
. ၎င်းသည် ကွန်တိန်နာကို တည်ဆောက်ကာ သိုလှောင်ခန်းသို့ အပ်လုဒ်လုပ်မည်ဖြစ်ပြီး၊ အစုအဝေးသို့ ဖြန့်ကျက်မှုအား ဖြန့်ထုတ်ကာ ကွန်တိန်နာ၏ ဆိပ်ကမ်းကို ထပ်ဆင့်ပို့ကာ ဒေသဆိုင်ရာ လမ်းညွှန်ချက်ဖြင့် ချိန်ကိုက်လုပ်ဆောင်မည်ဖြစ်သည်။
ရွေးချယ်နိုင်သည်၊ သင်သည် terminal ကို ကွန်တိန်နာသို့ ရွှေ့ရန် သတိပေးလိမ့်မည်။ အဘယ်ကြောင့်ဆိုသော် သင်မငြင်းသင့်ပါ၊ အဘယ်ကြောင့်ဆိုသော် အမှန်တကယ်တွင် ကွန်တိန်နာသည် အိပ်စက်ခြင်းအမိန့်ဖြင့် စတင်ကာ လက်တွေ့စမ်းသပ်မှုအတွက် အပလီကေးရှင်းကို ကိုယ်တိုင်စတင်လုပ်ဆောင်ရန် လိုအပ်သောကြောင့်ဖြစ်သည်။
နောက်ဆုံးတော့ အသင်းပေါ့။ devspace deploy
အပလီကေးရှင်းနှင့် ဆက်စပ်အခြေခံအဆောက်အအုံကို အစုအဝေးသို့ လွှင့်တင်ပြီးနောက် အရာအားလုံးသည် တိုက်ခိုက်ရေးမုဒ်တွင် စတင်လုပ်ဆောင်သည်။
ပရောဂျက်ဖွဲ့စည်းပုံအားလုံးကို ဖိုင်တစ်ခုတွင် သိမ်းဆည်းထားသည်။ devspace.yaml
. ဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင်ဆက်တင်များအပြင်၊ စံ Kubernetes သရုပ်ဖော်မှုများနှင့် ဆင်တူသော အခြေခံအဆောက်အအုံဆိုင်ရာ ဖော်ပြချက်ကိုလည်း သင်တွေ့နိုင်သည်၊ အလွန်ရိုးရှင်းပါသည်။
ဗိသုကာပညာနှင့် DevSpace နှင့် လုပ်ဆောင်ခြင်း၏ အဓိကအဆင့်များ
ထို့အပြင်၊ ပရောဂျက်တွင် ကြိုတင်သတ်မှတ်ထားသော အစိတ်အပိုင်း (ဥပမာ MySQL DBMS) သို့မဟုတ် Helm ဇယားကို ထည့်ရန် လွယ်ကူသည်။ တွင်ပိုမိုဖတ်ရှုပါ။
တံကျင်
-
ဝက်ဘ်ဆိုက် ;GitHub . - GH ကိန်းဂဏန်းအကျဉ်းချုပ်- ကြယ် 7423 ပွင့်၊ 4173 commits ၊ ပံ့ပိုးသူ 136 ယောက်။
- ဘာသာစကား- သွားပါ။
- လိုင်စင်- Apache လိုင်စင် 2.0။
Google မှ ဤအသုံးဝင်မှုသည် Kubernetes အစုအဝေးတွင် ကုဒ်တစ်နည်းနည်းဖြင့် လုပ်ဆောင်မည့် developer တစ်ဦး၏ လိုအပ်ချက်အားလုံးကို ကာမိစေရန် တောင်းဆိုထားသည်။ ၎င်းကို စတင်အသုံးပြုခြင်းသည် devspace ကဲ့သို့ လွယ်ကူသည်မဟုတ်ပါ- အပြန်အလှန်တုံ့ပြန်မှု၊ ဘာသာစကားရှာဖွေခြင်းနှင့် အလိုအလျောက်ဖန်တီးမှု မရှိပါ။ Dockerfile
သူတို့က မင်းကို ဒီမှာ ပေးမှာမဟုတ်ဘူး။
သို့သော်၊ ၎င်းသည် သင့်အား မကြောက်ပါက၊ Skaffold က သင့်အား လုပ်ဆောင်ရန် ခွင့်ပြုထားသည်-
- အရင်းအမြစ်ကုဒ်အပြောင်းအလဲများကို ခြေရာခံပါ။
- တပ်ဆင်မှုမလိုအပ်ပါက ၎င်းကို pod container နှင့် ထပ်တူပြုပါ။
- ဘာသာစကားကို အဓိပ္ပာယ်ပြန်ဆိုပါက၊ သို့မဟုတ် ရှေးဟောင်းပစ္စည်းများကို စုစည်းပြီး ကွန်တိန်နာထဲသို့ ထုပ်ပိုးပါက၊ ကုဒ်ဖြင့် ကွန်တိန်နာများကို စုဆောင်းပါ။
- ရလာတဲ့ပုံတွေကိုသုံးပြီး အလိုအလျောက် စစ်တယ်။
container-structure-test . - Docker Registry သို့ ပုံများကို တဂ်ခြင်းနှင့် အပ်လုဒ်လုပ်ခြင်း။
- kubectl၊ Helm သို့မဟုတ် စိတ်ကြိုက်ပြင်ဆင်ခြင်းကို အသုံးပြု၍ အက်ပ်တစ်ခုကို အစုအဝေးတစ်ခုတွင် အသုံးပြုပါ။
- ဆိပ်ကမ်း ထပ်ဆင့်ပို့ခြင်းကို လုပ်ဆောင်ပါ။
- Java၊ Node.js၊ Python ဖြင့် ရေးသားထားသော အမှားရှာအပလီကေးရှင်းများ။
ပုံစံကွဲအမျိုးမျိုးရှိ အလုပ်အသွားအလာကို ဖိုင်တွင် ရှင်းရှင်းလင်းလင်း ဖော်ပြထားပါသည်။ skaffold.yaml
. ပရောဂျက်တစ်ခုအတွက်၊ သင်သည် စုဝေးမှုနှင့် အသုံးချမှုအဆင့်များကို တစ်စိတ်တစ်ပိုင်း သို့မဟုတ် အပြည့်အဝ ပြောင်းလဲနိုင်သည့် ပရိုဖိုင်များစွာကိုလည်း သတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့်၊ ဖွံ့ဖြိုးတိုးတက်မှုအတွက်၊ ဆော့ဖ်ဝဲရေးသားသူအတွက် အဆင်ပြေသည့် အခြေခံပုံတစ်ပုံကို သတ်မှတ်ပါ၊ ဇာတ်ညွှန်းနှင့် ထုတ်လုပ်ခြင်းအတွက် - အနည်းဆုံးတစ်ခု (+ အသုံးပြုမှု securityContext
ကွန်တိန်နာများ သို့မဟုတ် အပလီကေးရှင်းကို အသုံးပြုမည့် အစုအဝေးကို ပြန်လည်သတ်မှတ်ပါ။)
Docker ကွန်တိန်နာများကို စက်တွင်း သို့မဟုတ် အဝေးထိန်းစနစ်ဖြင့် တည်ဆောက်နိုင်သည်။
သီးခြားအားဖြင့်၊ ကွန်တိန်နာစမ်းသပ်ခြင်း၏ဖြစ်နိုင်ခြေကိုသတိပြုသင့်သည်။ ဖော်ပြပြီးသား container-structure-test framework သည် အောက်ပါ အတည်ပြုနည်းလမ်းများကို ပေးဆောင်သည်-
- ထွက်ပေါက်အခြေအနေများကို ခြေရာခံပြီး command ၏ စာသားအထွက်ကို စစ်ဆေးသည့် ကွန်တိန်နာတစ်ခု၏ ဆက်စပ်မှုတွင် ညွှန်ကြားချက်များကို လုပ်ဆောင်ခြင်း။
- ကွန်တိန်နာအတွင်းရှိ ဖိုင်များ၏ ပါဝင်မှုကို စစ်ဆေးခြင်းနှင့် သတ်မှတ်ထားသည့် အရည်အချင်းများနှင့် ကိုက်ညီမှုရှိသည်။
- ပုံမှန်ဖော်ပြချက်များကို အသုံးပြု၍ ဖိုင်အကြောင်းအရာများကို ထိန်းချုပ်ပါ။
- ပုံ မက်တာဒေတာ အတည်ပြုခြင်း (
ENV
,ENTRYPOINT
,VOLUMES
နောက် ... ပြီးတော့။)။ - လိုင်စင်လိုက်ဖက်မှုကို စစ်ဆေးခြင်း။
ကွန်တိန်နာနှင့် ဖိုင်များကို ထပ်တူကျအောင်ပြုလုပ်ခြင်းသည် အကောင်းမွန်ဆုံးနည်းလမ်းဖြင့် လုပ်ဆောင်မည်မဟုတ်ပါ- Skaffold သည် အရင်းအမြစ်များနှင့်အတူ မော်ကွန်းတိုက်တစ်ခုကို ဖန်တီးကာ ၎င်းကို မိတ္တူကူးကာ ကွန်တိန်နာတွင် ထုပ်ပိုးပါ (ကတ္တရာစေးကို ထည့်သွင်းရမည်)။ ထို့ကြောင့်၊ သင်၏အဓိကတာဝန်မှာ ကုဒ်ထပ်တူပြုခြင်းဖြစ်ပါက၊ အထူးပြုဖြေရှင်းချက် (ksync) ကိုရှာဖွေခြင်းသည် ပိုကောင်းပါသည်။
Skaffold လည်ပတ်မှု၏အဓိကအဆင့်များ
ယေဘူယျအားဖြင့်၊ ကိရိယာသည် Kubernetes သရုပ်ဖော်ခြင်းမှ သင့်အား စိတ္တဇပြရန် ခွင့်မပြုဘဲ အပြန်အလှန်အကျိုးသက်ရောက်မှု မရှိသောကြောင့် ကျွမ်းကျင်ရန် ခက်ခဲပုံရသည်။ ဒါပေမယ့် ဒါဟာ သူ့ရဲ့ အားသာချက် ဖြစ်တဲ့ လွတ်လပ်စွာ လှုပ်ရှားဆောင်ရွက်မှု ပိုများတယ်။
ဥယျာဉ်တော်
-
ဝက်ဘ်ဆိုက် ;GitHub . - GH ကိန်းဂဏန်းအကျဉ်းချုပ်- ကြယ် ၁၀၆၃ ပွင့်၊ ၁၉၂၇ ကတိပြုမှု၊ ပံ့ပိုးသူ ၁၇ ဦး။
- ဘာသာစကား- TypeScript (ပရောဂျက်ကို အစိတ်အပိုင်းများစွာအဖြစ် ခွဲထုတ်ရန် စီစဉ်ထားပြီး အချို့မှာ Go တွင်ပါဝင်မည်ဖြစ်ပြီး TypeScript/JavaScript နှင့် Go တို့တွင် အပိုပရိုဂရမ်များဖန်တီးရန်အတွက် SDK တစ်ခုကိုလည်း ပြုလုပ်ရန် စီစဉ်ထားသည်).
- လိုင်စင်- Apache လိုင်စင် 2.0။
Skaffold ကဲ့သို့ပင်၊ Garden သည် K8s အစုအဝေးသို့ အပလီကေးရှင်းကုဒ်ပေးပို့သည့် လုပ်ငန်းစဉ်များကို အလိုအလျောက်လုပ်ဆောင်ရန် ရည်ရွယ်ပါသည်။ ၎င်းကိုလုပ်ဆောင်ရန် YAML ဖိုင်တွင် ပရောဂျက်တည်ဆောက်ပုံကို ပထမဆုံးဖော်ပြရန် လိုအပ်ပြီး command ကို run ပါ။ garden dev
. သူမသည် မှော်ပညာအားလုံးကို လုပ်မည်၊
- ပရောဂျက်၏ အစိတ်အပိုင်းအမျိုးမျိုးဖြင့် ကွန်တိန်နာများကို စုဆောင်းပါ။
- ဖော်ပြပြီးပါက ပေါင်းစပ်ခြင်းနှင့် ယူနစ်စစ်ဆေးမှုများ ပြုလုပ်သည်။
- ပရောဂျက်အစိတ်အပိုင်းအားလုံးကို အစုအဝေးသို့ ထုတ်ပေးသည်။
- အရင်းအမြစ်ကုဒ်ပြောင်းပါက ပိုက်လိုင်းတစ်ခုလုံးကို ပြန်လည်စတင်မည်ဖြစ်သည်။
ဤကိရိယာကိုအသုံးပြုခြင်း၏ အဓိကအာရုံမှာ ဖွံ့ဖြိုးတိုးတက်ရေးအဖွဲ့နှင့် အဝေးထိန်းအစုအဝေးတစ်ခုကို မျှဝေရန်ဖြစ်သည်။ ဤကိစ္စတွင်၊ အဆောက်အဦနှင့် စမ်းသပ်မှုအဆင့်အချို့ကို လုပ်ဆောင်ပြီးပါက၊ Garden သည် သိမ်းဆည်းထားသော ရလဒ်များကို အသုံးပြုနိုင်မည်ဖြစ်သောကြောင့် လုပ်ငန်းစဉ်တစ်ခုလုံးကို သိသာထင်ရှားစွာ အရှိန်မြှင့်ပေးမည်ဖြစ်သည်။
ပရောဂျက် module တစ်ခုသည် ကွန်တိန်နာတစ်ခု၊ Maven ကွန်တိန်နာ၊ Helm ဇယား၊ သရုပ်ဖော်ပုံတစ်ခု ဖြစ်နိုင်သည်။ kubectl apply
သို့မဟုတ် OpenFaaS လုပ်ဆောင်ချက်ကိုပင်။ ထို့အပြင်၊ မည်သည့် module များကိုမဆိုအဝေးမှ Git repository မှဆွဲထုတ်နိုင်သည်။ မော်ဂျူးတစ်ခုသည် ဝန်ဆောင်မှုများ၊ လုပ်ဆောင်စရာများနှင့် စမ်းသပ်မှုများကို သတ်မှတ်နိုင်သည် သို့မဟုတ် မသတ်မှတ်နိုင်ပါ။ ဝန်ဆောင်မှုများနှင့် လုပ်ငန်းဆောင်တာများသည် မှီခိုမှုများရှိနိုင်သည်၊ ထို့ကြောင့် သင်သည် သီးခြားဝန်ဆောင်မှုတစ်ခု၏ ဖြန့်ကျက်မှုအစီအစဥ်ကို ဆုံးဖြတ်နိုင်ပြီး လုပ်ဆောင်စရာများနှင့် စမ်းသပ်မှုများကို စတင်ရန် စုစည်းနိုင်သည်။
Garden သည် သုံးစွဲသူအား လှပသော ဒက်ရှ်ဘုတ်တစ်ခု (လောလောဆယ်တွင်) ပေးဆောင်သည်။
ဥယျာဉ်အတွက် ဘောင်
ဤတူးလ်တွင် hot-reload mode လည်းပါရှိပြီး၊ ၎င်းသည် အစုအဝေးရှိ container နှင့် script အပြောင်းအလဲများကို ရိုးရှင်းစွာ တစ်ပြိုင်တည်းလုပ်ဆောင်ပြီး အပလီကေးရှင်း အမှားရှာပြင်ခြင်းလုပ်ငန်းစဉ်ကို အရှိန်မြှင့်ပေးပါသည်။ ဥယျာဉ်ကောင်းတစ်ခုရှိတယ်။
ကောက်ချက်
ဟုတ်ပါတယ်၊ Kubernetes ရှိ အက်ပ်များကို တီထွင်ခြင်းနှင့် အမှားပြင်ဆင်ခြင်းအတွက် ဤကိရိယာများစာရင်းသည် အကန့်အသတ်မရှိပေ။ သီးခြားဆောင်းပါးမဟုတ်ပါက၊ အနည်းဆုံးဖော်ပြရန် ထိုက်တန်သော နောက်ထပ်အလွန်အသုံးဝင်ပြီး လက်တွေ့ကျသော အသုံးအဆောင်များစွာရှိပါသည်။ သင်အသုံးပြုသည့်အရာ၊ သင်ကြုံတွေ့ခဲ့ရသည့် ပြဿနာများနှင့် ၎င်းတို့ကို သင်မည်ကဲ့သို့ဖြေရှင်းခဲ့သည်ကို ကျွန်ုပ်တို့အား ပြောပြပါ။
PS
ကျွန်ုပ်တို့၏ဘလော့ဂ်တွင်လည်းဖတ်ပါ
- «
werf - Kubernetes ရှိ CI/CD အတွက် ကျွန်ုပ်တို့၏ကိရိယာ (ခြုံငုံသုံးသပ်ချက်နှင့် ဗီဒီယိုအစီရင်ခံစာ) "; - «
Garden v0.10.0- သင့်လက်ပ်တော့ Kubernetes မလိုအပ်ပါ။ "; - «
Kubernetes အကြံပြုချက်များနှင့် လှည့်ကွက်များ- ဒေသဖွံ့ဖြိုးရေးနှင့် Telepresence အကြောင်း "; - «
Kubernetes pods များတွင် အမှားရှာပြင်ခြင်းအတွက် kubectl-debug ပလပ်အင် "။
source: www.habr.com