Zindikirani. transl.: Nkhaniyi inalembedwa ndi Scott Lowe, injiniya wodziwa zambiri mu IT, yemwe ndi wolemba/wolemba nawo mabuku asanu ndi awiri osindikizidwa (makamaka pa VMware vSphere). Tsopano akugwira ntchito ku kampani yake ya VMware Heptio (yomwe idapezedwa mu 2016), yomwe imagwira ntchito pa cloud computing ndi Kubernetes. Mawuwo pawokha amakhala ngati mawu oyamba komanso osavuta kumva pakuwongolera kasinthidwe kwa Kubernetes pogwiritsa ntchito ukadaulo.
Kustomize ndi chida chomwe chimalola ogwiritsa ntchito "kusintha mafayilo a YAML osavuta, opanda template pazifukwa zosiyanasiyana, kusiya YAML yoyambirira ilibe bwino komanso yogwiritsidwa ntchito" (mafotokozedwe adabwerekedwa kuchokera ku kubectl -k
kuti mupeze magwiridwe antchito ake (ngakhale monga Kubernetes 1.15, binary yosiyana ndi yatsopano kuposa kuthekera komwe kumapangidwira kubectl). (Zindikirani. transl.: Ndipo ndi kutulutsidwa kwaposachedwa
Mu mawonekedwe ake osavuta / kugwiritsa ntchito, kustomize ndikungosonkhanitsa zinthu (mafayilo a YAML omwe amatanthauzira zinthu za Kubernetes: Deployments, Services, etc.) kuphatikiza mndandanda wa malangizo osintha zomwe ziyenera kupangidwa kuzinthuzo. Monga momwe make amagwiritsira ntchito malangizo omwe ali mu Makefile
, ndipo Docker amamanga chidebecho kutengera malangizo ochokera Dockerfile
, sinthani magwiritsidwe ntchito kustomization.yaml
kusunga malangizo okhudza zomwe wogwiritsa ntchito akufuna kupanga pagulu lazinthu.
Nayi fayilo yachitsanzo kustomization.yaml
:
resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Sindidzayesa kulankhula za minda yonse yomwe ingatheke mufayilo. kustomization.yaml
(izi zalembedwa bwino
- m'munda
resources
zikuwonetsa zomwe (zothandizira) kustomize zidzasintha. Pankhaniyi, idzayang'ana zothandizira mumafayilodeployment.yaml
ΠΈservice.yaml
m'ndandanda yanu (mutha kufotokoza njira zonse kapena zachibale ngati kuli kofunikira). - m'munda
namePrefix
amalangiza kustomize kuti awonjezere mawu oyamba (pankhaniyi -dev-
) kutsimikiziraname
zida zonse zomwe zafotokozedwa m'mundaresources
. Chifukwa chake, ngati Deployment ili nayoname
ndi tanthauzonginx-deployment
, makonda adzapangadev-nginx-deployment
. - m'munda
namespace
amalangiza kustomize kuwonjezera dzina lapatsidwa kuzinthu zonse. Pankhaniyi, Deployment and Service idzagwera mu namespacedevelopment
. - Pomaliza, munda
commonLabels
ili ndi zolemba zomwe zidzawonjezedwa kuzinthu zonse. Muchitsanzo chathu, kustomize idzapereka chizindikiro kuzinthu zomwe zili ndi dzinaenvironment
ndi mtengodevelopment
.
Ngati wogwiritsa atero kustomize build .
mu chikwatu ndi fayilo kustomization.yaml
ndi zofunikira (ie mafayilo deployment.yaml
ΠΈ service.yaml
), ndiye pazotulutsa ilandila mawu ndi zosintha zomwe zafotokozedwamo kustomization.yaml
.
Zindikirani. transl.: Chithunzi chochokera muzolemba za polojekiti pakugwiritsa ntchito "zosavuta" za kustomize
Zotulutsa zitha kutumizidwanso ngati zosintha zikufunika:
kustomize build . > custom-config.yaml
Zomwe zimatuluka ndizokhazikika (zolowera zomwezo zidzatulutsa zotsatira zomwezo), kotero simuyenera kusunga zotsatira ku fayilo. M'malo mwake, ikhoza kuperekedwa mwachindunji ku lamulo lina:
kustomize build . | kubectl apply -f -
Zinthu za kustomize zitha kupezekanso kudzera kubectl -k
(kuyambira Kubernetes mtundu 1.14). Komabe, kumbukirani kuti phukusi loyimilira la kustomize limasinthidwa mwachangu kuposa phukusi lophatikizika la kubectl (osachepera ndi momwe zimakhalira ndi Kubernetes 1.15 kumasulidwa).
Owerenga angafunse kuti: "Chifukwa chiyani zovuta zonsezi ngati mutha kusintha mafayilo mwachindunji?" Funso lalikulu. Mu chitsanzo chathu, ndithudi mungathe sintha mafayilo deployment.yaml
ΠΈ service.yaml
molunjika, koma bwanji ngati ali mphanda wa polojekiti ya munthu wina? Kusintha mafayilo mwachindunji kumapangitsa kuti zikhale zovuta (ngati sizingatheke) kubwezeretsanso foloko pamene zosintha zapangidwa ku chiyambi / gwero. Kugwiritsa ntchito kustomize kumakupatsani mwayi woyika zosinthazi mufayilo kustomization.yaml
, kusiya mafayilo oyambilira ali pompo ndipo motero kupangitsa kukhala kosavuta kuyikanso mafayilo oyamba ngati kuli kofunikira.
Ubwino wa kustomize umawonekera muzochitika zovuta kugwiritsa ntchito. Mu chitsanzo pamwambapa kustomization.yaml
ndipo zothandizira zili m'ndandanda womwewo. Komabe, kustomize imathandizira zochitika zomwe zimakhala ndi kasinthidwe koyambira ndi mitundu yambiri yake, yomwe imadziwikanso kuti zopondera. Mwachitsanzo, wogwiritsa ntchito amafuna kutenga Deployment and Service for nginx, yomwe ndidagwiritsa ntchito mwachitsanzo, ndikupanga masinthidwe, masitepe ndi kupanga (kapena mitundu) ya mafayilowo. Kuti achite izi, adzafunika zowunjikana zomwe tazitchula pamwambapa, komanso, zoyambira zokha.
Kuti mufotokozere lingaliro lazowonjezera ndi zida zapansi (zoyambira), tiyerekeze kuti zolembera zili ndi dongosolo ili:
- base
- deployment.yaml
- service.yaml
- kustomization.yaml
- overlays
- dev
- kustomization.yaml
- staging
- kustomization.yaml
- prod
- kustomization.yaml
Mu fayilo base/kustomization.yaml
ogwiritsa ntchito munda resources
ingolengezani zinthu zomwe kustomize ziyenera kuphatikiza.
M'mafayilo aliwonse overlays/{dev,staging,prod}/kustomization.yaml
ogwiritsa amatchula kasinthidwe koyambira m'munda resources
, ndiyeno sonyezani zosintha zenizeni za kupatsidwa chilengedwe. Mwachitsanzo, fayilo overlays/dev/kustomization.yaml
zitha kuwoneka ngati chitsanzo chomwe chaperekedwa kale:
resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Pankhaniyi, fayilo overlays/prod/kustomization.yaml
zikhoza kukhala zosiyana kwambiri:
resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
environment: production
sre-team: blue
Pamene wosuta akuthamanga kustomize build .
mu katalogu overlays/dev
, kustomize ipanga njira yachitukuko. Ngati muthamanga kustomize build .
mu katalogu overlays/prod
- mumapeza njira yopangira. Ndipo zonsezi - popanda kusintha koyambirira (basi) mafayilo, onse m'njira yolengeza komanso yotsimikizika. Mutha kuyika masinthidwe oyambira ndikuwonjezera maukonde mwachindunji kuti muwongolere mtundu, podziwa kuti kutengera mafayilowa mutha kupanganso masinthidwe omwe mukufuna nthawi iliyonse.
Zindikirani. transl.: Chithunzi chochokera muzolemba zamapulojekiti pakugwiritsa ntchito zokutira kustomize
Sinthani mwamakonda anu zambiri kuposa zimene zafotokozedwa mβnkhani ino. Komabe, ndikukhulupirira kuti ikhala ngati mawu oyamba abwino.
Zowonjezera Zowonjezera
Pali zambiri zabwino zolemba ndi zofalitsa za kustomize. Nawa ochepa omwe ndidawapeza othandiza kwambiri:
-
Sinthani masinthidwe a YAML pamapangidwe osiyanasiyana opangira / kuyesa pogwiritsa ntchito Kustomize ; -
Kustomize - Njira yoyenera yopangira ma templating ku Kubernetes ; -
Declarative Management ya Kubernetes Zinthu Kugwiritsa Ntchito Makonda ; -
Kusintha Ma chart a Helm akumtunda ndi Sinthani Mwamakonda Anu .
Zindikirani. transl.: Mukhozanso kulangiza chipika cha maulalo osindikizidwa ngati
Ngati muli ndi mafunso kapena malingaliro owongolera nkhaniyi, ndimakhala womasuka kuyankha. Mutha kulumikizana nane pa
PS kuchokera kwa womasulira
Werenganinso pa blog yathu:
- Β«
Zida zopangira mapulogalamu omwe akuyendetsa Kubernetes "; - Β«
Kubernetes 1.14: Zowonetsa zatsopano "; - Β«
Zotsatira zazikulu zisanu za Helm Summit 2019 ku Amsterdam "; - Β«
Chidziwitso chothandiza kwa woyang'anira phukusi la Kubernetes - Helm ".
Source: www.habr.com