Faodaidh probes beòthalachd ann an Kubernetes a bhith cunnartach

Thoir an aire. eadar-theangachadh.: Tha prìomh innleadair bho Zalando, Henning Jacobs, air mothachadh a-rithist air duilgheadasan am measg luchd-cleachdaidh Kubernetes ann a bhith a’ tuigsinn adhbhar probes beòthalachd (agus deisealachd) agus an cleachdadh ceart. Mar sin, chruinnich e a bheachdan anns an nota as fheàrr seo, rud a thig gu bhith nam pàirt de sgrìobhainnean K8s.

Faodaidh probes beòthalachd ann an Kubernetes a bhith cunnartach

Sgrùdaidhean slàinte, ris an canar ann an Kubernetes sgrùdairean beòthalachd (i.e., gu litearra, "Deuchainnean Gnìomhachais" - timcheall air. Transl.), faodaidh e a bhith gu math cunnartach. Tha mi a’ moladh an seachnadh ma ghabhas e dèanamh: is e na h-aon eisgeachdan nuair a tha iad dha-rìribh riatanach agus gu bheil thu làn mhothachail air mion-fhiosrachadh agus builean an cleachdadh. Bruidhnidh am foillseachadh seo air beòthalachd agus sgrùdaidhean deòin, agus innsidh e dhut cuideachd dè na cùisean luach e agus cha bu chòir dhut an cleachdadh.

O chionn ghoirid roinn mo cho-obraiche Sandor air Twitter na mearachdan as cumanta a choinnicheas e, a’ toirt a-steach an fheadhainn co-cheangailte ri cleachdadh probes ullachaidh / beòthalachd:

Faodaidh probes beòthalachd ann an Kubernetes a bhith cunnartach

Air a rèiteachadh gu ceàrr livenessProbe faodaidh e suidheachaidhean làn luchd a dhèanamh nas miosa (dùnadh ball-sneachda + ùine tòiseachaidh inneal / tagradh fada a dh’ fhaodadh a bhith ann) agus leantainn gu builean àicheil eile leithid tuiteaman eisimeileachd (Faic cuideachd an artaigil agam o chionn ghoirid mu bhith a’ cuingealachadh na h-àireimh de dh’iarrtasan anns a’ chothlamadh K3s + ACME). Tha e eadhon nas miosa nuair a thèid an probe beòthalachd a chur còmhla ri sgrùdadh slàinte, a tha na stòr-dàta bhon taobh a-muigh: bidh aon teip DB ag ath-thòiseachadh na soithichean agad gu lèir!

Teachdaireachd coitcheann "Na cleachd probes beòthalachd" anns a’ chùis seo chan eil e na chuideachadh mòr, mar sin leig dhuinn sùil a thoirt air cò dha a tha na sgrùdaidhean ullachaidh agus beòthalachd.

Nota: Chaidh a’ mhòr-chuid den deuchainn gu h-ìosal a thoirt a-steach bho thùs ann an sgrìobhainnean leasaiche a-staigh Zalando.

Sgrùdaidhean deòin agus beòthalachd

Tha Kubernetes a 'toirt seachad dà dhòigh chudromach ris an canar Probes beòthalachd agus probes deireannach. Bidh iad bho àm gu àm a’ dèanamh gnìomh sònraichte - leithid a bhith a’ cur iarrtas HTTP, a’ fosgladh ceangal TCP, no a’ cur an gnìomh àithne anns a’ ghobhar - gus dearbhadh gu bheil an tagradh ag obair mar a bhiodh dùil.

Bidh Kubernetes a’ cleachdadh deuchainnean ullachaidhgus tuigsinn cuin a tha an soitheach deiseil airson gabhail ri trafaic. Thathas den bheachd gu bheil pod deiseil airson a chleachdadh ma tha na soithichean uile deiseil. Is e aon chleachdadh den uidheamachd seo smachd a chumail air na pods a thathas a’ cleachdadh mar backendes airson seirbheisean Kubernetes (agus gu sònraichte Ingress).

Probes beòthainn Cuidich Kubernntes a 'tuigsinn nuair a tha an t-àm ann an soitheach ath-thòiseachadh. Mar eisimpleir, leigidh sgrùdadh mar seo leat stad a chuir air stad nuair a thèid tagradh an sàs ann an aon àite. Bidh ath-thòiseachadh an soitheach san stàit seo a 'cuideachadh an tagradh far na talmhainn a dh' aindeoin mearachdan, ach faodaidh e cuideachd leantainn gu fàilligeadh barcading (faic gu h-ìosal)).

Ma dh’ fheuchas tu ri ùrachadh tagraidh a chuir a-steach a dh’ fhàilnich na sgrùdaidhean beòthalachd / ullachaidh, thèid stad a chuir air a sgaoileadh fhad ‘s a tha Kubernetes a’ feitheamh ris an inbhe Ready as a h-uile sìon.

Eisimpleir:

Seo eisimpleir de fhrithealadh deireannach a 'sgrùdadh frith-rathad /health tro HTTP le roghainnean bunaiteach (àm: 10 diog, A 'gabhail fois: 1 diog, stairsneach soirbheachais: 1, stairsneach fàilligeadh:3):

# часть общего описания deployment'а/стека
podTemplate:
  spec:
    containers:
    - name: my-container
      # ...
      readinessProbe:
        httpGet:
          path: /health
          port: 8080

molaidhean

  1. Airson microssvices le scroptpoint http (fois, msaa) an-còmhnaidh a’ mìneachadh probe ullachaidh, a nì sgrùdadh a bheil an tagradh (pod) deiseil airson gabhail ri trafaic.
  2. Dèan cinnteach gu bheil an probe dè cho deònach a 'còmhdach cothrom air an fhìor phort frithealaiche lìn:
    • a’ cleachdadh phuirt airson adhbharan rianachd, ris an canar “admin” no “management” (mar eisimpleir, 9090), airson readinessProbe, dèan cinnteach nach till am puing crìochnachaidh ceart gu leòr ach ma tha am prìomh phort HTTP (mar 8080) deiseil airson gabhail ri trafaic *;

      * Tha mi mothachail air co-dhiù aon chùis ann an Zalando far nach do thachair seo, i.e. readinessProbe Thug mi sùil air a’ phort “stiùiridh”, ach cha do thòisich am frithealaiche fhèin ag obair air sgàth duilgheadasan le luchdachadh an tasgadan.

    • Faodaidh a bhith a 'ceangal probe coileanta do phort air leth gu bheil cus de phort air a nochdadh san t-seic slàinte (ach tha an sgrùdadh slàinte fhathast ceart gu leòr ).
  3. Dèan cinnteach gu bheil Tha probe ullachaidh a’ comasachadh tùsachadh/imrich stòr-dàta;
    • Is e an dòigh as fhasa seo a choileanadh fios a chuir chun t-seirbheisiche HTTP dìreach às deidh an tòiseachadh a bhith deiseil (mar eisimpleir, imrich stòr-dàta bho Slighe-adhair Agus mar sin air adhart.); is e sin, an àite an inbhe sgrùdaidh slàinte atharrachadh, dìreach na tòisich air an fhrithealaiche lìn gus an tèid imrich an stòr-dàta a chrìochnachadh *.

      * Faodaidh tu cuideachd imrich stòr-dàta a ruith bho shoithichean init taobh a-muigh a’ pod. Tha mi fhathast na neach-leantainn de thagraidhean fèin-chuthaichte, is e sin, is e sin an fheadhainn anns a bheil fios anns an neach-tagraidh leis an stàit a tha thu ag iarraidh às aonais co-òrdanachadh a-steach às aonais co-òrdanachadh a-steach don stàit a tha thu ag iarraidh.

  4. Cleachd httpGet airson sgrùdaidhean ullachaidh tro phuingean crìochnachaidh àbhaisteach sgrùdadh slàinte (mar eisimpleir, /health).
  5. Tuig na paramadairean sgrùdaidh bunaiteach (interval: 10s, timeout: 1s, successThreshold: 1, failureThreshold: 3):
    • Tha na roghainnean bunaiteach a 'ciallachadh gum bi am pod a' fàs neo-ullamh Às deidh timcheall air 30 diogan (3 sgrùdaidhean slàintealachd).
  6. Cleachd port air leth airson “admin” no “management” ma cheadaicheas an stac teicneòlais (me Java/Earrach) e, gus riaghladh slàinte is meatrach a sgaradh bho thrafaig àbhaisteach:
    • ach na dìochuimhnich mu phuing 2.
  7. Ma tha feum air, faodar an probe ullachaidh a chleachdadh gus an tasgadan a bhlàthachadh / a luchdachadh agus còd inbhe 503 a thilleadh gus am bi an soitheach a’ blàthachadh:
    • Tha mi cuideachd a’ moladh gun leugh thu an t-seic ùr startupProbe, nochdadh ann an dreach 1.16 (sgrìobh sinn mu dheidhinn ann an Ruisis an seo - mu thuairmeas. eadar-theangachadh.).

Caveats

  1. Na bi an urra ri eisimeileachd bhon taobh a-muigh (leithid stòran dàta) nuair a bhios tu a’ ruith deuchainnean ullachaidh / beòthalachd - faodaidh seo leantainn gu fàilligidhean casgach:
    • Mar eisimpleir, gabhamaid seirbheis stàiteil REST le 10 pods a rèir aon stòr-dàta Postgres: nuair a bhios an t-seic an urra ri ceangal obrach ris an DB, faodaidh na 10 pods uile fàiligeadh ma tha dàil air an lìonra / taobh DB - mar as trice e gach crioch ni's miosa na dh' fhaodadh e ;
    • Thoir an aire gu bheil Spring Data a’ sgrùdadh ceangal an stòr-dàta gu bunaiteach*;

      * Is e seo an giùlan bunaiteach de dhàta earraich a-mach (co-dhiù b 'e seo an turas mu dheireadh a rinn mi a-mach), nuair nach robh Redis ri fhaighinn airson ùine ghoirid, thuit na pods "gu lèir".

    • Faodaidh “taobh a-muigh” san t-seagh seo cuideachd a bhith a’ ciallachadh pods eile den aon iarrtas, is e sin, gu h-iomchaidh cha bu chòir don t-seic a bhith an urra ri staid pods eile den aon bhuidheann gus casg a chuir air tubaistean casadaich:
      • faodaidh toraidhean atharrachadh airson tagraidhean le staid sgaoilte (mar eisimpleir, tasgadh cuimhne ann am pods).
  2. Na cleachd probe beòthachd airson pods (tha eisgeachdan ann nuair a tha iad dha-rìribh riatanach agus gu bheil thu làn mhothachail air mion-fhiosrachadh agus builean an cleachdadh):
    • Faodaidh probe beòthalachd cuideachadh le bhith a’ faighinn air ais soithichean crochte, ach leis gu bheil làn smachd agad air an tagradh agad, cha bu chòir cùisean leithid pròiseasan crochte agus glasan-glasaidh tachairt: is e an roghainn eile an tagradh a mhilleadh a dh’aona ghnothach agus a thoirt air ais gu staid sheasmhach roimhe;
    • bidh probe beòthalachd a dh’ fhàillig ag adhbhrachadh gum bi an soitheach ag ath-thòiseachadh, agus mar sin dh’ fhaodadh e buaidh mhearachdan co-cheangailte ri luchdachadh a dhèanamh nas miosa: bidh ath-thòiseachadh an t-soithich a’ leantainn gu ùine downt (co-dhiù fad ùine tòiseachaidh an tagraidh, can 30-diogan corra), ag adhbhrachadh mhearachdan ùra , a 'meudachadh an luchd air soithichean eile agus a' meudachadh an coltas gum bi iad a 'fàiligeadh, msaa;
    • Is e sgrùdaidhean beòthes a chaidh a chur còmhla ri eisimeileachd taobh a-muigh an co-phàirteach taobh a-muigh, a 'bagairt air fàilligeadh cràbhaidh: bidh dàil bheag air taobh an stòr-dàta a' leantainn gu na soithichean uile!
  3. Paramadairean de sgrùdaidhean beòthalachd agus deòin feumaidh a bhith eadar-dhealaichte:
    • faodaidh tu probe beòthalachd a chleachdadh leis an aon sgrùdadh slàinte, ach stairsneach freagairt nas àirde (failureThreshold), mar eisimpleir, sònraich an inbhe neo-ullamh às deidh 3 oidhirpean agus a’ smaoineachadh gu bheil an probe liveness air fàiligeadh às deidh 10 oidhirpean;
  4. Na cleachd sgrùdaidhean exec, seach gu bheil iad co-cheangailte ri duilgheadasan aithnichte a tha a 'leantainn gu coltas pròiseasan zombie:

Geàrr-chunntas

  • Cleachd probes ullachaidh gus faighinn a-mach cuin a tha pod deiseil airson trafaic fhaighinn.
  • Cleachd probes beòthaid a-mhàin nuair a tha feum mòr aca.
  • Faodaidh cleachdadh neo-iomchaidh de sgrùdairean ullachaidh / beòthalachd leantainn gu ruigsinneachd nas lugha agus fàilligeadh casg.

Faodaidh probes beòthalachd ann an Kubernetes a bhith cunnartach

Stuthan a bharrachd air a ’chuspair

Ùrachadh Àireamh 1 bho 2019-09-29

Mu dheidhinn soithichean tòiseachaidh airson imrich stòr-dàta: bonn-nota air a chur ris.

Chuir EJ nam chuimhne mu PDB: is e aon de na duilgheadasan le sgrùdaidhean beòthalachd an dìth co-òrdanachaidh eadar pods. Tha aig Kubernetes Buidseatan Briseadh Pod (PDB) gus an àireamh de dh’ fhàilligidhean co-aontach a chuingealachadh a dh’ fhaodadh a bhith aig tagradh, ach chan eil na sgrùdaidhean a’ toirt aire don PDB. Mas fheàrr, b’ urrainn dhuinn innse do K8s “aon pod ath-thòiseachadh ma dh’ fhailicheas an deuchainn aige, ach na ath-thòisich iad uile gus cùisean a dhèanamh nas miosa a sheachnadh."

Chuir Bryan e gu foirfe: “Cleachd sgrùdadh beòthalachd nuair a tha fios agad dè dìreach is e an rud as fheàrr ri dhèanamh an tagradh a mharbhadh"(a-rithist, na gabh air falbh).

Faodaidh probes beòthalachd ann an Kubernetes a bhith cunnartach

Ùrachadh Àireamh 2 bho 2019-09-29

A thaobh a bhith a’ leughadh na sgrìobhainnean mus tèid a chleachdadh: chruthaich mi an t-iarrtas co-fhreagarrach (iarrtas feart) sgrìobhainnean a chur ris mu probes beòthalachd.

PS bhon eadar-theangair

Leugh cuideachd air ar blog:

Source: www.habr.com

Cuir beachd ann