Takaitaccen Gabatarwa don Keɓancewa

Lura. fassara: Scott Lowe, injiniyan injiniya mai ƙwarewa a IT ne ya rubuta labarin, wanda shine marubucin / marubucin littattafai bakwai da aka buga (yafi akan VMware vSphere). Yanzu yana aiki don reshen VMware na Heptio (wanda aka samu a cikin 2016), ƙwararre a lissafin girgije da Kubernetes. Rubutun da kansa yana aiki azaman gabatarwar taƙaitacce kuma mai sauƙin fahimta ga sarrafa tsari don Kubernetes ta amfani da fasaha. Keɓance, wanda kwanan nan ya zama wani ɓangare na K8s.

Takaitaccen Gabatarwa don Keɓancewa

Kustomize kayan aiki ne wanda ke ba masu amfani damar “daidaita fayilolin YAML masu sauƙi, marasa samfuri don dalilai daban-daban, barin ainihin YAML ɗin da ba a iya amfani da su ba” (bayanin da aka aro kai tsaye daga kustomize wurin ajiya akan GitHub). Ana iya gudanar da Kustomize kai tsaye ko, kamar na Kubernetes 1.14, ana amfani da su kubectl -k don samun damar aikin sa (ko da yake kamar na Kubernetes 1.15, keɓantaccen binary ya fi sabon ƙarfin da aka gina a cikin kubectl). (Lura. fassara: Kuma tare da sakin kwanan nan Kubernetes 1.16 siffanta goyan bayan Hakanan a cikin kubeadm utility.) A cikin wannan sakon, ina so in gabatar da masu karatu ga tushen kustomize.

A cikin mafi sauƙin tsari/ aikace-aikacen sa, kustomize shine kawai tarin albarkatu (fayil ɗin YAML waɗanda ke ayyana abubuwan Kubernetes: Ayyuka, Sabis, da sauransu) da jerin umarni don canje-canjen da ake buƙatar yin ga waɗannan albarkatun. Kamar yadda ake amfani da tsarin umarnin da ke ƙunshe Makefile, kuma Docker yana gina akwati bisa umarnin daga Dockerfile, keɓance amfani kustomization.yaml don adana umarni game da canje-canjen da mai amfani ke son yi zuwa saitin albarkatun.

Ga fayil ɗin misali kustomization.yaml:

resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

Ba zan yi ƙoƙarin yin magana game da duk yuwuwar filayen cikin fayil ɗin ba. kustomization.yaml (wannan an rubuta shi sosai a nan), amma zan ba da taƙaitaccen bayani na takamaiman misali:

  • filin resources yana nuna abin da (waɗanne albarkatun) kustomize zai canza. A wannan yanayin, zai nemi albarkatun a cikin fayiloli deployment.yaml и service.yaml a cikin kundin adireshi (zaku iya saka cikakkun ko hanyoyin dangi idan ya cancanta).
  • filin namePrefix yana ba da umarni kustomize don ƙara takamaiman prefix (a cikin wannan yanayin - dev-) da sifa name duk albarkatun da aka ayyana a cikin filin resources. Don haka, idan Deployment yana da name tare da ma'ana nginx-deployment, customize zai sa shi dev-nginx-deployment.
  • filin namespace yana ba da umarni kustomize don ƙara sunan da aka ba wa duk albarkatun. A wannan yanayin, Ƙaddamarwa da Sabis za su fada cikin filin suna development.
  • A ƙarshe, filin commonLabels ya ƙunshi saitin lakabi waɗanda za a ƙara zuwa duk albarkatun. A cikin misalinmu, kustomize zai sanya tambari ga albarkatun mai suna environment da ma'ana development.

Idan mai amfani yayi kustomize build . a cikin kundin adireshi tare da fayil kustomization.yaml da albarkatun da ake buƙata (watau fayiloli deployment.yaml и service.yaml), sa'an nan a fitarwa zai sami rubutu tare da canje-canje da aka ƙayyade a ciki kustomization.yaml.

Takaitaccen Gabatarwa don Keɓancewa
Lura. fassara: Misali daga takardun aikin akan "sauki" amfani da kustomize

Ana iya jujjuya abin fitarwa idan ana buƙatar aiwatar da canje-canje:

kustomize build . > custom-config.yaml

Bayanan fitarwa yana da ƙayyadaddun bayanai (bayanan shigarwa guda ɗaya zai samar da sakamakon fitarwa iri ɗaya), don haka ba dole ba ne ka ajiye sakamakon zuwa fayil. Madadin haka, ana iya wuce shi kai tsaye zuwa wani umarni:

kustomize build . | kubectl apply -f -

Hakanan za'a iya samun dama ga abubuwan kustomize ta hanyar kubectl -k (tun Kubernetes sigar 1.14). Koyaya, ku tuna cewa fakitin kustomize na tsaye yana sabuntawa da sauri fiye da haɗaɗɗen kubectl (aƙalla wannan shine lamarin tare da sakin Kubernetes 1.15).

Masu karatu na iya tambaya: "Me yasa duk wannan rikitarwa idan za ku iya gyara fayilolin kai tsaye?" Babbar tambaya. A cikin misalinmu, hakika iya gyara fayiloli deployment.yaml и service.yaml kai tsaye, amma idan sun kasance cokali mai yatsa na aikin wani? Canza fayiloli kai tsaye yana da wahala (idan ba zai yiwu ba) sake saita cokali mai yatsu lokacin da aka yi canje-canje ga asali/madogararsa. Yin amfani da kustomize yana ba ku damar daidaita waɗannan canje-canje a cikin fayil kustomization.yaml, barin ainihin fayilolin daidai kuma don haka yana sauƙaƙa sake saita ainihin fayilolin idan ya cancanta.

Amfanin kustomize ya bayyana a cikin mafi rikitarwa lokuta na amfani. A cikin misalin da ke sama kustomization.yaml kuma albarkatun suna cikin kundi guda ɗaya. Koyaya, kustomize yana goyan bayan amfani da lokuta inda akwai tsarin tushe da yawancin bambance-bambancen sa, kuma aka sani da overlays. Misali, mai amfani yana so ya ɗauki Ƙaddamarwa da Sabis don nginx, wanda na yi amfani da shi azaman misali, da ƙirƙirar ci gaba, tsarawa da nau'ikan samarwa (ko bambance-bambancen) na waɗannan fayilolin. Don yin wannan, zai buƙaci abubuwan da aka ambata a sama da kuma, a gaskiya, albarkatun da kansu.

Don kwatanta ra'ayin overlays da albarkatun ƙasa (tushen albarkatun), bari mu ɗauka cewa kundayen adireshi suna da tsari mai zuwa:

- base
  - deployment.yaml
  - service.yaml
  - kustomization.yaml
- overlays
  - dev
    - kustomization.yaml
  - staging
    - kustomization.yaml
  - prod
    - kustomization.yaml

A cikin fayil base/kustomization.yaml masu amfani da amfani da filin resources kawai ayyana albarkatun da ya kamata a haɗa su.

A cikin kowane fayil overlays/{dev,staging,prod}/kustomization.yaml masu amfani suna komawa zuwa tsarin tushe a cikin filin resources, sa'an nan kuma nuna takamaiman canje-canje don da aka ba muhalli. Misali, fayil overlays/dev/kustomization.yaml zai yi kama da misalin da aka bayar a baya:

resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

A wannan yanayin, fayil ɗin overlays/prod/kustomization.yaml zai iya zama daban-daban:

resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
  environment: production
  sre-team: blue

Lokacin da mai amfani ke gudana kustomize build . a cikin kasida overlays/dev, kustomize zai haifar da zaɓi na ci gaba. Idan ka gudu kustomize build . a cikin kasida overlays/prod - kuna samun zaɓin samarwa. Kuma duk wannan - ba tare da yin canje-canje ga asali ba (base) fayiloli, duk a cikin shela da ƙayyadaddun hanya. Kuna iya ƙaddamar da saitin tushe da liƙa kundayen adireshi kai tsaye zuwa sarrafa sigar, sanin cewa dangane da waɗannan fayilolin zaku iya sake fasalin tsarin da ake so a kowane lokaci.

Takaitaccen Gabatarwa don Keɓancewa
Lura. fassara: Misali daga takardun aikin akan amfani da overlays a kustomize

Keɓance iya da yawa fiye da abin da ke cikin wannan labarin. Duk da haka, ina fata zai zama gabatarwa mai kyau.

Ƙarin Albarkatu

Akwai labarai masu kyau da wallafe-wallafe game da kustomize. Anan ga kaɗan waɗanda na sami amfani musamman:

Lura. fassara: Hakanan zaka iya ba da shawarar toshe hanyoyin haɗin da aka buga azaman Aikace-Aikace akan gidan yanar gizon mai amfani, sannan tarin bidiyo tare da sabbin rahotanni game da kustomize.

Idan kuna da tambayoyi ko shawarwari don inganta wannan abu, koyaushe ina buɗe don amsawa. Kuna iya tuntuɓar ni a Twitter ko Kubernetes Slack tashar. Yi farin ciki da canza bayananku tare da kustomize!

PS daga mai fassara

Karanta kuma a kan shafinmu:

source: www.habr.com

Add a comment