Arferion gorau Kubernetes. Sefydlu ceisiadau a therfynau adnoddau

Arferion gorau Kubernetes. Creu cynwysyddion bach
Arferion gorau Kubernetes. Sefydliad Kubernetes gyda gofod enwau
Arferion gorau Kubernetes. Dilysu Bywioldeb Kubernetes gyda Phrofion Parodrwydd a Bywioldeb

Ar gyfer pob adnodd Kubernetes, gallwch chi ffurfweddu dau fath o ofyniad - Ceisiadau a Therfynau. Mae'r cyntaf yn disgrifio'r gofynion sylfaenol ar gyfer argaeledd adnoddau nod am ddim sy'n angenrheidiol i redeg cynhwysydd neu god, mae'r ail yn cyfyngu'n llym ar yr adnoddau sydd ar gael i'r cynhwysydd.

Pan fydd Kubernetes yn amserlennu codennau, mae'n bwysig iawn bod gan y cynwysyddion ddigon o adnoddau i weithredu'n iawn. Os ydych chi'n bwriadu defnyddio cymhwysiad mawr ar nod Γ’ chyfyngiad adnoddau, mae'n bosibl na fydd yn rhedeg oherwydd bod y nod yn rhedeg yn isel ar y cof neu'n rhedeg allan o bΕ΅er CPU. Yn yr erthygl hon, byddwn yn edrych ar sut y gallwch chi ddatrys prinder pΕ΅er cyfrifiadurol gan ddefnyddio ceisiadau a therfynau adnoddau.

Mae Ceisiadau a Therfynau yn fecanweithiau y mae Kubernetes yn eu defnyddio i reoli adnoddau fel CPU a chof. Ceisiadau sy'n sicrhau bod y cynhwysydd yn derbyn yr adnodd y gofynnwyd amdano. Os yw cynhwysydd yn gofyn am adnodd, dim ond ar nod a all ei ddarparu y bydd Kubernetes yn ei drefnu. Yn cyfyngu ar reolaeth na fydd yr adnoddau y gofynnir amdanynt gan y cynhwysydd byth yn fwy na gwerth penodol.

Arferion gorau Kubernetes. Sefydlu ceisiadau a therfynau adnoddau

Dim ond hyd at derfyn penodol y gall cynhwysydd gynyddu ei bΕ΅er cyfrifiadurol, ac ar Γ΄l hynny bydd yn gyfyngedig. Gawn ni weld sut mae'n gweithio. Felly, mae dau fath o adnoddau - prosesydd a chof. Mae'r amserlennydd Kubernetes yn defnyddio data am yr adnoddau hyn i ddarganfod ble i redeg eich codennau. Mae manyleb adnodd nodweddiadol ar gyfer pod yn edrych fel hyn.

Arferion gorau Kubernetes. Sefydlu ceisiadau a therfynau adnoddau

Gall pob cynhwysydd mewn pod osod ei ymholiadau a'i derfynau ei hun, mae'r cyfan yn ychwanegyn. Diffinnir adnoddau prosesydd mewn miligorau. Os oes angen dau graidd llawn ar eich cynhwysydd i'w redeg, rydych chi'n gosod y gwerth i 2000m. Os mai dim ond pΕ΅er 1/4 o'r craidd sydd ei angen ar y cynhwysydd, bydd y gwerth yn 250m. Cofiwch, os ydych chi'n aseinio gwerth adnodd CPU sy'n fwy na nifer creiddiau'r nod mwyaf, ni fydd eich pod wedi'i drefnu i ddechrau o gwbl. Bydd sefyllfa debyg yn digwydd os oes gennych chi Pod sydd angen pedwar craidd, ac mae clwstwr Kubernetes yn cynnwys dau brif beiriant rhithwir yn unig.

Oni bai bod eich cais wedi'i ddylunio'n benodol i fanteisio ar greiddiau lluosog (mae rhaglenni fel cyfrifiadura gwyddonol cymhleth a gweithrediadau cronfa ddata yn dod i'r meddwl), yna'r arfer gorau yw gosod Ceisiadau CPU i 1 neu is ac yna rhedeg mwy o atgynyrchiadau i scalability. Bydd yr ateb hwn yn rhoi mwy o hyblygrwydd a dibynadwyedd i'r system.

O ran cyfyngiadau CPU, mae pethau'n dod yn fwy diddorol gan ei fod yn cael ei ystyried yn adnodd cywasgadwy. Os bydd eich cais yn dechrau agosΓ‘u at derfyn pΕ΅er y prosesydd, bydd Kubernetes yn dechrau arafu'ch cynhwysydd gan ddefnyddio CPU Throttling - gan leihau amlder y prosesydd. Mae hyn yn golygu y bydd y CPU yn cael ei throtio'n artiffisial, gan roi perfformiad gwaeth i'r cais, ond ni fydd y broses yn cael ei therfynu na'i dileu.

Diffinnir adnoddau cof mewn beit. Fel arfer mae'r gwerth yn y gosodiadau yn cael ei fesur mewn mebibytes Mib, ond gallwch chi osod unrhyw werth, o beit i petabytes. Mae'r un sefyllfa'n berthnasol yma Γ’'r CPU - os byddwch chi'n gwneud cais am gof sy'n fwy na faint o gof ar eich nodau, ni fydd y pod hwnnw wedi'i amserlennu i weithredu. Ond yn wahanol i adnoddau CPU, nid yw cof yn cael ei gywasgu oherwydd nid oes unrhyw ffordd i gyfyngu ar ei ddefnydd. Felly, bydd gweithrediad y cynhwysydd yn cael ei atal cyn gynted ag y bydd yn mynd y tu hwnt i'r cof a neilltuwyd iddo.

Arferion gorau Kubernetes. Sefydlu ceisiadau a therfynau adnoddau

Mae'n bwysig cofio na allwch ffurfweddu ceisiadau sy'n fwy na'r adnoddau y gall eich nodau eu darparu. Mae manylebau adnoddau a rennir ar gyfer peiriannau rhithwir GKE i'w gweld yn y dolenni isod y fideo hwn.

Mewn byd delfrydol, byddai gosodiadau diofyn y cynhwysydd yn ddigon i gadw llifoedd gwaith i redeg yn esmwyth. Ond nid yw'r byd go iawn felly, gall pobl yn hawdd anghofio ffurfweddu'r defnydd o adnoddau, neu bydd hacwyr yn gosod ceisiadau a chyfyngiadau sy'n fwy na galluoedd gwirioneddol y seilwaith. Er mwyn atal senarios o'r fath rhag digwydd, gallwch chi ffurfweddu cwotΓ’u adnoddau ResourceQuota a LimitRange.

Unwaith y bydd gofod enw wedi'i greu, gellir ei rwystro gan ddefnyddio cwotΓ’u. Er enghraifft, os oes gennych y gofodau enwau prod a dev, y patrwm yw nad oes unrhyw gwotΓ’u cynhyrchu o gwbl a chwotΓ’u datblygu llym iawn. Mae hyn yn caniatΓ‘u prod, yn achos ymchwydd sydyn mewn traffig, i gymryd drosodd yr holl adnodd sydd ar gael, yn gyfan gwbl blocio dev.

Efallai y bydd y cwota adnoddau yn edrych fel hyn. Yn yr enghraifft hon mae 4 adran - dyma 4 llinell waelod y cod.

Arferion gorau Kubernetes. Sefydlu ceisiadau a therfynau adnoddau

Gadewch i ni edrych ar bob un ohonynt. Requests.cpu yw'r nifer uchaf o geisiadau CPU cyfun a all ddod o bob cynhwysydd yn y gofod enw. Yn yr enghraifft hon, fe allech chi gael 50 o gynwysyddion gyda 10m o geisiadau, pum cynhwysydd gyda 100m o geisiadau, neu dim ond un cynhwysydd gyda 500m o geisiadau. Cyn belled Γ’ bod cyfanswm y ceisiadau.cpu o ofod enw penodol yn llai na 500m, bydd popeth yn iawn.

Memory requests.memory yw'r uchafswm o geisiadau cof cyfunol y gall pob cynhwysydd yn y gofod enw eu cael. Fel yn yr achos blaenorol, gallwch gael 50 o gynwysyddion 2 mib, pum cynhwysydd 20 mib, neu un cynhwysydd 100 mib cyn belled Γ’ bod cyfanswm y cof y gofynnir amdano yn y gofod enw yn llai na 100 mebibytes.

Limits.cpu yw'r uchafswm cyfunol o bΕ΅er CPU y gall pob cynhwysydd yn y gofod enw ei ddefnyddio. Gallwn ystyried mai hwn yw terfyn y ceisiadau pΕ΅er prosesydd.

Yn olaf, limit.memory yw'r uchafswm o gof a rennir y gall pob cynhwysydd yn y gofod enw ei ddefnyddio. Mae hwn yn gyfyngiad ar gyfanswm ceisiadau cof.
Felly, yn ddiofyn, mae cynwysyddion mewn clwstwr Kubernetes yn rhedeg gydag adnoddau cyfrifiadurol diderfyn. Gyda chwotΓ’u adnoddau, gall gweinyddwyr clwstwr gyfyngu ar y defnydd o adnoddau a chreu adnoddau yn seiliedig ar ofod enwau. Mewn gofod enw, gall pod neu gynhwysydd ddefnyddio cymaint o bΕ΅er CPU a chof ag a bennir gan y cwota adnoddau gofod enw. Fodd bynnag, mae pryder y gallai un pod neu gynhwysydd fonopoleiddio'r holl adnoddau sydd ar gael. Er mwyn atal y sefyllfa hon, defnyddir amrediad terfyn - polisi ar gyfer cyfyngu ar y dyraniad adnoddau (ar gyfer codennau neu gynwysyddion) yn y gofod enwau.

Mae'r ystod terfyn yn darparu cyfyngiadau a all:

  • Sicrhau defnydd lleiaf ac uchaf o adnoddau cyfrifiadurol ar gyfer pob modiwl neu gynhwysydd yn y gofod enw;
  • gorfodi isafswm ac uchafswm ceisiadau storio Cais SΓͺr ar gyfer pob Cais Cyfrol Parhaus yn y gofod enw;
  • gorfodi perthynas rhwng Cais a Therfyn am adnodd mewn gofod enw;
  • gosod Ceisiadau/Terfynau rhagosodedig ar gyfer cyfrifo adnoddau yn y gofod enwau a'u chwistrellu'n awtomatig i gynwysyddion ar amser rhedeg.

Fel hyn gallwch greu ystod terfyn yn eich gofod enw. Yn wahanol i gwota, sy'n berthnasol i'r gofod enw cyfan, defnyddir Limit Range ar gyfer cynwysyddion unigol. Gall hyn atal defnyddwyr rhag creu cynwysyddion bach iawn neu, i'r gwrthwyneb, enfawr o fewn y gofod enw. Efallai y bydd yr Ystod Cyfyng yn edrych fel hyn.

Arferion gorau Kubernetes. Sefydlu ceisiadau a therfynau adnoddau

Fel yn yr achos blaenorol, gellir gwahaniaethu rhwng 4 adran yma. Gadewch i ni edrych ar bob un.
Mae'r adran ddiofyn yn gosod y terfynau rhagosodedig ar gyfer y cynhwysydd yn y pod. Os ydych chi'n gosod y gwerthoedd hyn i'r ystod eithafol, yna bydd unrhyw gynwysyddion nad yw'r gwerthoedd hyn wedi'u gosod yn benodol ar eu cyfer yn dilyn y gwerthoedd rhagosodedig.

Mae'r adran cais diofyn defaultRequest yn ffurfweddu'r ceisiadau rhagosodedig ar gyfer y cynhwysydd yn y pod. Unwaith eto, os ydych chi'n gosod y gwerthoedd hyn i'r ystod eithafol, yna bydd unrhyw gynwysyddion nad ydynt yn gosod yr opsiynau hyn yn benodol yn rhagosod i'r gwerthoedd hyn.

Mae'r adran uchafswm yn nodi'r terfynau uchaf y gellir eu gosod ar gyfer cynhwysydd yn y pod. Ni ellir gosod gwerthoedd yn yr adran ddiofyn a therfynau cynhwysydd uwchlaw'r terfyn hwn. Mae'n bwysig nodi, os yw'r gwerth wedi'i osod i uchafswm ac nad oes unrhyw adran ddiofyn, yna bydd y gwerth mwyaf yn dod yn werth diofyn.

Mae'r adran leiaf yn nodi'r ceisiadau lleiaf y gellir eu gosod am gynhwysydd mewn pod. Fodd bynnag, ni ellir gosod y gwerthoedd yn yr adran ddiofyn ac ymholiadau ar gyfer y cynhwysydd o dan y terfyn hwn.

Unwaith eto, mae'n bwysig nodi, os yw'r gwerth hwn wedi'i osod, nad yw'n ddiofyn, yna bydd y gwerth lleiaf yn dod yn anogwr rhagosodedig.

Yn y pen draw, defnyddir y ceisiadau adnoddau hyn gan amserlennydd Kubernetes i gyflawni eich llwythi gwaith. Er mwyn i chi ffurfweddu'ch cynwysyddion yn gywir, mae'n bwysig iawn deall sut mae'n gweithio. Gadewch i ni ddweud eich bod am redeg codennau lluosog yn eich clwstwr. Gan dybio bod y manylebau pod yn ddilys, bydd amserlen Kubernetes yn defnyddio cydbwyso robin crwn i ddewis nod i redeg y llwyth gwaith.

Arferion gorau Kubernetes. Sefydlu ceisiadau a therfynau adnoddau

Bydd Kubernetes yn gwirio a oes gan Node 1 ddigon o adnoddau i gyflawni ceisiadau o'r cynwysyddion pod, ac os na fydd, bydd yn symud ymlaen i'r nod nesaf. Os nad yw'r un o'r nodau yn y system yn gallu bodloni'r ceisiadau, bydd y codennau'n mynd i'r cyflwr Arfaethedig. Gan ddefnyddio nodweddion injan Google Kubernetes fel awtoraddio nodau, gall GKE ganfod y cyflwr aros yn awtomatig a chreu sawl nod ychwanegol arall.

Os byddwch wedyn yn rhedeg allan o gapasiti nodau, bydd awtoscaling yn lleihau nifer y nodau i arbed arian i chi. Dyma pam mae Kubernetes yn amserlennu codennau yn seiliedig ar geisiadau. Fodd bynnag, gall y terfyn fod yn uwch na'r ceisiadau, ac mewn rhai achosion gall y nod redeg allan o adnoddau. Rydym yn galw'r wladwriaeth hon yn or-ymrwymiad.

Arferion gorau Kubernetes. Sefydlu ceisiadau a therfynau adnoddau

Fel y dywedais, o ran CPU, bydd Kubernetes yn dechrau cyfyngu ar y codennau. Bydd pob pod yn derbyn cymaint ag y gofynnwyd amdano, ond os na fydd yn cyrraedd y terfyn, bydd sbardun yn dechrau dod yn berthnasol.

O ran adnoddau cof, mae Kubernetes yn cael ei orfodi i wneud penderfyniadau ynghylch pa godennau i'w dileu a pha rai i'w cadw nes i chi ryddhau adnoddau system neu bydd y system gyfan yn chwalu.

Gadewch i ni ddychmygu senario lle mae gennych chi beiriant yn rhedeg allan o gof - sut fyddai Kubernetes yn trin hynny?

Bydd Kubernetes yn chwilio am godennau sy'n defnyddio mwy o adnoddau nag y gofynnwyd amdanynt. Felly os nad oes gan eich cynwysyddion unrhyw Geisiadau o gwbl, mae hynny'n golygu eu bod yn methu Γ’ defnyddio mwy nag y gofynnwyd amdano, yn syml oherwydd nad oeddent wedi gofyn am unrhyw beth o gwbl! Mae cynwysyddion o'r fath yn dod yn brif ymgeiswyr ar gyfer cau. Mae'r ymgeiswyr nesaf yn gynwysyddion sydd wedi bodloni eu holl geisiadau ond sy'n dal yn is na'r terfyn uchaf.

Felly os bydd Kubernetes yn dod o hyd i sawl cod sydd wedi rhagori ar baramedrau eu cais, bydd yn eu didoli yn Γ΄l blaenoriaeth ac yna'n dileu'r codennau blaenoriaeth isaf. Os oes gan bob cod yr un flaenoriaeth, yna bydd Kubernetes yn terfynu'r codennau hynny sy'n fwy na'u ceisiadau yn fwy na'r codennau eraill.

Mewn achosion prin iawn, gall Kubernetes erthylu codennau sy'n dal i fod o fewn cwmpas eu ceisiadau. Gall hyn ddigwydd pan fydd cydrannau system hanfodol fel asiant Kubelet neu Docker yn dechrau defnyddio mwy o adnoddau na'r hyn a gadwyd ar eu cyfer.
Felly, yng nghamau cynnar cwmnΓ―au bach, gall clwstwr Kubernetes weithio'n iawn heb osod ceisiadau a chyfyngiadau adnoddau, ond wrth i'ch timau a'ch prosiectau ddechrau tyfu mewn maint, rydych mewn perygl o fynd i broblemau yn y maes hwn. Ychydig iawn o ymdrech ychwanegol sydd ei angen i ychwanegu ymholiadau a chyfyngiadau at eich modiwlau a gofodau enwau a gall arbed llawer o drafferth.

Arferion gorau Kubernetes. Cau i lawr yn gywir Terfynu

Rhai hysbysebion πŸ™‚

Diolch am aros gyda ni. Ydych chi'n hoffi ein herthyglau? Eisiau gweld cynnwys mwy diddorol? Cefnogwch ni trwy osod archeb neu argymell i ffrindiau, cwmwl VPS i ddatblygwyr o $4.99, analog unigryw o weinyddion lefel mynediad, a ddyfeisiwyd gennym ni ar eich cyfer chi: Y gwir i gyd am VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps o $ 19 neu sut i rannu gweinydd? (ar gael gyda RAID1 a RAID10, hyd at 24 craidd a hyd at 40GB DDR4).

Dell R730xd 2 gwaith yn rhatach yng nghanolfan ddata Equinix Haen IV yn Amsterdam? Dim ond yma 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV o $199 yn yr Iseldiroedd! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - o $99! Darllenwch am Sut i adeiladu seilwaith Corp. dosbarth gyda'r defnydd o weinyddion Dell R730xd E5-2650 v4 gwerth 9000 ewro am geiniog?

Ffynhonnell: hab.com

Ychwanegu sylw