Nco tseg. txhais.: Kab lus tau sau los ntawm Scott Lowe, tus kws tshaj lij uas muaj kev paub dhau los hauv IT, uas yog tus sau / tus kws sau ntawv ntawm xya phau ntawv luam tawm (tsuas yog ntawm VMware vSphere). Tam sim no nws ua haujlwm rau nws lub tuam txhab VMware Heptio (tau txais hauv 2016), tshwj xeeb hauv huab xam thiab Kubernetes. Cov ntawv nyeem nws tus kheej ua haujlwm raws li kev qhia yooj yim thiab nkag siab txog kev tswj hwm kev teeb tsa rau Kubernetes siv thev naus laus zis
Kustomize yog ib qho cuab yeej uas tso cai rau cov neeg siv "kho qhov yooj yim, template-dawb YAML cov ntaub ntawv rau ntau lub hom phiaj, tawm hauv YAML qub thiab siv tau" (cov lus piav qhia ncaj qha los ntawm kubectl -k
txhawm rau nkag mus rau nws cov haujlwm ua haujlwm (txawm hais tias yog Kubernetes 1.15, qhov sib cais binary yog qhov tshiab dua li qhov muaj peev xwm ua rau kubectl). (Nco tseg. txhais.: Thiab nrog kev tso tawm tsis ntev los no
Hauv nws daim ntawv yooj yim tshaj plaws / daim ntawv thov, kustomize tsuas yog ib qho kev sau ntawm cov peev txheej (YAML cov ntaub ntawv uas txhais cov khoom Kubernetes: Kev xa tawm, Kev Pabcuam, thiab lwm yam) ntxiv rau cov npe ntawm cov lus qhia rau kev hloov pauv uas yuav tsum tau ua rau cov peev txheej ntawd. Ib yam li ua siv cov txheej txheem qhia muaj nyob rau hauv Makefile
, thiab Docker tsim lub thawv raws li cov lus qhia los ntawm Dockerfile
, customize siv kustomization.yaml
khaws cov lus qhia txog qhov hloov pauv uas tus neeg siv xav ua rau cov txheej txheem.
Nov yog ib daim ntawv piv txwv kustomization.yaml
:
resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Kuv yuav tsis sim tham txog txhua qhov ua tau hauv cov ntaub ntawv. kustomization.yaml
(qhov no yog sau zoo txog
- teb
resources
qhia tias dab tsi (uas cov peev txheej) customize yuav hloov. Hauv qhov no, nws yuav nrhiav cov peev txheej hauv cov ntaub ntawvdeployment.yaml
ΠΈservice.yaml
hauv koj phau ntawv teev npe (koj tuaj yeem qhia tag nrho lossis txheeb ze txoj hauv kev yog tias tsim nyog). - teb
namePrefix
qhia kustomize ntxiv ib qho prefix (hauv qhov no -dev-
) rau attributename
tag nrho cov peev txheej tau teev tseg hauv thaj chawresources
. Yog li, yog tias Deployment muajname
nrog lub ntsiab lusnginx-deployment
, customize yuav ua rau nwsdev-nginx-deployment
. - teb
namespace
qhia kustomize ntxiv qhov muab lub npe rau txhua qhov chaw. Hauv qhov no, Kev Tshaj Tawm thiab Kev Pabcuam yuav poob rau hauv lub npedevelopment
. - Thaum kawg, teb
commonLabels
muaj cov ntawv sau uas yuav muab ntxiv rau txhua qhov kev pabcuam. Hauv peb qhov piv txwv, kustomize yuav muab ib daim ntawv lo rau cov peev txheej nrog lub npeenvironment
thiab lub ntsiab lusdevelopment
.
Yog tus neeg siv ua kustomize build .
hauv daim ntawv teev npe nrog cov ntaub ntawv kustomization.yaml
thiab cov peev txheej tsim nyog (piv txwv li cov ntaub ntawv deployment.yaml
ΠΈ service.yaml
), tom qab ntawd ntawm cov zis nws yuav tau txais cov ntawv nyeem nrog cov kev hloov pauv tau teev tseg hauv kustomization.yaml
.
Nco tseg. txhais.: Daim duab piv txwv los ntawm cov ntaub ntawv hauv qhov project ntawm "yooj yim" siv kustomize
Cov zis tuaj yeem raug xa rov qab yog tias kev hloov pauv yuav tsum tau cog lus:
kustomize build . > custom-config.yaml
Cov ntaub ntawv tso zis yog txiav txim siab (cov ntaub ntawv tawm tswv yim tib yam yuav tsim cov txiaj ntsig zoo ib yam), yog li koj tsis tas yuav khaws cov txiaj ntsig rau hauv cov ntaub ntawv. Hloov chaw, nws tuaj yeem xa ncaj qha mus rau lwm cov lus txib:
kustomize build . | kubectl apply -f -
Cov yam ntxwv kustomize kuj tuaj yeem nkag los ntawm kubectl -k
(txij li Kubernetes version 1.14). Txawm li cas los xij, nco ntsoov tias lub pob kustomize standalone tau hloov kho sai dua li cov pob kubectl sib xyaw ua ke (tsawg kawg yog qhov no nrog Kubernetes 1.15 tso tawm).
Cov neeg nyeem yuav nug: "Vim li cas tag nrho qhov nyuaj no yog tias koj tuaj yeem hloov kho cov ntaub ntawv ncaj qha?" Lus nug zoo. Hauv peb qhov piv txwv, qhov tseeb tau hloov cov ntaub ntawv deployment.yaml
ΠΈ service.yaml
ncaj qha, tab sis yuav ua li cas yog tias lawv yog rab rawg ntawm lwm tus qhov project? Hloov cov ntaub ntawv ncaj qha ua rau nws nyuaj (yog tias tsis tuaj yeem ua tsis tau) kom rov pib lub diav rawg thaum hloov pauv mus rau lub hauv paus / qhov chaw. Siv kustomize tso cai rau koj los tswj cov kev hloov pauv no hauv cov ntaub ntawv kustomization.yaml
, tawm hauv cov ntaub ntawv qub qub thiab yog li ua rau nws yooj yim dua rau rov tsim cov ntaub ntawv qub yog tias tsim nyog.
Cov txiaj ntsig ntawm kustomize tau pom meej nyob rau hauv cov ntaub ntawv siv ntau dua. Hauv qhov piv txwv saum toj no kustomization.yaml
thiab cov ntaub ntawv yog nyob rau hauv tib phau ntawv. Txawm li cas los xij, kustomize txhawb kev siv cov xwm txheej uas muaj lub hauv paus teeb tsa thiab ntau yam sib txawv ntawm nws, tseem hu ua sib tshooj. Piv txwv li, tus neeg siv xav coj Kev Siv thiab Kev Pabcuam rau nginx, uas kuv tau siv ua piv txwv, thiab tsim kev txhim kho, kev ua haujlwm thiab ntau lawm versions (los yog variants) ntawm cov ntaub ntawv. Ua li no, nws yuav xav tau cov lus hais saum toj no thiab, qhov tseeb, cov peev txheej hauv lawv tus kheej.
Txhawm rau piav qhia lub tswv yim ntawm kev sib tshooj thiab cov peev txheej hauv qab (base resources), cia peb xav tias cov npe muaj cov qauv hauv qab no:
- base
- deployment.yaml
- service.yaml
- kustomization.yaml
- overlays
- dev
- kustomization.yaml
- staging
- kustomization.yaml
- prod
- kustomization.yaml
Hauv cov ntaub ntawv base/kustomization.yaml
cov neeg siv lub teb resources
tsuas tshaj tawm cov peev txheej uas kustomize yuav tsum suav nrog.
Hauv txhua cov ntaub ntawv overlays/{dev,staging,prod}/kustomization.yaml
cov neeg siv xa mus rau lub hauv paus configuration nyob rau hauv lub teb resources
, thiab tom qab ntawd qhia cov kev hloov pauv tshwj xeeb rau muab ib puag ncig. Piv txwv li, cov ntaub ntawv overlays/dev/kustomization.yaml
tej zaum yuav zoo li qhov piv txwv tau muab ua ntej:
resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Hauv qhov no cov ntaub ntawv overlays/prod/kustomization.yaml
tuaj yeem sib txawv kiag li:
resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
environment: production
sre-team: blue
Thaum tus neeg siv khiav kustomize build .
hauv phau ntawv teev khoom overlays/dev
, kustomize yuav tsim qhov kev xaiv txhim kho. Yog koj khiav kustomize build .
hauv phau ntawv teev khoom overlays/prod
- koj tau txais kev xaiv ntau lawm. Thiab tag nrho cov no - tsis muaj kev hloov pauv rau qhov qub (base) cov ntaub ntawv, tag nrho hauv ib txoj kev tshaj tawm thiab txiav txim siab. Koj tuaj yeem ua rau lub hauv paus kev teeb tsa thiab cov ntawv tshaj tawm ncaj qha rau kev tswj hwm version, paub tias raws li cov ntaub ntawv no koj tuaj yeem tsim kho qhov xav tau ntawm txhua lub sijhawm.
Nco tseg. txhais.: Daim duab qhia los ntawm cov ntaub ntawv qhia txog kev siv overlays hauv kustomize
Customize ua tau ntau ntau tshaj li qhov tau hais hauv kab lus no. Txawm li cas los xij, kuv vam tias nws ua haujlwm tau zoo.
Cov peev txheej ntxiv
Muaj ntau cov ntawv zoo thiab cov ntawv tshaj tawm txog kustomize. Nov yog qee qhov kuv pom muaj txiaj ntsig tshwj xeeb:
-
Hloov puag YAML config rau txawv ib puag ncig prod/test siv Kustomize ; -
Kustomize - Txoj hauv kev zoo los ua templates hauv Kubernetes ; -
Tshaj Tawm Kev Tswj Xyuas Cov Khoom Siv Kubernetes Siv Customize ; -
Customizing Upstream Helm Charts nrog Customize .
Nco tseg. txhais.: Koj tseem tuaj yeem pom zoo kom thaiv cov ntawv txuas luam tawm raws li
Yog tias koj muaj lus nug lossis lus pom zoo rau kev txhim kho cov khoom siv no, kuv ib txwm qhib rau kev tawm tswv yim. Koj tuaj yeem tiv tauj kuv ntawm
PS los ntawm tus txhais lus
Nyeem kuj ntawm peb blog:
- Β«
Cov cuab yeej rau cov tsim tawm ntawm daim ntawv thov khiav ntawm Kubernetes Β»; - Β«
Kubernetes 1.14: Cov ntsiab lus ntawm cov kev hloov tshiab tseem ceeb Β»; - Β«
Tsib qhov txiaj ntsig tseem ceeb ntawm Helm Summit 2019 hauv Amsterdam Β»; - Β«
Kev taw qhia tswv yim rau tus thawj tswj pob rau Kubernetes - Helm ".
Tau qhov twg los: www.hab.com