Sumo Pfupi yeKustomize

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. Customize, iyo ichangobva kuve chikamu cheK8s.

Sumo Pfupi yeKustomize

Kustomize chishandiso chinobvumira vashandisi kuti "vagadzirise akareruka, template-emahara YAML mafaera ezvinangwa zvakasiyana, achisiya yekutanga YAML yakasimba uye ichishandiswa" (tsanangudzo yakakweretwa zvakananga kubva kustomize repository paGitHub) Kustomize inogona kumhanya zvakananga kana, seKubernetes 1.14, yakashandiswa kubectl -k kuti uwane kushanda kwayo (kunyangwe seKubernetes 1.15, iyo bhinari yakaparadzana itsva pane kugona kwakavakirwa mukubectl). (Cherechedza. transl.: Uye nekuburitswa kwazvino Kubernetes 1.16 customize inotsigirwa ne zvakare mune kubeadm utility.) Muchinyorwa chino, ndinoda kuzivisa vaverengi nezvekutanga kustomize.

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 pano), asi ini ndichapa tsananguro pfupi yemuenzaniso chaiwo:

  • munda resources inoratidza kuti (zvipi zviwanikwa) kustomize zvichachinja. Muchiitiko ichi, ichatsvaga zviwanikwa mumafaira deployment.yaml ΠΈ service.yaml mudhairekitori rako (unogona kutsanangura nzira dzakakwana kana dzehama kana zvichidikanwa).
  • munda namePrefix inoraira kustomize kuwedzera imwe prefix (munyaya iyi - dev-) kuratidza name zvese zviwanikwa zvinotsanangurwa mumunda resources. Saka, kana Deployment ine name zvine zvazvinoreva nginx-deployment, gadzirisa ichazviita dev-nginx-deployment.
  • munda namespace inoraira kustomize kuwedzera zita rakapihwa kune zvese zviwanikwa. Mune ino kesi, Deployment uye Sevhisi inowira munzvimbo yezita development.
  • Pakupedzisira, munda commonLabels ine seti yemavara anozowedzerwa kune zvese zviwanikwa. Mumuenzaniso wedu, kustomize ichagovera label kune zviwanikwa zvine zita environment uye zvinoreva development.

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.

Sumo Pfupi yeKustomize
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.

Sumo Pfupi yeKustomize
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:

Cherechedza. transl.: Iwe unogona zvakare kukurudzira block yezvinongedzo yakaburitswa se Resources pawebhusaiti yekushandisa, inoteverwa neunganidzwa wemavhidhiyo ane mishumo yazvino nezve kustomize.

Kana uine mibvunzo kana mazano ekuvandudza chinyorwa ichi, ini ndinogara ndakavhurika kune mhinduro. Unogona kundibata pa Twitter kana Kubernetes Slack chiteshi. Nakidzwa nekugadzirisa zviratidziro zvako nekustomize!

PS kubva kumushanduri

Verenga zvakare pablog yedu:

Source: www.habr.com

Voeg