Kubernetes ဖွံ့ဖြိုးတိုးတက်မှုအတွက် Skaffold ကို ပြန်လည်သုံးသပ်ခြင်း။

Kubernetes ဖွံ့ဖြိုးတိုးတက်မှုအတွက် Skaffold ကို ပြန်လည်သုံးသပ်ခြင်း။

လွန်ခဲ့သော တစ်နှစ်ခွဲခန့်၊ မတ်လ 5 ရက်၊ 2018 တွင် Google သည် ၎င်း၏ CI/CD အတွက် ၎င်း၏ Open Source ပရောဂျက်၏ ပထမဆုံး အယ်လ်ဖာဗားရှင်းကို ထုတ်ပြန်ခဲ့သည်။ တံကျင်ဆော့ဖ်ဝဲရေးသားသူများသည် စီမံခန့်ခွဲခြင်းထက် ဖွံ့ဖြိုးတိုးတက်မှုကို အာရုံစိုက်နိုင်စေရန် "ရိုးရှင်းပြီး ထပ်တလဲလဲလုပ်နိုင်သော Kubernetes ဖွံ့ဖြိုးတိုးတက်မှု" ကို ဖန်တီးရန် ရည်ရွယ်ချက်ဖြစ်သည်။ Skaffold နှင့် ပတ်သက်၍ စိတ်ဝင်စားဖွယ်ကောင်းသည်မှာ အဘယ်နည်း။ ထွက်ပေါ်လာသည့်အတိုင်း၊ ၎င်းသည် developer အတွက် အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်နိုင်ပြီး လည်ပတ်မှုအင်ဂျင်နီယာများပင်ဖြစ်နိုင်စေမည့် ၎င်း၏လက်စွပ်တွင် လှည့်ကွက်အနည်းငယ်ပါရှိသည်။ ပရောဂျက်နှင့် ၎င်း၏စွမ်းဆောင်ရည်များကို ရင်းနှီးရအောင်။

NB: စကားမစပ်၊ ငါတို့က Skaffold အကြောင်း အတိုချုပ်ပြောပြီးပြီ။ developer tools များပြန်လည်သုံးသပ်ခြင်း။၎င်း၏ဘဝများသည် Kubernetes နှင့်ချိတ်ဆက်ထားသည်။

သီအိုရီ။ ရည်ရွယ်ချက်နှင့် စွမ်းဆောင်ရည်

ထို့ကြောင့် ယေဘူယျအားဖြင့် ပြောရလျှင် Skaffold သည် CI/CD စက်ဝန်း (တည်ဆောက်ခြင်း၊ တွန်းအားပေးခြင်း၊ အသုံးချခြင်း အဆင့်များတွင်)၊ ဆော့ဖ်ဝဲရေးသားသူ၏ အကြံပြုချက်အား ပံ့ပိုးပေးသည့် CI/CD စက်ဝန်း၏ ပြဿနာကို ဖြေရှင်းပေးပါသည်။ Kubernetes အစုအဝေးတွင် လုပ်ဆောင်နေသည့် မွမ်းမံထားသော အပလီကေးရှင်းပုံစံဖြင့် နောက်ဆက်တွဲ ကုဒ်ပြောင်းလဲမှုများ၏ ရလဒ်ကို လျင်မြန်စွာ လက်ခံနိုင်မှု။ Skaffold သည် လွှတ်တင်ရန်အတွက် သက်ဆိုင်ရာ ပိုက်လိုင်းများကို ဖော်ပြရန် ကူညီပေးသည့် ကွဲပြားခြားနားသော ဆားကစ်များ (dev၊ stage၊ production...) တွင် အလုပ်လုပ်နိုင်သည်။

Skaffold ၏ အရင်းအမြစ်ကုဒ်ကို Go တွင် ရေးသားထားသည်။ ဖြန့်ဝေသည် အခမဲ့ Apache License 2.0 (GitHub) အောက်တွင်။

ပင်မလုပ်ဆောင်ချက်များနှင့်အင်္ဂါရပ်များကိုကြည့်ကြပါစို့။ ပထမတွင် အောက်ပါတို့ ပါဝင်သည်-

  • 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 တည်ဆောက်ရန်အတွက် မူဘောင်. ဤသည်မှာ ၎င်းကိုအသုံးပြုသည့်အခါ လုပ်ဆောင်မှုအသွားအလာ နမူနာတစ်ခု (ပရောဂျက်စာရွက်စာတမ်းမှ)

Kubernetes ဖွံ့ဖြိုးတိုးတက်မှုအတွက် Skaffold ကို ပြန်လည်သုံးသပ်ခြင်း။

Skaffold ၏အလုပ်သည် ယေဘူယျအားဖြင့် မည်သို့မြင်သနည်း။

  1. utility သည် source code directory တွင်ပြောင်းလဲမှုများကိုစောင့်ကြည့်သည်။ ဖိုင်များကို ပြုပြင်မွမ်းမံမှုများ ပြုလုပ်ပါက၊ ၎င်းတို့ကို Kubernetes အစုအဝေးရှိ အပလီကေးရှင်း pod နှင့် ထပ်တူပြုပါသည်။ ဖြစ်နိုင်ရင် ပုံကို ပြန်မထည့်ဘဲနဲ့။ မဟုတ်ပါက ပုံအသစ်တစ်ခုကို စုစည်းထားသည်။
  2. စုစည်းထားသောပုံအား container-structure-test ဖြင့်စစ်ဆေးပြီး၊ တဂ်လုပ်ပြီး Docker Registry သို့ပေးပို့သည်။
  3. ၎င်းနောက်၊ ပုံအား အသုံးပြုပြီး - Kubernetes အစုအဝေးတွင် ဖြန့်ကျက်ထားသည်။
  4. လွှတ်တင်ခြင်းအား စတင်ပါက အမိန့်ကို အသုံးပြုပါ။ skaffold devထို့နောက် ကျွန်ုပ်တို့သည် အပလီကေးရှင်းမှ မှတ်တမ်းများကို လက်ခံရရှိပြီး Skaffold သည် လုပ်ဆောင်ချက်အားလုံးကို တစ်ဖန်ပြန်လုပ်ရန် အပြောင်းအလဲများကို စောင့်နေသည်။

Kubernetes ဖွံ့ဖြိုးတိုးတက်မှုအတွက် Skaffold ကို ပြန်လည်သုံးသပ်ခြင်း။
Skaffold လည်ပတ်မှု၏ အဓိကအဆင့်များကို ပုံဥပမာ

လေ့ကျင့်သည်။ Skaffold ကို ကြိုးစားနေပါတယ်။

Skaffold ၏အသုံးပြုမှုကိုသရုပ်ပြရန်၊ ကျွန်ုပ်ထံမှဥပမာတစ်ခုကိုယူပါမည်။ GitHub ပရောဂျက်သိုလှောင်မှု... စကားမစပ်, ဟိုမှာ အမျိုးမျိုးသော အသေးစိတ်အချက်အလက်များကို ထည့်သွင်းစဉ်းစားနိုင်သော အခြားဥပမာများစွာကို သင်တွေ့နိုင်သည်။ Minikube တွင် လုပ်ဆောင်ချက်အားလုံးကို ကျွန်ုပ်လုပ်ဆောင်ပါမည်။ တပ်ဆင်ခြင်းသည် ရိုးရှင်းပြီး မိနစ်အနည်းငယ်ကြာမြင့်ပြီး စတင်ရန် kubectl လိုအပ်ပါသည်။

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 ပြန်လည်စုစည်းသောအခါ-

Kubernetes ဖွံ့ဖြိုးတိုးတက်မှုအတွက် Skaffold ကို ပြန်လည်သုံးသပ်ခြင်း။

ပထမဦးစွာ၊ ကက်ရှ်ကိုအသုံးပြုသည်ကိုသင်တွေ့မြင်နိုင်သည်။ ထို့နောက် အပလီကေးရှင်းကို စုစည်းပြီး ဖြန့်ကျက်ပြီး ဆိပ်ကမ်းများကို ထပ်ဆင့်ပို့သည်။ သတ်မှတ်ကတည်းက --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 မှာရှိတယ်။ ခေါင်းဆောင်မှု ဥပမာတစ်ခုနဲ့ဆို ပိုလွယ်တယ်။ သို့သော် Kubernetes၊ အက်ပလီကေးရှင်းနှင့် Skaffold တို့ပါရှိသည့် အဆင်သင့်လုပ်ထားသော sandbox ကို ပေးဆောင်ပါသည်။ အခြေခံအချက်လေးတွေကို ကိုယ်တိုင်စမ်းကြည့်ချင်တယ်ဆိုရင်တော့ အကောင်းဆုံးရွေးချယ်မှုတစ်ခုပါ။

Skaffold အတွက် ဖြစ်နိုင်ချေရှိသော အသုံးပြုမှုကိစ္စတစ်ခုမှာ အဝေးထိန်းအစုအဝေးတစ်ခုပေါ်တွင် ဖွံ့ဖြိုးတိုးတက်မှုကို လုပ်ဆောင်ရန်ဖြစ်သည်။ Minikube သည် ၎င်းတို့၏ကိုယ်ပိုင် hardware တွင်အသုံးပြုရန်အဆင်ပြေသည်မဟုတ်ပါ၊ ထို့နောက်အပလီကေးရှင်းကိုထုတ်ပြီးလုံလောက်စွာလုပ်ဆောင်ရန်မျှော်လင့်နေသည်... ဤကိစ္စတွင်၊ Skaffold သည်ပြဿနာကိုကောင်းစွာဖြေရှင်းနိုင်သည်၊ ဥပမာအားဖြင့် Reddit အင်ဂျင်နီယာများကကျွန်ုပ်တို့ရှိသကဲ့သို့အတည်ပြုနိုင်သည်။ ဆွေးနွေးထားပြီးသား ရေးသားခဲ့သည် ကျွန်ုပ်တို့၏ဘလော့ဂ်တွင်။

နှင့် ဒီထုတ်ဝေမှု Weaveworks မှ ထုတ်လုပ်မှုအတွက် ပိုက်လိုင်းတစ်ခု ဖန်တီးခြင်း၏ ဥပမာကို သင်တွေ့နိုင်သည်။

ကောက်ချက်

Skaffold သည် Kubernetes သို့ အက်ပ်လီကေးရှင်းများ ဖြန့်ကျက်ခြင်း ပါ၀င်သော ပိုက်လိုင်းများ တည်ဆောက်ခြင်းအတွက် အဆင်ပြေသော ကိရိယာတစ်ခုဖြစ်ပြီး ဖွံ့ဖြိုးတိုးတက်မှု လိုအပ်ချက်များကို အဓိက အာရုံစိုက်ထားသည်။ developer ၏အခြေခံလိုအပ်ချက်များကိုထည့်သွင်းစဉ်းစားသည့် "တို" ပိုက်လိုင်းကိုဖန်တီးရန်အတော်လေးလွယ်ကူစေသည်၊ သို့သော်အလိုရှိပါက၊ သင်သည်ပိုမိုကြီးမားသောလုပ်ငန်းစဉ်များကိုစီစဉ်နိုင်သည်။ CI/CD လုပ်ငန်းစဉ်များတွင် Skaffold ကိုအသုံးပြုခြင်း၏ ရှင်းလင်းသောဥပမာများထဲမှတစ်ခုဖြစ်သည်။ ပေးထားသည် ထိုကဲ့သို့သော စမ်းသပ်စီမံကိန်း Kubernetes၊ gRPC၊ Istio နှင့် OpenCensus ခြေရာခံခြင်းတို့ကို အသုံးပြု၍ အသေးစားဝန်ဆောင်မှု 10 ခု။

Skaffold သည် GitHub တွင် ကြယ်ပေါင်း 8000+ နီးပါးရှိပြီး၊ Google မှ ဖန်တီးထားပြီး အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ GoogleContainer ကိရိယာများ — ယေဘုယျအားဖြင့်၊ ယခုအချိန်တွင် ပရောဂျက်သည် အစဉ်အမြဲ ပျော်ရွှင်စွာ ဖွံ့ဖြိုးတိုးတက်လာမည်ဟု ယုံကြည်ရန် အကြောင်းပြချက်များစွာရှိပါသည်။

PS

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

source: www.habr.com

မှတ်ချက် Add