Cherechedza. transl.: Nyaya yacho yakanyorwa naScott Lowe, injiniya ane ruzivo rwakakura muIT, uyo ari munyori/munyori pamwe chete wemabhuku manomwe akadhindwa (kunyanya paVMware vSphere). Iye zvino anoshandira iyo VMware inotsigira Heptio (yakawanikwa muna 2016), inyanzvi mumakomputa emakore uye Kubernetes. Iwo mameseji pachawo anoshanda seapfupi uye nyore-kunzwisisa sumo yekumisikidza manejimendi yeKubernetes uchishandisa tekinoroji.
Kustomize chishandiso chinobvumira vashandisi kuti "vagadzirise akareruka, template-emahara YAML mafaera ezvinangwa zvakasiyana, achisiya yekutanga YAML yakasimba uye ichishandiswa" (tsanangudzo yakakweretwa zvakananga kubva kubectl -k
kuti uwane kushanda kwayo (kunyangwe seKubernetes 1.15, iyo bhinari yakaparadzana itsva pane kugona kwakavakirwa mukubectl). (Cherechedza. transl.: Uye nekuburitswa kwazvino
Muchimiro chayo chakareruka/chikumbiro, kustomize ingori muunganidzwa wezviwanikwa (YAML mafaera anotsanangura Kubernetes zvinhu: Deployments, Services, etc.) pamwe nerondedzero yemirairo yekuchinja inoda kuitwa kune izvo zviwanikwa. Sezvinongoita make inoshandisa rairo yakaiswa mukati Makefile
, uye Docker inovaka mudziyo unoenderana nemirairo kubva Dockerfile
, gadzirisa mashandisirwo kustomization.yaml
kuchengetedza mirairo pamusoro pekuchinja kupi uko mushandisi anoda kuita kune seti yezviwanikwa.
Heino muenzaniso faira kustomization.yaml
:
resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Ini handisi kuzoedza kutaura nezvese minda inogoneka mufaira. kustomization.yaml
(izvi zvakanyorwa zvakanaka nezvazvo
- munda
resources
inoratidza kuti (zvipi zviwanikwa) kustomize zvichachinja. Muchiitiko ichi, ichatsvaga zviwanikwa mumafairadeployment.yaml
ΠΈservice.yaml
mudhairekitori rako (unogona kutsanangura nzira dzakakwana kana dzehama kana zvichidikanwa). - munda
namePrefix
inoraira kustomize kuwedzera imwe prefix (munyaya iyi -dev-
) kuratidzaname
zvese zviwanikwa zvinotsanangurwa mumundaresources
. Saka, kana Deployment inename
zvine zvazvinorevanginx-deployment
, gadzirisa ichazviitadev-nginx-deployment
. - munda
namespace
inoraira kustomize kuwedzera zita rakapihwa kune zvese zviwanikwa. Mune ino kesi, Deployment uye Sevhisi inowira munzvimbo yezitadevelopment
. - Pakupedzisira, munda
commonLabels
ine seti yemavara anozowedzerwa kune zvese zviwanikwa. Mumuenzaniso wedu, kustomize ichagovera label kune zviwanikwa zvine zitaenvironment
uye zvinorevadevelopment
.
Kana mushandisi akadaro kustomize build .
mudhairekitori nefaira kustomization.yaml
uye zviwanikwa zvinodiwa (kureva mafaera deployment.yaml
ΠΈ service.yaml
), ipapo pazvinobuda ichagashira mavara ane shanduko dzakataurwa mukati kustomization.yaml
.
Cherechedza. transl.: Mufananidzo kubva mugwaro reprojekiti pane "nyore" kushandiswa kwekustomize
Izvo zvinobuda zvinogona kutungamirwa kana shanduko dzichida kuitwa:
kustomize build . > custom-config.yaml
Iyo inobuda data ndeye deterministic (iyo yakafanana yekuisa data inoburitsa zvakafanana zvakabuda mhedzisiro), saka haufanirwe kuchengetedza mhedzisiro kufaira. Pane kudaro, inogona kupfuudzwa zvakananga kune mumwe murairo:
kustomize build . | kubectl apply -f -
Iyo kustomize maficha anogona zvakare kuwanikwa kuburikidza kubectl -k
(kubva Kubernetes vhezheni 1.14). Nekudaro, ramba uchifunga kuti iyo yakamira kustomize package inogadziridzwa nekukurumidza kupfuura yakasanganiswa kubectl package (zvirinani izvi ndizvo zvakaita Kubernetes 1.15 kuburitswa).
Vaverengi vangabvunza kuti: "Nei zvese izvi zvakaoma kana uchikwanisa kugadzirisa mafaera zvakananga?" Mubvunzo mukuru. Mumuenzaniso wedu, chokwadi anogona shandura mafaira deployment.yaml
ΠΈ service.yaml
zvakananga, asi zvakadini kana vari forogo yepurojekiti yeumwe munhu? Kushandura mafaera zvakananga kunoita kuti zviome (kana zvisingaite) kudzoreredza forogo kana shanduko dzaitwa kune kwakabva/kunobva. Kushandisa kustomize kunobvumidza iwe kuisa pakati shanduko idzi mufaira kustomization.yaml
, ichisiya mafaira ekutanga akasimba uye nokudaro zvichiita kuti zvive nyore kudzoreredza mafaira ekutanga kana zvichidikanwa.
Zvakanakira kustomize zvinova pachena mune zvakanyanya kuoma mashandisiro kesi. Mumuenzaniso uri pamusoro apa kustomization.yaml
uye zviwanikwa zviri mudhairekitori rimwechete. Nekudaro, kustomize inotsigira kushandiswa kwemakesi uko kune base configuration uye akawanda akasiyana ayo, anozivikanwawo se. kuwanda. Semuenzaniso, mushandisi aida kutora Deployment uye Sevhisi yenginx, yandakashandisa semuenzaniso, uye kugadzira budiriro, dhizaini uye yekugadzira shanduro (kana akasiyana) emafaira iwayo. Kuti aite izvi, anozoda izvo zvataurwa pamusoro apa uye, kutaura zvazviri, zviwanikwa zvekutanga ivo pachavo.
Kuenzanisira iyo pfungwa yekufukidzira uye yepasi zviwanikwa (base zviwanikwa), ngatifungei kuti madhairekitori ane chimiro chinotevera:
- base
- deployment.yaml
- service.yaml
- kustomization.yaml
- overlays
- dev
- kustomization.yaml
- staging
- kustomization.yaml
- prod
- kustomization.yaml
Mufaira base/kustomization.yaml
vashandisi vanoshandisa munda resources
just declare the resources that kustomize should include.
Mune imwe neimwe yemafaira overlays/{dev,staging,prod}/kustomization.yaml
vashandisi vanonongedzera kune base configuration mumunda resources
, wobva waratidza shanduko chaiyo ye kupihwa nharaunda. Somuenzaniso, faira overlays/dev/kustomization.yaml
inogona kutaridzika semuenzaniso wakapihwa kare:
resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Muchiitiko ichi, faira overlays/prod/kustomization.yaml
zvinogona kunge zvakasiyana zvachose:
resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
environment: production
sre-team: blue
Kana mushandisi achimhanya kustomize build .
mubhuku overlays/dev
, kustomize ichagadzira sarudzo yekuvandudza. Kana uchimhanya kustomize build .
mubhuku overlays/prod
- iwe unowana sarudzo yekugadzira. Uye izvi zvese - pasina kuita chero shanduko kune yekutanga (base) mafaera, ese nenzira yekuzivisa uye yekumisikidza. Iwe unogona kupa iyo base yekumisikidza uye pamusoro madhairekitori zvakananga kune vhezheni kutonga, uchiziva kuti zvichibva pane aya mafaera unogona kuburitsa yaunoda kumisikidzwa chero nguva.
Cherechedza. transl.: Mufananidzo kubva mugwaro repurojekiti pakushandisa zvakavharika mukustomize
Customize can zvakawanda kupfuura zviri kukurukurwa munyaya ino. Zvisinei, ndinovimba inoshanda sesumo yakanaka.
Zvimwe Zvishandiso
Pane zvakawanda zvakanaka zvinyorwa uye zvinyorwa nezve kustomize. Heano mashoma andakaona achinyanya kubatsira:
-
Shandura base YAML config kune akasiyana nharaunda prod/yedzo uchishandisa Kustomize ; -
Kustomize - Iyo nzira chaiyo yekuita templating muKubernetes ; -
Declarative Management yeKubernetes Zvinhu Uchishandisa Gadzirisa ; -
Kugadzirisa Kumusoro Helm Charts neKugadzirisa .
Cherechedza. transl.: Iwe unogona zvakare kukurudzira block yezvinongedzo yakaburitswa se
Kana uine mibvunzo kana mazano ekuvandudza chinyorwa ichi, ini ndinogara ndakavhurika kune mhinduro. Unogona kundibata pa
PS kubva kumushanduri
Verenga zvakare pablog yedu:
- Β«
Zvishandiso zvevagadziri vezvishandiso zvinomhanya paKubernetes "; - Β«
Kubernetes 1.14: mhedziso yehukuru hutsva "; - Β«
Mishanu mibairo mikuru yeHelm Summit 2019 muAmsterdam "; - Β«
Inoshanda sumo kune maneja wepakeji yeKubernetes - Helm ".
Source: www.habr.com