Ny fitaovana Helm sy ny fandrika

Ny fitaovana Helm sy ny fandrika
Hevitra mpitatitra entana Typhon, Anton Swanepoel

Dmitry Sugrobov no anarako, mpamorona ao amin'ny Leroy Merlin aho. Ato amin'ity lahatsoratra ity dia holazaiko aminao ny antony ilana Helm, ny fomba hanatsorana ny fiaraha-miasa amin'ny Kubernetes, ny zavatra niova tamin'ny dikan-teny fahatelo, ary ny fomba fampiasana azy hanavaozana ny rindranasa amin'ny famokarana tsy misy fiatoana.

Ity dia famintinana mifototra amin'ny kabary nandritra ny fihaonambe @Kubernetes Conference by Mail.ru Cloud Solutions - raha tsy te hamaky ianao dia jereo ny video.

Nahoana izahay no mampiasa Kubernetes amin'ny famokarana

Leroy Merlin dia mpitarika amin'ny tsenan'ny varotra DIY any Rosia sy Eoropa. Ny orinasanay dia manana mpamorona zato mahery, mpiasa anatiny 33 ary olona marobe mitsidika hypermarkets sy tranokala. Mba hampifaliana azy rehetra dia nanapa-kevitra ny hanaraka ny fomba fanao mahazatra amin'ny indostria izahay. Mamorona fampiharana vaovao amin'ny alΓ lan'ny maritrano microservice; mampiasa kaontenera mba hitoka-monina ny tontolo iainana sy hiantohana ny fandefasana araka ny tokony ho izy; ary mampiasa Kubernetes amin'ny orkestra. Lasa mora vidy haingana ny vidin'ny fampiasana orkesitra: mitombo ny isan'ny injeniera mahay amin'ny teknolojia eny an-tsena, ary miseho manolotra serivisy Kubernetes ireo mpamatsy.

Ny zavatra rehetra ataon'i Kubernetes, mazava ho azy, dia azo atao amin'ny fomba hafa, ohatra, amin'ny fandrakofana ny Jenkins sasany sy ny docker-compose miaraka amin'ny script, fa maninona no manasarotra ny fiainana raha misy vahaolana efa vita sy azo antoka? Izany no nahatonga anay tonga tao amin'ny Kubernetes ary nampiasa azy io tamin'ny famokarana nandritra ny herintaona izao. Manana cluster Kubernetes efatra amby roapolo izahay amin'izao fotoana izao, ny tranainy indrindra amin'izy ireo dia mihoatra ny herintaona, miaraka amin'ny pods roanjato eo ho eo.

Ny ozon'ny rakitra YAML lehibe ao amin'ny Kubernetes

Mba hanombohana serivisy micro ao amin'ny Kubernetes dia hamorona rakitra YAML dimy farafahakeliny izahay: ho an'ny Deployment, Service, Ingress, ConfigMap, Secrets - ary alefaso any amin'ny cluster. Ho an'ny fampiharana manaraka dia hanoratra fonosana iray amin'ny jambs isika, ary ny fahatelo dia hanoratra iray hafa, sy ny sisa. Raha ampitomboina amin'ny isan'ny tontolo iainana ny isan'ny antontan-taratasy dia efa hahazo rakitra an-jatony isika, ary mbola tsy tafiditra ao anatin'izany ny tontolo iainana mavitrika.

Ny fitaovana Helm sy ny fandrika
Adam Reese, mpitantana ny Helm, dia nampiditra ny foto-kevitry ny "Cycle fampandrosoana ao Kubernetes", izay toa izao:

  1. Kopia YAML - kopia rakitra YAML.
  2. Apetaho YAML - apetaho izany.
  3. Fix Indents - amboary indents.
  4. Avereno - avereno indray.

Ny safidy dia miasa, saingy tsy maintsy mandika imbetsaka ny rakitra YAML ianao. Mba hanovana io tsingerina io dia noforonina ny Helm.

Inona no atao hoe Helm

Voalohany, Helm- mpitantana fonosana, izay manampy anao hahita sy hametraka ireo programa ilainao. Mba hametrahana, ohatra, MongoDB, tsy mila mandeha any amin'ny tranokala ofisialy ianao ary misintona binary, araho fotsiny ny baiko helm install stable/mongodb.

Faharoa, Helm- maotera maotera, manampy amin'ny famaritra rakitra. Andao hiverina amin'ny zava-misy miaraka amin'ny rakitra YAML ao amin'ny Kubernetes. Mora kokoa ny manoratra rakitra YAML mitovy, ampio toerana misy azy, izay hisoloan'i Helm ny soatoavina. Izany hoe, raha tokony ho scaffolds be dia be, dia hisy andiana mΓ΄dely izay hanoloana ny soatoavina ilaina amin'ny fotoana mety.

Fahatelo, Helm- deployment master. Miaraka amin'izany ianao dia afaka mametraka, mamerina ary manavao ny rindranasa. Andeha hojerentsika ny fomba hanaovana izany.

Ny fitaovana Helm sy ny fandrika

Ahoana ny fampiasana Helm amin'ny fametrahana ny fampiharana anao manokana

Andao hametraka ny mpanjifa Helm amin'ny solosainao, manaraka ny ofisialy toromarika. Manaraka, hamorona andian-drakitra YAML isika. Raha tokony hamaritra soatoavina manokana isika, dia hamela toerana misy toerana, izay hofenoin'i Helm vaovao amin'ny ho avy. Ny andian-drakitra toy izany dia antsoina hoe tabilao Helm. Azo alefa amin'ny mpanjifa Helm console amin'ny fomba telo izany:

  • manondro lahatahiry misy modely;
  • fenoy ao anaty .tar ny arisiva ary tondroy izany;
  • apetraho ao anaty tahiry lavitra ny mΓ΄dely ary ampio rohy mankany amin'ny tahiry ao amin'ny mpanjifa Helm.

Mila rakitra misy sanda ihany koa ianao - values.yaml. Hampidirina ao anatin'ny mΓ΄dely ny angona avy any. Andao hamorona azy koa.

Ny fitaovana Helm sy ny fandrika
Ny dikan-teny faharoa an'ny Helm dia manana fampiharana mpizara fanampiny - Tiller. Mihantona eo ivelan'ny Kubernetes izy io ary miandry ny fangatahana avy amin'ny mpanjifa Helm, ary rehefa antsoina dia manolo ny soatoavina ilaina amin'ny mΓ΄dely ary mandefa azy any amin'ny Kubernetes.

Ny fitaovana Helm sy ny fandrika
Tsotra kokoa ny Helm 3: fa tsy manodina mΓ΄dely amin'ny lohamilina, ny vaovao dia voahodina tanteraka amin'ny lafiny mpanjifa Helm ary alefa mivantana any amin'ny Kubernetes API. Ity fanatsorana ity dia manatsara ny fiarovana amin'ny cluster ary manamora ny drafitra famoahana.

Ahoana no fiasan'izy rehetra

Alefaso ny baiko helm install. Andao hanondro ny anaran'ny famoahana fampiharana ary omeo ny lalana mankany amin'ny values.yaml. Amin'ny farany dia hanondro ny tahiry misy ny tabilao sy ny anaran'ny tabilao isika. Amin'ny ohatra, ireo dia "lmru" sy "bestchart", tsirairay avy.

helm install --name bestapp --values values.yaml lmru/bestchart

Ny baiko dia azo tanterahina indray mandeha ihany, rehefa averina indray install mila mampiasa upgrade. Ho an'ny fahatsorana, raha tokony ho baiko roa dia azonao atao ny manatanteraka ny baiko upgrade miaraka amin'ny fanalahidy fanampiny --install. Rehefa novonoina voalohany, dia handefa baiko hametraka ny famoahana ny Helm, ary hanavao izany amin'ny ho avy.

helm upgrade --install bestapp --values values.yaml lmru/bestchart

Fandrika amin'ny fametrahana dika vaovao amin'ny fampiharana iray miaraka amin'ny Helm

Amin'izao fotoana izao amin'ny tantara, milalao Iza Te ho Millionaire miaraka amin'ny mpihaino aho, ary mitady ny fomba hahazoana an'i Helm hanavao ny dikan'ny fampiharana. Jereo ny horonantsary.

Rehefa nianatra ny fomba fiasan'i Helm aho dia gaga tamin'ny fihetsika hafahafa rehefa nanandrana nanavao ny dikan-tenin'ny fampiharana mandeha. Nanavao ny kaody fampiharana aho, nandefa sary vaovao tao amin'ny rejisitra Docker, nandefa ny baiko fametrahana - ary tsy nisy na inona na inona nitranga. Ireto ambany ireto ny fomba tsy mahomby amin'ny fanavaozana ny fampiharana. Amin'ny fandalinana ny tsirairay amin'izy ireo amin'ny antsipiriany bebe kokoa, dia manomboka mahazo ny firafitry ny fitaovana anatiny sy ny antony mahatonga an'io fihetsika tsy mazava io ianao.

Fomba 1. Aza manova vaovao hatramin'ny fanombohana farany

Araka ny voalaza tranonkala ofisialy Helm, "Mety ho lehibe sy sarotra ny tabilao Kubernetes, noho izany dia miezaka ny tsy hikasika na inona na inona loatra i Helm." Noho izany, raha manavao ny kinova farany amin'ny sary fampiharana ao amin'ny rejistra docker ianao ary manatanteraka ny baiko helm upgrade, dia tsy hisy na inona na inona hitranga. Helm dia hieritreritra fa tsy misy fiovana ary tsy ilaina ny mandefa baiko any amin'ny Kubernetes mba hanavao ny fampiharana.

Eto sy etsy ambany, ny marika farany dia aseho ho ohatra fotsiny. Rehefa mamaritra ity marika ity ianao, Kubernetes dia hisintona ny sary avy amin'ny rejisitra docker isaky ny mandeha, na inona na inona ny mari-pamantarana imagePullPolicy. Ny fampiasana farany amin'ny famokarana dia tsy ilaina ary miteraka voka-dratsy.

Fomba 2. Fanavaozana LABEL amin'ny sary

Araka ny voasoratra ao ihany tahirin-kevitra, "Havaozina ihany ny fampiharana raha toa ka niova hatramin'ny famoahana farany ny Helm." Ny safidy lojika amin'izany dia toa manavao ny LABEL amin'ny sary docker. Na izany aza, tsy mijery ny sary fampiharana i Helm ary tsy manana hevitra momba ny fanovana azy ireo. Noho izany, rehefa manavao ny etikety amin'ny sary dia tsy ho fantatry ny Helm ny momba azy ireo, ary tsy halefa any amin'ny Kubernetes ny baiko fanavaozana ny fampiharana.

Fomba 3: MampiasΓ  fanalahidy --force

Ny fitaovana Helm sy ny fandrika
Andao hitodika any amin'ny boky torolalana ary hitady ny fanalahidy ilaina. Ny fanalahidy no tena misy dikany --force. Na dia eo aza ny anarana mibaribary, ny fihetsika dia tsy mitovy amin'ny andrasana. Raha tokony hanery ny fanavaozana fampiharana, ny tena tanjona dia ny hamerina ny famoahana izay ao amin'ny sata FAILED. Raha tsy mampiasa an'io fanalahidy io ianao dia mila manatanteraka ny baiko manaraka helm delete && helm install --replace. Soso-kevitra ny hampiasa ny fanalahidy --force, izay mandeha ho azy ny fanatanterahana ireo baiko ireo. Fanazavana fanampiny amin'ity misintona fangatahana. Mba hilazana an'i Helm hanavao ny kinova fampiharana, indrisy fa tsy mandeha io fanalahidy io.

Fomba 4. Ovay mivantana ny etikety ao amin'ny Kubernetes

Ny fitaovana Helm sy ny fandrika
Fanavaozana etikety mivantana ao amin'ny kluster mampiasa ny baiko kubectl edit - hevitra ratsy. Ity hetsika ity dia hitarika amin'ny tsy fitovian'ny fampahalalam-baovao eo amin'ny fampiharana mandeha sy ilay nalefa tany am-boalohany mba hapetraka. Ny fitondran-tenan'ny Helm mandritra ny fametrahana amin'ity tranga ity dia tsy mitovy amin'ny dikan-ny: Helm 2 dia tsy hanao na inona na inona, ary ny Helm 3 dia hametraka ny dikan-teny vaovao amin'ny fampiharana. Mba hahatakarana ny antony dia mila mahatakatra ny fomba fiasan'ny Helm ianao.

Ahoana no fiasan'ny Helm?

Mba hamaritana raha niova ny fampiharana iray nanomboka tamin'ny famoahana azy farany, dia afaka mampiasa ny Helm:

  • fampiharana amin'ny Kubernetes;
  • sanda vaovao.yaml sy tabilao ankehitriny;
  • Ny fampahalalana momba ny famoahana anatiny an'i Helm.

Ho an'ny liana kokoa: aiza no itehirizan'i Helm ny fampahalalana anatiny momba ny famoahana?Amin'ny fanatanterahana ny baiko helm history, ho azontsika ny fampahalalana rehetra momba ny dikan-teny napetraka amin'ny fampiasana Helm.

Ny fitaovana Helm sy ny fandrika
Misy ihany koa ny fampahalalana amin'ny antsipiriany momba ny maodely nalefa sy ny soatoavina. Afaka mangataka izany izahay:

Ny fitaovana Helm sy ny fandrika
Ao amin'ny dikan-teny faharoa amin'ny Helm, ity fampahalalana ity dia hita ao amin'ny toerana misy an'i Tiller mandeha (kube-system raha default), ao amin'ny ConfigMap, voamarika amin'ny marika "OWNER=TILLER":

Ny fitaovana Helm sy ny fandrika
Rehefa niseho ny dikan-teny fahatelo an'ny Helm, dia nifindra tany amin'ny tsiambaratelo ny fampahalalana, ary tany amin'ny toerana misy ny fampiharana. Noho izany dia azo atao ny mampandeha rindranasa maromaro miaraka amin'ny toerana misy anarana mitovy amin'ny anarana famoahana. Ao amin'ny dikan-teny faharoa dia narary andoha mafy rehefa mitoka-monina ny toeran'ny anarana nefa mety hisy fiantraikany amin'ny tsirairay.

Ny fitaovana Helm sy ny fandrika

Ny Helm faharoa, rehefa miezaka hahatakatra raha ilaina ny fanavaozana, dia tsy mampiasa afa-tsy loharanom-baovao roa: inona no omena azy ankehitriny, ary fampahalalana anatiny momba ny famoahana, izay hita ao amin'ny ConfigMap.

Ny fitaovana Helm sy ny fandrika
Ny Helm fahatelo dia mampiasa tetika fampivondronana telo: ankoatr'izany fampahalalana izany dia raisina an-tsaina ihany koa ny fampiharana izay mandeha amin'izao fotoana izao ao amin'ny Kubernetes.

Ny fitaovana Helm sy ny fandrika
Noho izany antony izany, ny dikan-teny taloha an'ny Helm dia tsy hanao na inona na inona, satria tsy miraharaha ny fampahalalana momba ny fampiharana ao amin'ny cluster, fa ny Helm 3 dia handray ny fanovana ary handefa ny fampiharana vaovao ho an'ny fametrahana.

Fomba 5. Ampiasao ny --recreate-pods switch

Miaraka amin'ny fanalahidy --recreate-pods azonao atao ny manatratra izay nokasainao ho tratrarina tamin'ny fanalahidy --force. Hanomboka indray ireo kaontenera ary, araka ny saryPullPolicy: Politika foana ho an'ny marika farany (mihoatra ny amin'ity ao amin'ny fanamarihana ambany pejy etsy ambony), Kubernetes dia hisintona sy hamoaka dikan-tsary vaovao. Tsy ho vita amin'ny fomba tsara indrindra izany: raha tsy miraharaha ny StrategyType amin'ny fametrahana, dia hovonoiny tampoka ireo ohatra taloha rehetra ary hanomboka hamoaka vaovao. Mandritra ny fanombohana dia tsy mandeha ny rafitra, hijaly ny mpampiasa.

Ao amin'ny Kubernetes mihitsy, nisy olana mitovy amin'izany koa efa ela. Ary izao, 4 taona taorian'ny fanokafana Olana, voavaha ny olana, ary manomboka amin'ny version 1.15 an'ny Kubernetes, dia miseho ny fahafahana manodina pods.

Vonoy tsotra izao ny fampiharana rehetra ny Helm ary mandefa kaontenera vaovao eo akaiky eo. Tsy afaka manao izany amin'ny famokarana ianao, mba tsy hahatonga ny tsy fahampian'ny fampiharana. Izany dia ilaina amin'ny filΓ na fampandrosoana ihany ary tsy azo atao afa-tsy amin'ny tontolon'ny sehatra.

Ahoana ny fanavaozana ny kinova fampiharana amin'ny fampiasana Helm?

Hanova ny soatoavina nalefa tany Helm izahay. Amin'ny ankapobeny, ireo dia soatoavina izay misolo toerana ny mari-pamantarana sary. Amin'ny tranga farany, izay matetika ampiasaina amin'ny tontolo tsy mamokatra, ny fampahalalana azo ovaina dia fanamarihana iray, izay tsy misy ilΓ na azy ho an'ny Kubernetes mihitsy, ary ho an'ny Helm dia ho famantarana ny ilΓ na fanavaozana ny fampiharana. Safidy hamenoana ny sandan'ny fanamarihana:

  1. Sanda kisendrasendra mampiasa ny asa mahazatra - {{ randAlphaNum 6 }}.
    Misy fampitandremana: aorian'ny fametrahana isaky ny mampiasa tabilao misy fiovaovana toy izany dia ho tokana ny sandan'ny fanamarihana, ary heverin'i Helm fa misy fiovana. Hita fa hamerina ny fampiharana foana izahay, na dia tsy nanova ny dikan-ny. Tsy misy fanakianana izany, satria tsy hisy ny fiatoana, fa mbola tsy mahafinaritra.
  2. Apetaho ny ankehitriny daty sy ora - {{ .Release.Date }}.
    Ny variant dia mitovy amin'ny sanda kisendrasendra misy fari-pitsipika tokana maharitra.
  3. Ny fomba tsara kokoa dia ny fampiasana checksums. Ity no SHA amin'ny sary na ny SHA amin'ny commit farany ao amin'ny git - {{ .Values.sha }}.
    Mila isaina izy ireo ary alefa any amin'ny mpanjifa Helm eo amin'ny lafiny fiantsoana, ohatra ao Jenkins. Raha niova ny fampiharana dia hiova ny checksum. Noho izany, ny Helm dia hanavao ny fampiharana ihany rehefa ilaina.

Andao hamintina ny ezaka ataontsika

  • Ny Helm dia manao fanovana amin'ny fomba faran'izay kely indrindra, ka izay fiovana rehetra eo amin'ny sarin'ny fampiharana ao amin'ny Docker Registry dia tsy hiteraka fanavaozana: tsy hisy na inona na inona hitranga aorian'ny famonoana ny baiko.
  • manan-danja --force ampiasaina hamerenana ny famoahana olana ary tsy mifandray amin'ny fanavaozana an-tery.
  • manan-danja --recreate-pods hanavao ny fampiharana an-keriny, fa hanao izany amin'ny fomba manimba: hamono tampoka ny kaontenera rehetra. Hijaly amin'izany ny mpampiasa; tsy tokony hanao izany ianao amin'ny famokarana.
  • Manaova fiovana mivantana amin'ny cluster Kubernetes amin'ny fampiasana ny baiko kubectl edit aza: handrava tsy miovaova isika, ary ny fitondran-tena dia tsy mitovy arakaraka ny dikan-Helm.
  • Miaraka amin'ny famoahana ny dikan-tenin'ny Helm vaovao, maro ny nuances niseho. Ny olana ao amin'ny tahiry Helm dia voafaritra amin'ny fiteny mazava, hanampy anao hahatakatra ny antsipiriany.
  • Ny fampidirana annotation azo ovaina amin'ny tabilao dia hahatonga azy ho mora kokoa. Izany dia ahafahanao mamoaka ny fampiharana araka ny tokony ho izy, tsy misy fiatoana.

Hevitra iray "fiadanana eran-tany" izay miasa amin'ny lafiny rehetra amin'ny fiainana: vakio ny toromarika alohan'ny hampiasana, fa tsy aorian'izany. Amin'ny fampahalalana feno ihany no ahafahana manangana rafitra azo antoka sy mampifaly ny mpampiasa.

Rohy hafa mifandraika:

  1. Fifandraisana amin'ny fiarovan-doha 3
  2. Tranonkala ofisialy Helm
  3. Ny fitahirizana helm amin'ny GitHub
  4. 25 Fitaovana mahasoa Kubernetes: Fametrahana sy fitantanana

Ity tatitra ity dia naseho voalohany tamin'ny @Kubernetes Conference avy amin'ny Mail.ru Cloud Solutions. Jereo Π²ΠΈΠ΄Π΅ΠΎ fampisehoana hafa ary misoratra anarana amin'ny fanambarana hetsika ao amin'ny Telegram Manodidina ny Kubernetes ao amin'ny Mail.ru Group.

Source: www.habr.com

Add a comment