လွန်ခဲ့သော တစ်နှစ်ခွဲခန့်၊ မတ်လ 5 ရက်၊ 2018 တွင် Google သည် ၎င်း၏ CI/CD အတွက် ၎င်း၏ Open Source ပရောဂျက်၏ ပထမဆုံး အယ်လ်ဖာဗားရှင်းကို ထုတ်ပြန်ခဲ့သည်။
NB: စကားမစပ်၊ ငါတို့က Skaffold အကြောင်း အတိုချုပ်ပြောပြီးပြီ။
သီအိုရီ။ ရည်ရွယ်ချက်နှင့် စွမ်းဆောင်ရည်
ထို့ကြောင့် ယေဘူယျအားဖြင့် ပြောရလျှင် Skaffold သည် CI/CD စက်ဝန်း (တည်ဆောက်ခြင်း၊ တွန်းအားပေးခြင်း၊ အသုံးချခြင်း အဆင့်များတွင်)၊ ဆော့ဖ်ဝဲရေးသားသူ၏ အကြံပြုချက်အား ပံ့ပိုးပေးသည့် CI/CD စက်ဝန်း၏ ပြဿနာကို ဖြေရှင်းပေးပါသည်။ Kubernetes အစုအဝေးတွင် လုပ်ဆောင်နေသည့် မွမ်းမံထားသော အပလီကေးရှင်းပုံစံဖြင့် နောက်ဆက်တွဲ ကုဒ်ပြောင်းလဲမှုများ၏ ရလဒ်ကို လျင်မြန်စွာ လက်ခံနိုင်မှု။ Skaffold သည် လွှတ်တင်ရန်အတွက် သက်ဆိုင်ရာ ပိုက်လိုင်းများကို ဖော်ပြရန် ကူညီပေးသည့် ကွဲပြားခြားနားသော ဆားကစ်များ (dev၊ stage၊ production...) တွင် အလုပ်လုပ်နိုင်သည်။
Skaffold ၏ အရင်းအမြစ်ကုဒ်ကို Go တွင် ရေးသားထားသည်။
ပင်မလုပ်ဆောင်ချက်များနှင့်အင်္ဂါရပ်များကိုကြည့်ကြပါစို့။ ပထမတွင် အောက်ပါတို့ ပါဝင်သည်-
- Skaffold သည် CI/CD ပိုက်လိုင်းများ ဖန်တီးရန်အတွက် ကိရိယာများကို ပံ့ပိုးပေးပါသည်။
- နောက်ခံရှိ အရင်းအမြစ်ကုဒ်ရှိ အပြောင်းအလဲများကို စောင့်ကြည့်ရန်နှင့် ကွန်တိန်နာပုံများတွင် ကုဒ်များ စုစည်းခြင်း၏ အလိုအလျောက် လုပ်ငန်းစဉ်ကို လုပ်ဆောင်ရန်၊ Docker Registry တွင် ဤပုံများကို ထုတ်ဝေပြီး Kubernetes အစုအဝေးသို့ ဖြန့်ကျက်အသုံးပြုခွင့်ပေးသည်။
- သိုလှောင်ခန်းရှိ ဖိုင်များကို ကွန်တိန်နာအတွင်းရှိ အလုပ်လုပ်သော လမ်းညွှန်နှင့် စင့်ခ်လုပ်သည်။
- container-structure-test ကို အသုံးပြု၍ အလိုအလျောက် စမ်းသပ်သည်။
- ဆိပ်ကမ်းများကို ထပ်ဆင့်ပို့သည်။
- ကွန်တိန်နာတစ်ခုအတွင်း လုပ်ဆောင်နေသည့် အပလီကေးရှင်းတစ်ခု၏ မှတ်တမ်းများကို ဖတ်သည်။
- Java၊ Node.js၊ Python၊ Go ဖြင့် ရေးသားထားသော အမှားရှာအပလီကေးရှင်းများတွင် ကူညီပေးသည်။
ယခု features တွေအကြောင်း:
- Skaffold ကိုယ်တိုင်တွင် အစုလိုက်အပြုံလိုက် အစိတ်အပိုင်းများ မရှိပါ။. ဆိုလိုသည်မှာ၊ ဤ utility ကိုအသုံးပြုရန် Kubernetes ကို နောက်ထပ် configure လုပ်ရန် မလိုအပ်ပါ။
- သင့်လျှောက်လွှာအတွက် မတူညီသော ပိုက်လိုင်းများ. သင်ဖန်တီးနေစဉ်အတွင်း ဒေသတွင်း Minikube သို့ ကုဒ်ကို ထုတ်ပြပြီးနောက် အဆင့် သို့မဟုတ် ထုတ်လုပ်ရန် လိုအပ်ပါသလား။ ဒီရည်ရွယ်ချက်တွေရှိတယ်။
ကိုယ်ရေးအကျဉ်း အပလီကေးရှင်းတစ်ခုအတွက် မတူညီသော ပိုက်လိုင်းများကို ဖော်ပြခွင့်ပြုသည့် အသုံးပြုသူ ဖွဲ့စည်းမှုပုံစံများ၊ ပတ်၀န်းကျင် ပြောင်းလဲမှုများနှင့် အလံများ။ - CLI. YAML ရှိ ကွန်ဆိုးလ် အသုံးဝင်မှုနှင့် ဖွဲ့စည်းမှုပုံစံများသာ။ အင်တာနက်ပေါ်တွင် ဖန်တီးရန် ကြိုးပမ်းမှုများကို ရည်ညွှန်းချက်များကို သင်ရှာဖွေနိုင်သည်။
စမ်းသပ် GUI သို့သော်၊ ယခုအချိန်တွင် တစ်စုံတစ်ယောက်သည် သူ့ကို လိုအပ်နေသည်ဟု ဆိုလိုသော်လည်း အမှန်တကယ် မဟုတ်ပါ။ - Modularity. Skaffold သည် သီးသန့်ရိတ်သိမ်းသူမဟုတ်သော်လည်း သီးခြားလုပ်ဆောင်စရာများအတွက် တစ်ဦးချင်း modules သို့မဟုတ် ရှိပြီးသားဖြေရှင်းချက်များကို အသုံးပြုရန် ကြိုးစားသည်။
နောက်ဆုံးပုံဥပမာ
- စည်းဝေးပွဲအဆင့်တွင် သင်အသုံးပြုနိုင်သည်-
- docker သည် စက်တွင်း၊ kaniko သို့မဟုတ် Google Cloud Build ကိုသုံး၍ အစုအဝေးတစ်ခုအတွင်း၊
- ဒေသအလိုက် Bazel;
- Jib Maven နှင့် Jib Gradle တို့သည် စက်တွင်း သို့မဟုတ် Google Cloud Build တွင်၊
- စိတ်ကြိုက်တည်ဆောက်မှု scripts များကို စက်တွင်းတွင် လုပ်ဆောင်သည်။ အကယ်၍ သင်သည် နောက်ထပ် (ပြောင်းလွယ်ပြင်လွယ်/အကျွမ်းတဝင်ရှိသော/...) တည်ဆောက်မှုဖြေရှင်းချက်ကို လုပ်ဆောင်ရန် လိုအပ်ပါက၊ ၎င်းကို Skaffold စတင်စေရန် ဇာတ်ညွှန်းတွင် ဖော်ပြထားပါသည်။
စာရွက်စာတမ်းမှဥပမာ ) ၎င်းသည် သင့်အား script ကိုအသုံးပြု၍ ခေါ်ဆိုနိုင်သည့် မည်သည့်စုဆောင်းသူကိုမဆို အသုံးပြုခွင့်ပေးသည်၊
- စမ်းသပ်ဆဲအဆင့်တွင် ဖော်ပြခဲ့ပြီးဖြစ်သည်။
container-structure-test ; - ဖြန့်ကျက်ရန်အတွက် အောက်ပါတို့ကို ပံ့ပိုးပေးထားပါသည်။
- Kubectl;
- ပဲ့စင်;
- စိတ်ကြိုက်လုပ်ပါ။
ယင်းကြောင့် Skaffold သည် ထူးခြားသည်ဟု ခေါ်နိုင်သည်။ CI/CD တည်ဆောက်ရန်အတွက် မူဘောင်. ဤသည်မှာ ၎င်းကိုအသုံးပြုသည့်အခါ လုပ်ဆောင်မှုအသွားအလာ နမူနာတစ်ခု (ပရောဂျက်စာရွက်စာတမ်းမှ)
Skaffold ၏အလုပ်သည် ယေဘူယျအားဖြင့် မည်သို့မြင်သနည်း။
- utility သည် source code directory တွင်ပြောင်းလဲမှုများကိုစောင့်ကြည့်သည်။ ဖိုင်များကို ပြုပြင်မွမ်းမံမှုများ ပြုလုပ်ပါက၊ ၎င်းတို့ကို Kubernetes အစုအဝေးရှိ အပလီကေးရှင်း pod နှင့် ထပ်တူပြုပါသည်။ ဖြစ်နိုင်ရင် ပုံကို ပြန်မထည့်ဘဲနဲ့။ မဟုတ်ပါက ပုံအသစ်တစ်ခုကို စုစည်းထားသည်။
- စုစည်းထားသောပုံအား container-structure-test ဖြင့်စစ်ဆေးပြီး၊ တဂ်လုပ်ပြီး Docker Registry သို့ပေးပို့သည်။
- ၎င်းနောက်၊ ပုံအား အသုံးပြုပြီး - Kubernetes အစုအဝေးတွင် ဖြန့်ကျက်ထားသည်။
- လွှတ်တင်ခြင်းအား စတင်ပါက အမိန့်ကို အသုံးပြုပါ။
skaffold dev
ထို့နောက် ကျွန်ုပ်တို့သည် အပလီကေးရှင်းမှ မှတ်တမ်းများကို လက်ခံရရှိပြီး Skaffold သည် လုပ်ဆောင်ချက်အားလုံးကို တစ်ဖန်ပြန်လုပ်ရန် အပြောင်းအလဲများကို စောင့်နေသည်။
Skaffold လည်ပတ်မှု၏ အဓိကအဆင့်များကို ပုံဥပမာ
လေ့ကျင့်သည်။ Skaffold ကို ကြိုးစားနေပါတယ်။
Skaffold ၏အသုံးပြုမှုကိုသရုပ်ပြရန်၊ ကျွန်ုပ်ထံမှဥပမာတစ်ခုကိုယူပါမည်။
Skaffold ကို ထည့်သွင်းပါ-
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64
chmod +x skaffold
sudo mv skaffold /usr/local/bin
skaffold version
v0.37.1
လိုအပ်သော ဥပမာများဖြင့် Skaffold ၏ သိုလှောင်ခန်းကို မွေးထုတ်ကြပါစို့။
git clone https://github.com/GoogleContainerTools/skaffold
cd skaffold/examples/microservices
Go အပလီကေးရှင်းငယ်တစ်ခုစီပါ၀င်သော pod နှစ်ခုပါသော နမူနာတစ်ခုကို ကျွန်တော်ရွေးချယ်ခဲ့သည်။ အပလီကေးရှင်းတစ်ခုသည် တောင်းဆိုချက်ကို ဒုတိယအပလီကေးရှင်းသို့ ပြန်ညွှန်းပေးသည့် ရှေ့တန်း (leeroy-web) ဖြစ်သည်။ ဘယ်လိုပုံစံလဲဆိုတာ ကြည့်ရအောင်။
~/skaffold/examples/microservices # tree
.
├── leeroy-app
│ ├── app.go
│ ├── Dockerfile
│ └── kubernetes
│ └── deployment.yaml
├── leeroy-web
│ ├── Dockerfile
│ ├── kubernetes
│ │ └── deployment.yaml
│ └── web.go
├── README.adoc
└── skaffold.yaml
4 directories, 8 files
leeroy-app နှင့် leeroy-web တွင် ဤကုဒ်ကို စက်တွင်း၌ တည်ဆောက်ရန်အတွက် Go ကုဒ်နှင့် ရိုးရှင်းသော Dockerfiles ပါရှိသည်။
~/skaffold/examples/microservices # cat leeroy-app/Dockerfile
FROM golang:1.12.9-alpine3.10 as builder
COPY app.go .
RUN go build -o /app .
FROM alpine:3.10
CMD ["./app"]
COPY --from=builder /app .
အပလီကေးရှင်းကုဒ်ကို ငါမပေးဘူး - အဲဒါကို သိဖို့ လုံလောက်တယ်။ leeroy-web
တောင်းဆိုမှုများကို လက်ခံပြီး ၎င်းတို့ထံသို့ proxy ပေးသည်။ leeroy-app
. ထိုကြောင့် ဖိုမ၌ Deployment.yaml
ဝန်ဆောင်မှုအတွက်သာ ရှိပါသည်။ app
(အတွင်းပိုင်းလမ်းကြောင်းများအတွက်) ။ Pod ဆိပ်ကမ်း web
အပလီကေးရှင်းသို့ အမြန်ဝင်ရောက်နိုင်ရန် ကျွန်ုပ်တို့သည် ၎င်းကို ကျွန်ုပ်တို့ထံ ပေးပို့ပါမည်။
ဒါဟာတူ skaffold.yaml
:
~/skaffold/examples/microservices # cat skaffold.yaml
apiVersion: skaffold/v1beta13
kind: Config
build:
artifacts:
- image: leeroy-web
context: ./leeroy-web/
- image: leeroy-app
context: ./leeroy-app/
deploy:
kubectl:
manifests:
- ./leeroy-web/kubernetes/*
- ./leeroy-app/kubernetes/*
portForward:
- resourceType: deployment
resourceName: leeroy-web
port: 8080
localPort: 9000
အထက်ဖော်ပြပါ အဆင့်အားလုံးကို ဤနေရာတွင် ဖော်ပြထားပါသည်။ ဤ config အပြင်၊ ကမ္ဘာလုံးဆိုင်ရာဆက်တင်များပါရှိသောဖိုင်တစ်ခုလည်းရှိသည် - ~/.skaffold/config
. ၎င်းကို ကိုယ်တိုင် သို့မဟုတ် CLI မှတစ်ဆင့် တည်းဖြတ်နိုင်သည် - ဥပမာ၊ ဤကဲ့သို့သော
skaffold config set --global local-cluster true
ဤ command သည် global variable ကို သတ်မှတ်ပေးလိမ့်မည်။ local-cluster
အဓိပ္ပါယ်သို့ true
ထို့နောက်တွင် Skaffold သည် ပုံများကို အဝေးထိန်း မှတ်ပုံတင်သို့ တွန်းပို့ရန် ကြိုးစားမည်မဟုတ်ပါ။ အကယ်၍ သင်သည် ဒေသအလိုက် ဖွံ့ဖြိုးတိုးတက်နေပါက၊ သင်သည် စက်တွင်း၌ ရုပ်ပုံများကို တည်ဆောက်ရန် ဤအမိန့်ကို အသုံးပြုနိုင်သည်။
နောက်သို့ skaffold.yaml
:
- စင်ပေါ်မှာ
build
ပုံကို ပြည်တွင်းတွင် စုဆောင်းသိမ်းဆည်းရန် လိုအပ်သည်ဟု ကျွန်ုပ်တို့ သတ်မှတ်ပါသည်။ ပထမဦးဆုံးအကြိမ် build run ပြီးနောက်၊ အောက်ပါတို့ကိုတွေ့ရပါမည်။// т.к. Minikube создает кластер в отдельной виртуальной машине, // придется проникнуть внутрь, чтобы найти образы # minikube ssh $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE leeroy-app 7d55a50803590b2ff62e47e6f240723451f3ef6f8c89aeb83b34e661aa287d2e 7d55a5080359 4 hours ago 13MB leeroy-app v0.37.1-171-g0270a0c-dirty 7d55a5080359 4 hours ago 13MB leeroy-web 5063bfb29d984db1ff70661f17d6efcc5537f2bbe6aa6907004ad1ab38879681 5063bfb29d98 5 hours ago 13.1MB leeroy-web v0.37.1-171-g0270a0c-dirty 5063bfb29d98 5 hours ago 13.1MB
သင်မြင်သည့်အတိုင်း၊ Skaffold သည် ပုံများကို သူ့ကိုယ်သူ တဂ်လုပ်ထားသည်။ စကားမစပ်၊ တဂ်လုပ်ခြင်းမူဝါဒများစွာကို ပံ့ပိုးထားသည်။
- ၎င်းကို config တွင်ထပ်မံဖော်ပြထားသည်။
context: ./leeroy-app/
, i.e. ပုံအား စုဆောင်းထားသည့် အကြောင်းအရာကို သတ်မှတ်သည်။ - ဖြန့်ကျက်မှုအဆင့်တွင်၊ ကျွန်ုပ်တို့သည် လိုအပ်သောဖော်ပြချက်များအတွက် kubectl နှင့် မျက်နှာဖုံးတစ်ခုကို အသုံးပြုမည်ဟု ဆုံးဖြတ်ထားသည်။
-
PortForward
: ကျွန်ုပ်တို့အသုံးပြုသော ports များကို forward လုပ်ပုံနှင့် ဆင်တူသည်။kubectl port-forward
ဤအမိန့်ကိုခေါ်ဆိုရန် Skaffold အား ကျွန်ုပ်တို့ လမ်းညွှန်ချက်ပေးပါသည်။ ဤကိစ္စတွင်၊ ဒေသဆိုင်ရာ port 9000 ကို Deployment တွင် အမည်ဖြင့် 8080 သို့ ထပ်ဆင့်ပို့သည်။leeroy-web
.
လွှင့်တင်ရန် အချိန်တန်ပြီ။ skaffold dev
− အဖွဲ့သည် လက်ရှိ “တုံ့ပြန်ချက်ကွင်းဆက်” ကို ဖန်တီးမည်၊ ဆိုလိုသည်မှာ၊ ၎င်းသည် အရာအားလုံးကို စုဆောင်းပြီး အစုအဝေးသို့ ဖြန့်ကျက်ပေးရုံသာမက၊ လက်ရှိတွင် အကွက်များ၏ အခြေအနေအကြောင်းကိုလည်း ပြောပြပေးမည်ဖြစ်ပြီး၊ အပြောင်းအလဲများကို စောင့်ကြည့်ကာ pods များ၏ အခြေအနေကိုလည်း အပ်ဒိတ်လုပ်မည်ဖြစ်သည်။
ဤသည်မှာ လွှတ်တင်ခြင်းရလဒ်ဖြစ်သည်။ skaffold dev --port-forward
ပြန်လည်စုစည်းသောအခါ-
ပထမဦးစွာ၊ ကက်ရှ်ကိုအသုံးပြုသည်ကိုသင်တွေ့မြင်နိုင်သည်။ ထို့နောက် အပလီကေးရှင်းကို စုစည်းပြီး ဖြန့်ကျက်ပြီး ဆိပ်ကမ်းများကို ထပ်ဆင့်ပို့သည်။ သတ်မှတ်ကတည်းက --port-forward
၊ Skaffold မှ ဆိပ်ကမ်းကို ထပ်ဆင့်ပို့သည်။ web
, ဒါပေမယ့်ဒီမှာမေးခဲ့သည်အဖြစ် app
သူ့ကိုယ်ပိုင်ဆုံးဖြတ်ချက်ဖြင့် ပစ်ချခဲ့သည် (အနီးစပ်ဆုံး အခမဲ့တစ်ခုကို ရွေးပါ)။ ၎င်းပြီးနောက်၊ ကျွန်ုပ်တို့သည် အပလီကေးရှင်းများမှ ပထမဆုံးမှတ်တမ်းများကို လက်ခံရရှိပါသည်။
အလုပ်ဖြစ်မဖြစ် စစ်ဆေးကြည့်ရအောင်။
~/skaffold/examples/microservices # kubectl get po
NAME READY STATUS RESTARTS AGE
leeroy-app-6998dfcc95-2nxvf 1/1 Running 0 103s
leeroy-web-69f7d47c9d-5ff77 1/1 Running 0 103s
~/skaffold/examples/microservices # curl localhost:9000
leeroooooy app!!!
ဖိုင်ကိုမွမ်းမံခြင်း။ leeroy-app/app.go
- စက္ကန့်အနည်းငယ်ကြာသည်... နှင့်:
~/skaffold/examples/microservices # kubectl get po
NAME READY STATUS RESTARTS AGE
leeroy-app-ffd79d986-l6nwp 1/1 Running 0 11s
leeroy-web-69f7d47c9d-5ff77 1/1 Running 0 4m59s
~/skaffold/examples/microservices # curl localhost:9000
leeroooooy Habr!!!
တစ်ချိန်တည်းမှာပင်၊ Skaffold ကိုယ်တိုင်က အချက်တစ်ချက်မှလွဲ၍ ယခင်ကဲ့သို့ တူညီသောအရာကို ကွန်ဆိုးလ်တွင် ပြသခဲ့သည်၊ leeroy-app
တစ်ကြိမ်တည်းတော့ မဟုတ်ပါဘူး။
ပိုလေ့ကျင့်ပါ။
ပရောဂျက်အသစ်တစ်ခုဖန်တီးသောအခါတွင်၊ Skaffold အတွက် configs များကို command ကိုအသုံးပြု၍ bootstrap လုပ်နိုင်သည်ကိုလည်းဖော်ပြရကျိုးနပ်သည်။ init
အလွန်အဆင်ပြေသော၊ ထို့အပြင်၊ သင်သည် configs အများအပြားကိုရေးနိုင်သည်- default config တွင်ဖွံ့ဖြိုးတိုးတက်မှုကိုလုပ်ဆောင်ပါ၊ ထို့နောက် command ဖြင့်အဆင့်သို့ထုတ်ပါ။ run
(လုပ်ငန်းစဉ်အတိုင်းပါပဲ။ dev
အပြောင်းအလဲများကို စောင့်ကြည့်ရုံမျှမက) မတူညီသော config ကိုအသုံးပြုပါ။
katacoda မှာရှိတယ်။
Skaffold အတွက် ဖြစ်နိုင်ချေရှိသော အသုံးပြုမှုကိစ္စတစ်ခုမှာ အဝေးထိန်းအစုအဝေးတစ်ခုပေါ်တွင် ဖွံ့ဖြိုးတိုးတက်မှုကို လုပ်ဆောင်ရန်ဖြစ်သည်။ Minikube သည် ၎င်းတို့၏ကိုယ်ပိုင် hardware တွင်အသုံးပြုရန်အဆင်ပြေသည်မဟုတ်ပါ၊ ထို့နောက်အပလီကေးရှင်းကိုထုတ်ပြီးလုံလောက်စွာလုပ်ဆောင်ရန်မျှော်လင့်နေသည်... ဤကိစ္စတွင်၊ Skaffold သည်ပြဿနာကိုကောင်းစွာဖြေရှင်းနိုင်သည်၊ ဥပမာအားဖြင့် Reddit အင်ဂျင်နီယာများကကျွန်ုပ်တို့ရှိသကဲ့သို့အတည်ပြုနိုင်သည်။ ဆွေးနွေးထားပြီးသား
နှင့်
ကောက်ချက်
Skaffold သည် Kubernetes သို့ အက်ပ်လီကေးရှင်းများ ဖြန့်ကျက်ခြင်း ပါ၀င်သော ပိုက်လိုင်းများ တည်ဆောက်ခြင်းအတွက် အဆင်ပြေသော ကိရိယာတစ်ခုဖြစ်ပြီး ဖွံ့ဖြိုးတိုးတက်မှု လိုအပ်ချက်များကို အဓိက အာရုံစိုက်ထားသည်။ developer ၏အခြေခံလိုအပ်ချက်များကိုထည့်သွင်းစဉ်းစားသည့် "တို" ပိုက်လိုင်းကိုဖန်တီးရန်အတော်လေးလွယ်ကူစေသည်၊ သို့သော်အလိုရှိပါက၊ သင်သည်ပိုမိုကြီးမားသောလုပ်ငန်းစဉ်များကိုစီစဉ်နိုင်သည်။ CI/CD လုပ်ငန်းစဉ်များတွင် Skaffold ကိုအသုံးပြုခြင်း၏ ရှင်းလင်းသောဥပမာများထဲမှတစ်ခုဖြစ်သည်။
Skaffold သည် GitHub တွင် ကြယ်ပေါင်း 8000+ နီးပါးရှိပြီး၊ Google မှ ဖန်တီးထားပြီး အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။
PS
ကျွန်ုပ်တို့၏ဘလော့ဂ်တွင်လည်းဖတ်ပါ
- «
Kubernetes ပေါ်တွင် လုပ်ဆောင်နေသော အပလီကေးရှင်းများ ဖန်တီးသူများ အတွက် ကိရိယာများ "; - «
werf - Kubernetes ရှိ CI/CD အတွက် ကျွန်ုပ်တို့၏ကိရိယာ (ခြုံငုံသုံးသပ်ချက်နှင့် ဗီဒီယိုအစီရင်ခံစာ) "; - «
Garden v0.10.0- သင့်လက်ပ်တော့ Kubernetes မလိုအပ်ပါ။ "; - «
Kubernetes အကြံပြုချက်များနှင့် လှည့်ကွက်များ- ဒေသဖွံ့ဖြိုးရေးနှင့် Telepresence အကြောင်း "။
source: www.habr.com