7 arfer gorau ar gyfer defnyddio cynwysyddion yn Γ΄l Google

Nodyn. traws.: Awdur yr erthygl wreiddiol yw ThΓ©o Chamley, Pensaer Google Cloud Solutions. Yn y swydd hon ar gyfer blog Google Cloud, mae'n darparu crynodeb o ganllaw manylach ei gwmni, o'r enw "Arferion Gorau ar gyfer Cynhwysyddion Gweithredu" Ynddo, casglodd arbenigwyr Google arferion gorau ar gyfer gweithredu cynwysyddion yng nghyd-destun defnyddio'r Google Kubernetes Engine a mwy, gan gyffwrdd ag ystod eang o bynciau: o ddiogelwch i fonitro a logio. Felly beth yw'r arferion cynhwysydd pwysicaf yn Γ΄l Google?

7 arfer gorau ar gyfer defnyddio cynwysyddion yn Γ΄l Google

Peiriant Kubernetes (Gwasanaeth yn seiliedig ar Kubernetes ar gyfer rhedeg cymwysiadau mewn cynhwysyddion ar Google Cloud - tua. traws.) yw un o'r ffyrdd gorau o redeg llwythi gwaith y mae angen eu cynyddu. Kubernetes yn sicrhau gweithrediad llyfn y rhan fwyaf o gymwysiadau os ydynt wedi'u cynwysyddion. Ond os ydych chi am i'ch cais fod yn hawdd ei reoli ac eisiau manteisio'n llawn ar Kubernetes, mae angen i chi ddilyn arferion gorau. Byddant yn symleiddio gweithrediad y cais, ei fonitro a'i ddadfygio, a hefyd yn cynyddu diogelwch.

Yn yr erthygl hon, byddwn yn mynd trwy restr o bethau y dylech eu gwybod a'u gwneud i redeg cynwysyddion yn effeithiol ar Kubernetes. Dylai'r rhai sy'n dymuno mynd yn ddyfnach i fanylion ddarllen y deunydd Arferion Gorau ar gyfer Cynhwysyddion Gweithredu, a hefyd yn talu sylw i'n post cynharach am gydosod cynwysyddion.

1. Defnyddiwch fecanweithiau logio cynwysyddion brodorol

Os yw'r cais yn rhedeg ar glwstwr Kubernetes, nid oes angen llawer ar gyfer logiau. Mae'n debyg bod system logio ganolog eisoes wedi'i chynnwys yn y clwstwr rydych chi'n ei ddefnyddio. Yn achos defnyddio Kubernetes Engine, mae hyn yn gyfrifol Logio Stackdriver. (Nodyn. traws.: Ac os ydych chi'n defnyddio'ch gosodiad Kubernetes eich hun, rydym yn argymell edrych yn agosach ar ein datrysiad Ffynhonnell Agored - ty boncyff.) Cadwch eich bywyd yn syml a defnyddiwch fecanweithiau logio cynwysyddion brodorol. Ysgrifennwch logiau i stdout a stderr - byddant yn cael eu derbyn yn awtomatig, eu cadw a'u mynegeio.

Os dymunir, gallwch hefyd ysgrifennu logiau i Fformat JSON. Bydd y dull hwn yn ei gwneud hi'n hawdd ychwanegu metadata atynt. A chyda nhw, bydd gan Stackdriver Loggging y gallu i chwilio trwy logiau gan ddefnyddio'r metadata hwn.

2. Sicrhewch fod y cynwysyddion yn ddigyfnewid ac yn ddigyfnewid

Er mwyn i gynwysyddion weithredu'n gywir mewn clwstwr Kubernetes, rhaid iddynt fod yn ddigyfnewid ac yn ddigyfnewid. Unwaith y bydd yr amodau hyn wedi'u bodloni, gall Kubernetes wneud ei waith, gan greu a dinistrio endidau cais pan a lle bo angen.

Di-wladwriaeth yn golygu bod unrhyw gyflwr (data parhaus o unrhyw fath) yn cael ei storio y tu allan i'r cynhwysydd. Ar gyfer hyn, yn dibynnu ar yr anghenion, gellir defnyddio gwahanol fathau o storfa allanol: Cloud Storio, Disgiau Parhaus, Redis, Cloud SQL neu gronfeydd data eraill a reolir. (Nodyn. traws.: Darllenwch fwy am hyn yn ein herthygl β€œGweithredwyr ar gyfer Kubernetes: sut i redeg cymwysiadau gwladwriaethol".)

Symudol yn golygu na fydd y cynhwysydd yn cael ei addasu yn ystod ei oes: dim diweddariadau, clytiau, newidiadau cyfluniad. Os oes angen i chi ddiweddaru eich cod cais neu ddefnyddio clwt, crΓ«wch ddelwedd newydd a'i defnyddio. Argymhellir symud y cyfluniad cynhwysydd (porthladd gwrando, opsiynau amgylchedd runtime, ac ati) yn allanol - i Secrets ΠΈ Mapiau Ffurfwedd. Gellir eu diweddaru heb orfod adeiladu delwedd cynhwysydd newydd. Er mwyn creu piblinellau yn hawdd gyda chydosod delwedd, gallwch chi eu defnyddio Adeiladu Cwmwl. (Nodyn. traws.: Rydym yn defnyddio offeryn Ffynhonnell Agored at y dibenion hyn dapp.)

7 arfer gorau ar gyfer defnyddio cynwysyddion yn Γ΄l Google
Enghraifft o ddiweddaru'r cyfluniad Defnyddio yn Kubernetes gan ddefnyddio ConfigMap wedi'i osod mewn codennau fel ffurfwedd

3. Osgoi cynwysyddion breintiedig

Nid ydych chi'n rhedeg cymwysiadau fel gwraidd ar eich gweinyddwyr, iawn? Os bydd ymosodwr yn mynd i mewn i'r cais, bydd yn cael mynediad gwraidd. Mae'r un ystyriaethau yn berthnasol i beidio Γ’ rhedeg cynwysyddion breintiedig. Os oes angen i chi newid gosodiadau ar y gwesteiwr, gallwch chi roi'r cynhwysydd yn benodol galluoedd gan ddefnyddio'r opsiwn securityContext yn Kubernetes. Os oes angen newid sysctls, Kubernetes wedi crynodeb ar wahΓ’n am hyn. Yn gyffredinol, ceisiwch wneud y gorau o ynddo- a chynwysyddion sidecar i gyflawni gweithrediadau breintiedig tebyg. Nid oes angen iddynt fod yn hygyrch i draffig mewnol nac allanol.

Os ydych chi'n gweinyddu clwstwr, gallwch chi ddefnyddio Polisi Diogelwch Podiau am gyfyngiadau ar ddefnyddio cynwysyddion breintiedig.

4. Osgoi rhedeg fel gwraidd

Mae cynwysyddion breintiedig eisoes wedi'u trafod, ond bydd hyd yn oed yn well os, yn ogystal Γ’ hyn, na fyddwch yn rhedeg cymwysiadau y tu mewn i'r cynhwysydd fel gwraidd. Os bydd ymosodwr yn dod o hyd i fregusrwydd o bell mewn cymhwysiad Γ’ hawliau gwraidd sy'n caniatΓ‘u gweithredu cod, ac ar Γ΄l hynny mae'n gallu gadael y cynhwysydd trwy fregusrwydd anhysbys hyd yma, bydd yn ennill gwreiddiau ar y gwesteiwr.

Y ffordd orau o osgoi hyn yw peidio Γ’ rhedeg unrhyw beth fel gwraidd yn y lle cyntaf. I wneud hyn, gallwch ddefnyddio'r gyfarwyddeb USER Π² Dockerfile neu runAsUser yn Kubernetes. Gall gweinyddwr y clwstwr hefyd ffurfweddu'r ymddygiad gorfodi gan ddefnyddio Polisi Diogelwch Podiau.

5. Gwnewch y cais yn hawdd i'w fonitro

Fel logio, mae monitro yn rhan annatod o reoli cymwysiadau. Ateb monitro poblogaidd yn y gymuned Kubernetes yw Prometheus - system sy'n canfod codennau a gwasanaethau sydd angen eu monitro yn awtomatig. (Nodyn. traws.: Gwel hefyd ein adroddiad manwl ar bwnc monitro gan ddefnyddio Prometheus a Kubernetes.) Stackdriver yn gallu monitro clystyrau Kubernetes ac yn cynnwys ei fersiwn ei hun o Prometheus ar gyfer monitro ceisiadau.

7 arfer gorau ar gyfer defnyddio cynwysyddion yn Γ΄l Google
Dangosfwrdd Kubernetes ar Stackdriver

Mae Prometheus yn disgwyl i'r cais anfon metrigau ymlaen i bwynt terfyn HTTP. Ar gael ar gyfer hyn Llyfrgelloedd cleientiaid Prometheus. Defnyddir yr un fformat gan offer eraill fel Cyfrif Agored ΠΈ Istio.

6. Gwneud statws iechyd yr app ar gael

Mae rheoli cymwysiadau wrth gynhyrchu yn cael ei gynorthwyo gan ei allu i gyfathrebu ei gyflwr i'r system gyfan. Ydy'r cais yn rhedeg? Ydy e'n iawn? Ydych chi'n barod i dderbyn traffig? Sut mae e'n ymddwyn? Y ffordd fwyaf cyffredin o ddatrys y broblem hon yw gweithredu gwiriadau iechyd (gwiriadau iechyd). Mae gan Kubernetes ddau fath: chwilwyr bywiogrwydd a pharodrwydd.

Am chwiliwr bywiogrwydd (gwiriadau bywiogrwydd) rhaid i'r cais fod Γ’ diweddbwynt HTTP sy'n dychwelyd ymateb "200 OK" os yw'n ymarferol a bod ei ddibyniaethau sylfaenol yn fodlon. Ar gyfer probe parod (gwiriadau parodrwydd gwasanaeth) rhaid bod gan y cais bwynt terfyn HTTP arall sy'n dychwelyd ymateb "200 OK" os yw'r cais mewn cyflwr iach, mae'r camau cychwyn wedi'u cwblhau ac nid yw unrhyw gais dilys yn arwain at wall. Bydd Kubernetes ond yn cyfeirio traffig i'r cynhwysydd os yw'r cais yn barod yn Γ΄l y gwiriadau hyn. Gellir uno dau bwynt terfyn os nad oes gwahaniaeth rhwng y cyflyrau bywiogrwydd a pharodrwydd.

Gallwch ddarllen mwy am hyn yn yr erthygl gysylltiedig gan Sandeep Dinesh, Eiriolwr Datblygwr o Google: β€œArferion gorau Kubernetes: Sefydlu gwiriadau iechyd gyda chwilwyr parodrwydd a bywiogrwydd'.

7. Dewiswch fersiwn eich delwedd yn ofalus

Mae'r rhan fwyaf o ddelweddau cyhoeddus a phreifat yn defnyddio system dagio sy'n debyg i'r un a ddisgrifir ynddo Arferion Gorau ar gyfer Adeiladu Cynhwysyddion. Os yw'r ddelwedd yn defnyddio system sy'n agos at fersiwn semantig, mae angen ystyried manylion y tagio. Er enghraifft, tag latest yn gallu symud yn aml o ddelwedd i ddelwedd - ni ellir dibynnu arno os oes angen adeiladau a gosodiadau rhagweladwy ac ailadroddadwy arnoch.

Gallwch ddefnyddio'r tag X.Y.Z (maen nhw bron bob amser yn ddigyfnewid), ond yn yr achos hwn, cadwch olwg ar yr holl glytiau a diweddariadau i'r ddelwedd. Os oes gan y ddelwedd rydych chi'n ei defnyddio dag X.Y, mae hwn yn opsiwn da ar gyfer y cymedr euraidd. Trwy ei ddewis, rydych chi'n derbyn clytiau'n awtomatig ac ar yr un pryd yn dibynnu ar fersiwn sefydlog y cais.

PS gan y cyfieithydd

Darllenwch hefyd ar ein blog:

Ffynhonnell: hab.com

Ychwanegu sylw