He morearea te tirotiro i te oranga i Kubernetes

Tuhipoka. whakamaori.: Ko te Kaitohutohu a Zalando, Henning Jacobs, kua kite i nga raru i waenga i nga kaiwhakamahi Kubernetes ki te mohio ki te kaupapa o te ora (me te reri) rangahau me te whakamahi tika. Na reira, i kohia e ia ona whakaaro ki roto i tenei tuhipoka nui, ka waiho hei waahanga o nga tuhinga K8.

He morearea te tirotiro i te oranga i Kubernetes

Ko nga arowhai hauora, e mohiotia ana i Kubernetes hei rangahau ora (arā, te tikanga, “whakamatautau oranga” - tata ki te whakamaoritanga), he tino kino. Ka tūtohu ahau ki te karo i a raatau mehemea ka taea: ko nga mea rereke ko te wa e tino tika ana ka tino mohio koe ki nga waahanga me nga hua o to raatau whakamahinga. Ka korero tenei panui mo nga arowhai oranga me te hihiko, me te korero ano ki a koe he aha nga keehi he utu a kaua e whakamahia e koe.

Ko taku hoa mahi a Sandor i korero tata nei ki runga i a Twitter nga hapa e pa ana ki a ia, tae atu ki era e pa ana ki te whakamahi i te hihiko/whakatairanga ora:

He morearea te tirotiro i te oranga i Kubernetes

I hē te whirihora livenessProbe ka whakararu ake i nga ahuatanga taumaha (katinga te poihukae + ka roa pea te waa o te ipu/whakaoho tono) ka arahi ki etahi atu hua kino penei i te hekenga o te whakawhirinaki. (tirohia hoki taku tuhinga tata nei mō te whakawhāiti i te maha o ngā tono i roto i te huinga K3s+ACME). He kino rawa atu ka honoa te rangahau ora me te tirotiro hauora, he papaaarangi o waho: kotahi rahunga DB ka timata ano i o ipu katoa!

Karere whanui "Kaua e whakamahi i nga whakamatautau ora" i roto i tenei take kaore i te awhina nui, no reira me titiro ki te aha nga arowhai reri me te ora.

Tuhipoka: Ko te nuinga o nga whakamatautau i raro nei i whakauruhia ki roto i nga tuhinga kaiwhakawhanake a Zalando.

Nga arowhai i te reri me te ora

Ka whakaratohia e Kubernetes nga tikanga nui e rua e kiia ana nga whakamatautau oranga me nga whakamatautau rite. Ka mahia e ratou etahi mahi i ia wa—penei i te tuku tono HTTP, te whakatuwhera i te hononga TCP, te whakahaere whakahau ranei i roto i te ipu—ki te whakaū kei te mahi te tono i runga i te tumanako.

Ka whakamahia e Kubernetes nga rangahau ritekia mohio ai kua reri te ipu ki te whakaae waka. Kei te whakaaro kua reri mo te whakamahi mena kua rite ana ipu katoa. Ko tetahi whakamahinga o tenei tikanga ko te whakahaere ko wai nga poti e whakamahia ana hei tuara mo nga ratonga Kubernetes (otira ko Ingress).

Nga tirotiro oranga awhina i nga Kubernetes kia mohio kua tae ki te wa ki te whakaara ano i te ipu. Hei tauira, ko taua haki ka taea e koe te haukoti i te kati ka mau te tono ki te waahi kotahi. Ko te whakaara ano i te ipu i roto i tenei ahua ka awhina i te tango i te tono mai i te whenua ahakoa nga hapa, engari ka arai ano ki te rahunga rere (tirohia i raro).

Mena ka ngana koe ki te tuku i tetahi whakahōu tono ka taka ki te arowhai ora/reriri, ka mutu tana whakaputanga i te wa e tatari ana a Kubernetes mo te mana. Ready mai i nga peera katoa.

Hei tauira:

Anei he tauira o te maataki reri e taki ana i tetahi ara /health mā HTTP me ngā tautuhinga taunoa (waahi: 10 Hekona, waahi: 1 hēkona, paepae angitu: 1, paepae rahunga:3):

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

tūtohutanga

  1. Mo nga ratonga moroiti me te pito mutunga HTTP (REST, etc.) tautuhi i nga wa katoa he rangahau rerihari, ka tirohia mena kua reri te tono (pod) ki te whakaae waka.
  2. Me whakarite kia rite te tirotiro ka hipoki i te waatea o te tauranga tūmau tukutuku:
    • te whakamahi i nga tauranga mo nga kaupapa whakahaere, ka kiia ko "admin" ranei "whakahaere" (hei tauira, 9090), mo readinessProbe, kia mohio kei te hoki mai te tohu mutunga OK mena kua reri te tauranga HTTP tuatahi (penei i te 8080) ki te whakaae waka*;

      *E mohio ana ahau ki tetahi keehi i Zalando kaore i puta, ara. readinessProbe I tirotirohia e ahau te tauranga "whakahaere", engari kaore i tiimata te mahi na te raru o te utaina o te keteroki.

    • Ko te whakapiri i te tirotiro hihiko ki tetahi tauranga motuhake ka arahi ki te kore e kitea te taumahatanga o te tauranga matua i roto i te tirotiro hauora (ara, kua ki tonu te puna miro i runga i te tūmau, engari ko te tirotiro hauora kei te whakaatu tonu kei te pai nga mea katoa. ).
  3. Tirohia mēnā ka taea e te tirotiro iriri te arawhitinga/te hekenga;
    • Ko te huarahi ngawari ki te whakatutuki i tenei ko te whakapā atu ki te tūmau HTTP i muri i te otinga o te arawhitinga (hei tauira, te heke i te papaunga raraunga mai i Rererangi me etahi atu.); ara, kaua e huri i te mana tirotiro hauora, kaua e timata i te tūmau tukutuku kia oti ra ano te hekenga raraunga*.

      * Ka taea hoki e koe te whakahaere i nga hekenga raraunga mai i nga ipu init kei waho atu o te peera. He powhiriwhiri tonu ahau mo nga tono whai-whaiaro, ara, ko nga mea e mohio ana te ipu tono ki te kawe mai i te paataka korero ki te ahua e hiahiatia ana me te kore he ruruku o waho.

  4. Whakamahia httpGet mo nga arowhai reri na roto i nga waahi arowhai hauora (hei tauira, /health).
  5. Kia mohio ki nga tawhā taki taunoa (interval: 10s, timeout: 1s, successThreshold: 1, failureThreshold: 3):
    • ko nga whiringa taunoa ko te tikanga ka riro te pona kare i reri i muri tata ki te 30 hēkona (e 3 i rahua te arowhai i te noho pai).
  6. Whakamahia he tauranga motuhake mo te "kaiwhakahaere" me te "whakahaere" mena ka whakaaetia e te puranga hangarau (hei tauira. Java/Spring), ki te wehe i te whakahaere hauora me te inenga mai i nga waka auau:
    • engari kaua e wareware ki te wahanga tuarua.
  7. Mena e tika ana, ka taea te whakamahi i te maataki rite ki te whakamahana/ka utaina te keteroki me te whakahoki i te tohu mana 503 kia mahana ra ano te ipu:
    • Ka tūtohu ano ahau kia panui koe i te haki hou startupProbe, i puta i te putanga 1.16 (i tuhia e matou i roto i te reo Russian konei — āhua. whakawhiti.).

Ngā Kaitiaki

  1. Kaua e whakawhirinaki ki nga whakawhirinaki o waho (pēnei i nga whare putunga raraunga) i te wa e whakahaere ana i nga whakamatautau rite/ora - tera pea ka raru te rere:
    • Hei tauira, me tango he ratonga REST whaimana me nga pene 10 kei runga i te paataka korero a Postgres: i te wa e whakawhirinaki ana te haki ki te hononga mahi ki te DB, ka ngaro pea nga pene 10 mena ka roa te taha o te whatunga/DB - ko te tikanga ka mutu nga mea katoa he kino rawa atu;
    • Kia mahara ka tirohia e te Raraunga Puna te hononga raraunga ma te taunoa*;

      * Koinei te whanonga taunoa o te Raraunga Raraunga Raraunga Redis (i te iti rawa ko te wa whakamutunga i tirotirohia e ahau), i puta ai he korenga "catastrophic": i te kore e waatea a Redis mo te wa poto, ka "tukituki" nga poti katoa.

    • "waho" i roto i tenei tikanga ka taea ano te kii i etahi atu peera o te tono kotahi, ara, ko te mea pai kia kaua e whakawhirinaki te haki ki te ahua o etahi atu peera o te kahui kotahi hei aukati i nga tukinga rere:
      • He rereke pea nga hua mo nga tono kua tohatohahia (hei tauira, te keteroki mahara-roto i roto i nga poro).
  2. Kaua e whakamahi i te rangahau ora mo nga pene (ko nga mea rereke ko nga keehi ka tino tika ana ka tino mohio koe ki nga waahanga me nga hua o te whakamahinga):
    • Ka taea e te rangahau ora te whakaora i nga ipu kua whakairihia, engari i te mea kei a koe te mana whakahaere katoa mo to tono, ko nga mea penei me nga tukanga whakairi me nga kati kati me kaua e puta: ko te huarahi pai rawa atu ko te whakakore i te tono me te whakahoki ano ki te ahua o mua;
    • na te korenga o te tirotiro ora ka timata ano te ipu, ka whakaparahako pea i nga hua o nga hapa e pa ana ki te utaina: ko te whakaara ano i te ipu ka mutu te wa (i te iti rawa mo te roanga o te tiimata o te tono, me kii 30-hekona rereke), ka puta he hapa hou. , te whakanui ake i te kawenga i runga i etahi atu ipu me te whakanui ake i te tupono o to ratou kore, me etahi atu;
    • Ko nga arowhai oranga me te whakawhirinakitanga o waho ko te whakakotahitanga kino rawa atu, he whakatumatuma i nga rahunga o te riipene: ka roa te roa o te taha o te paataka raraunga ka timata ano o ipu katoa!
  3. Nga tawhā o te oranga me nga arowhai rerihari me rereke:
    • Ka taea e koe te whakamahi i te tirotiro ora me te tirotiro hauora kotahi, engari he teitei ake te paepae whakautu (failureThreshold), hei tauira, tautapa te mana kare i reri i muri i te 3 nganatanga me te whakaaro kua rahua te rangahau ora i muri i te 10 nganatanga;
  4. Kaua e whakamahi i nga arowhai exec, na te mea e pa ana ki nga raru e mohiotia ana e arahi ana ki te ahua o nga mahi zombie:

Whakarāpopoto

  • Whakamahia nga rangahau reri hei whakatau i te wa e reri ana te putea ki te tuku waka.
  • Whakamahia nga rangahau ora i te wa e tino hiahiatia ana.
  • Ki te kore e tika te whakamahi i nga tirotiro hihiko/ora, ka iti ake te waatea me te rahunga o te rere.

He morearea te tirotiro i te oranga i Kubernetes

He rauemi taapiri mo te kaupapa

Whakahou Nama 1 mai i te 2019-09-29

Mō ngā ipu init mō te hekenga pātengi raraunga: Kua tāpirihia te kīwae.

I whakamahara a EJ ki ahau mo te PDB: ko tetahi o nga raru o te arowhai oranga ko te kore o te ruruku i waenga i nga poti. Kei a Kubernetes Nga Putea Raraunga Pod (PDB) ki te whakawhāiti i te maha o nga rahunga e pa ana ki tetahi tono, engari kaore nga arowhai e whai whakaaro ki te PDB. Ko te mea pai, ka taea e matou te kii atu ki nga K8 kia "Tikia ano tetahi putunga mena ka rahua tana whakamatautau, engari kaua e timata katoa kia kore e kino ake."

He pai te korero a Bryan: “Whakamahia te tirotiro ora ina mohio koe he aha Ko te mea pai ko te patu i te tono"(ano, kaua e mauria atu).

He morearea te tirotiro i te oranga i Kubernetes

Whakahou Nama 2 mai i te 2019-09-29

Mo te panui i nga tuhinga i mua i te whakamahi: I hanga e au te tono e rite ana (tono āhuatanga) ki te taapiri i nga tuhinga mo nga rangahau oranga.

PS mai i te kaiwhakamaori

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero