Baaritaannada nolosha ee Kubernetes waxay noqon karaan khatar

Ogow. turjumiInjineer sare oo ka socda Zalando, Henning Jacobs, ayaa si isdaba joog ah u ogaaday dhibaatooyinka ka dhex jira isticmaalayaasha Kubernetes ee fahamka ujeedada noolaanshaha (iyo u diyaarsanaanta) baaritaannada iyo isticmaalkooda saxda ah. Sidaa darteed, waxa uu ku soo ururiyay fikirradiisa qoraalkan awoodda leh, kaas oo aakhirka noqon doona qayb ka mid ah dukumeentiyada K8s.

Baaritaannada nolosha ee Kubernetes waxay noqon karaan khatar

Baaritaannada caafimaadka, oo loo yaqaan Kubernetes sida baaritaanno nololeed (tusaale ahaan, macno ahaan, "tijaabooyin wax-ku-ool ah" - qiyaastii. tarjumaad), waxay noqon kartaa mid khatar ah. Waxaan ku talinayaa inaad iska ilaaliso haddii ay suurtagal tahay: waxa kaliya ee ka reeban waa marka ay dhab ahaantii lagama maarmaan yihiin oo aad si buuxda uga warqabto waxyaabaha gaarka ah iyo cawaaqibka isticmaalkooda. Daabacaaddani waxay ka hadli doontaa noolasha iyo hubinta u-diyaargarowga, waxayna sidoo kale kuu sheegi doontaa xaaladaha waa u qalantaa waana inaadan isticmaalin.

Saaxiibkay Sandor ayaa dhawaan Twitter-ka kula wadaagay khaladaadka ugu badan ee uu la kulmo, oo ay ku jiraan kuwa la xidhiidha isticmaalka baadhitaannada u diyaarsanaanta/nololeed:

Baaritaannada nolosha ee Kubernetes waxay noqon karaan khatar

Si khaldan loo habeeyey livenessProbe waxay ka sii dari kartaa xaaladaha culeyska sareeyo (xiritaanka kubbadda barafka + weel dheer oo suurtagal ah / wakhtiga bilowga codsiga) oo u horseedi kara cawaaqib xumo kale sida hoos u dhaca ku-tiirsanaanta (sidoo kale eeg maqaalkeygii dhawaa ku saabsan xaddididda tirada codsiyada ee isku darka K3s+ACME). Waxaaba ka sii daran marka baaritaanka nolol-maalmeedka lagu daro baaritaan caafimaad, kaas oo ah xog-ururin dibadeed: hal cilad DB ah ayaa dib u bilaabi doonta dhammaan weelashaada!

Fariinta guud "Ha isticmaalin baaritaanka noolasha" Xaaladdan oo kale wax badan ma caawinayso, markaa aynu eegno waxa u diyaarsanaanta iyo hubinta nolol maalmeedka.

Fiiro gaar ah: Imtixaanka hoose intiisa badan ayaa markii hore lagu daray dukumeentiyada horumariyaha gudaha ee Zalando.

hubinta u diyaarsanaanta iyo Noolaanta

Kubernetes waxay bixisaa laba hab oo muhiim ah oo loo yaqaan baadhitaanada nolol-maalmeedka iyo baadhitaanada diyaar-garowga. Waxay si wakhtiyo ah u fuliyaan qaar ka mid ah ficilada-sida dirida codsiga HTTP, furitaanka xidhiidhka TCP, ama fulinta amarka ku jira weelka - si loo xaqiijiyo in codsigu u shaqeeyo sidii la filayay.

Kubernetes ayaa isticmaala baadhida diyaargarowgasi loo fahmo marka weelku diyaar u yahay inuu aqbalo taraafikada. Boorashka waxaa loo arkaa inuu diyaar u yahay in la isticmaalo haddii dhammaan weeladeedu diyaar yihiin. Mid ka mid ah isticmaalka habkan ayaa ah in la xakameeyo galalka loo isticmaalo dhabarka dambe ee adeegyada Kubernetes (iyo gaar ahaan Ingress).

Baaritaannada nolosha Ka caawi Kubernetes inay fahmaan marka ay tahay waqtigii dib loo bilaabi lahaa weelka. Tusaale ahaan, jeegga noocan oo kale ah wuxuu kuu ogolaanayaa inaad dhexda u gasho xannibaadda marka codsigu ku xayirmo hal meel. Dib u bilaabista weelka ee gobolkan waxa ay caawisaa in codsiga laga saaro dhulka inkasta oo ay khaladaad jiraan, laakiin waxa kale oo ay u horseedi kartaa fashilaadyo (hoos eeg).

Haddii aad isku daydo inaad geyso cusboonaysiinta arjiga ee ku guuldareysta hubinta noolaanshaha/diyaargarowga, soo-bandhigistiisa waa la joojin doonaa iyadoo Kubernetes uu sugayo heerka Ready laga soo bilaabo dhammaan galbadaha.

Tusaale:

Halkan waxaa ah tusaale u ah baaritaanka u diyaarsanaanta ee hubinta dariiqa /health iyada oo loo marayo HTTP oo leh goobaha caadiga ah (bareeg: 10 ilbiriqsi, Waqti go'an: 1 ilbiriqsi, heerka guusha: 1, heerka guuldarada: 3):

# Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ описания deployment'Π°/стСка
podTemplate:
  spec:
    containers:
    - name: my-container
      # ...
      readinessProbe:
        httpGet:
          path: /health
          port: 8080

talooyinka

  1. Loogu talagalay adeegaha yar yar ee leh barta dhamaadka HTTP (REST, iwm.) had iyo jeer qeex baaritaanka diyaargarowga, kaas oo hubinaya in arjiga (pod) uu diyaar u yahay inuu aqbalo taraafikada.
  2. Hubi baaritaanka diyaargarowga daboosho helitaanka dekedda dhabta ah ee server web:
    • Isticmaalka dekedaha ujeedooyinka maamulka, loo yaqaan "admin" ama "management" (tusaale, 9090), readinessProbe, Hubi in barta dhamaadka ay soo noqoto kaliya OK haddii dekedda HTTP aasaasiga ah (sida 8080) ay diyaar u tahay inay aqbasho taraafikada *;

      * Waxaan la socdaa ugu yaraan hal kiis oo ka dhacay Zalando halkaas oo aysan taasi ka dhicin, i.e. readinessProbe Waxaan hubiyay dekedda "maamulka", laakiin server-ka laftiisa ma uusan bilaabin shaqada sababtoo ah dhibaatooyinka soo dejinta cache.

    • ku dhejinta baaritaanka u diyaargarowga deked gaar ah waxay horseedi kartaa xaqiiqda ah in culeyska xad-dhaafka ah ee dekedda weyn uusan ka muuqan doonin hubinta caafimaadka (taas oo ah, barkada dunta ee server-ka ayaa buuxa, laakiin baaritaanka caafimaadka ayaa weli muujinaya in wax walba ay sax yihiin. ).
  3. Hubi in Baadhitaanka u diyaarsanaanta waxa uu suurtageliyaa bilowga/guuritaanka xogta;
    • Habka ugu fudud ee tan lagu gaari karo waa in lala xiriiro server-ka HTTP ka dib marka bilawga la dhammeeyo (tusaale ahaan, ka guurista xogta xogta Flyway iyo wixii la mid ah.); taasi waa, halkii aad ka bedeli lahayd xaaladda hubinta caafimaadka, si fudud ha u bilaabin server-ka webka ilaa socdaalka xogta la dhammeeyo*.

      * Waxa kale oo aad samayn kartaa guuritaanka xogta macluumaadka weelasha init ee ka baxsan boodhka. Weli waxaan ahay taageere codsiyada is-ka kooban, taas oo ah, kuwa weelka codsigu ku garanayo sida loo keeno xogta xogta gobolka la rabo iyada oo aan la helin iskudubarid dibadda ah.

  4. Adeegso httpGet ee hubinta u-diyaargarowga iyada oo la marayo goobaha hubinta caafimaadka caadiga ah (tusaale ahaan, /health).
  5. Faham cabbirka hubinta caadiga ah (interval: 10s, timeout: 1s, successThreshold: 1, failureThreshold: 3):
    • ikhtiyaarada caadiga ah waxay ka dhigan tahay in boodhka uu noqon doono diyaar uma aha 30 ilbiriqsi ka dib (3 hubinta fayo dhawrka oo guuldarraystay).
  6. U isticmaal deked gaar ah "maamulka" ama "maamulka" haddii tiknoolijiyada xidhmooyinku (tusaale Java/Guga) u ogolaato, si loo kala saaro maamulka caafimaadka iyo cabbirka gaadiidka caadiga ah:
    • laakiin ha ilaawin qodobka 2.
  7. Haddii loo baahdo, baaritaanka diyaargarowga waxaa loo isticmaali karaa in lagu diiriyo/ lagu shubo kaydka oo lagu soo celiyo koodka xaaladda 503 ilaa weelka uu kululeeyo:

Qabashada

  1. Ha isku hallayn ku tiirsanaanta dibadda (sida bakhaarrada xogta) marka la wado tijaabooyinka u diyaarsanaanta/noolaanshaha - tani waxay u horseedi kartaa guuldarrooyinka soo noqnoqda:
    • Tusaale ahaan, aan soo qaadano adeeg REST ah oo dawladeed leh 10 pods taas oo ku xidhan hal xogta Postgres: marka jeeggu ku xidhan yahay xidhiidhka shaqada ee DB, dhammaan 10-ka pods ayaa laga yaabaa inay ku guuldareystaan ​​haddii uu jiro dib u dhac ku yimaada shabakada / DB - badiyaa waa oo dhan waxay ku dhammaadaan si ka xun intii ay kari lahayd;
    • Fadlan ogow in Xogta Guga ay si caadi ah u hubiso isku xirka xogta xogta*;

      * Tani waa hab-dhaqanka caadiga ah ee Xogta Spring Redis (ugu yaraan waxay ahayd markii ugu dambeysay ee aan hubiyo), taasoo keentay "masiibo" guuldarro: markii Redis la heli waayay wakhti gaaban, dhammaan boodhadhka "ku shil".

    • β€œDibadda” marka la eego macnahan waxa kale oo ay la macno noqon kartaa gabo kale oo isla arji ah, taas oo ah, sida ugu habboon jeeggu waa in aanu ku xidhnayn xaaladda galbadaha kale ee isku rutka ah si looga hortago shilalka shilalka:
      • Natiijooyinku way ku kala duwanaan karaan codsiyada leh xaalad la qaybiyey (tusaale, kaydinta xusuusta gudaha ee pods).
  2. Ha isticmaalin baaritaanka noolasha for pods (marka laga reebo waa kiisas marka ay runtii lagama maarmaan yihiin oo aad si buuxda uga warqabto waxyaabaha gaarka ah iyo cawaaqibka isticmaalkooda):
    • Baadhitaanka nolol maalmeedku wuxuu kaa caawin karaa soo kabashada weelasha sudhan, laakiin maadaama aad si buuxda u maamusho codsigaaga, waxyaalaha ay ka midka yihiin habsocodyada laalaadiyay iyo xidhidhiyeyaasha waa in aanay dhicin sida ugu habboon: beddelka ugu fiican waa in si ula kac ah loo burburiyo codsiga oo dib loogu soo celiyo xaaladdii hore ee joogtada ahayd;
    • Baadhitaanka nolol-maalmeedka ee guul-darraystay waxay sababi doontaa in weelku dib u bilaabo, taas oo ka sii dari karta saamaynta khaladaadka boot-ku-xiran: dib-u-kicinta weelka waxay keeni doontaa waqti-dhiman (ugu yaraan muddada codsiga bilawga, dheh 30+ ilbiriqsi), taasoo keenaysa khaladaad cusub, kordhinta rarka weelasha kale iyo kordhinta suurtagalnimada fashilkooda, iwm.;
    • hubinta nolol-maalmeedka oo ay weheliso ku-tiirsanaanta dibadda ayaa ah isku-darka ugu xun ee suurtogalka ah, oo khatar gelinaya guul-darrida: dib-u-dhac yar oo ku yimaada kaydka xogta waxay u horseedi doontaa dib-u-bilaabida dhammaan weelashaada!
  3. Halbeegyada noolaanshaha iyo hubinta u-diyaargarowga waa in uu ka duwan yahay:
    • waxaad isticmaali kartaa baaritaanka nolosha oo leh isla hubin caafimaad, laakiin heerka jawaabta sare ah (failureThreshold), tusaale ahaan, u xilsaar heerka diyaar uma aha 3 isku day ka dib oo tixgeli in baaritaanka noloshu uu ku guuldareystay ka dib 10 isku day;
  4. Ha isticmaalin exec checks, maadaama ay la xiriiraan dhibaatooyinka la yaqaan ee keena muuqaalka hababka zombies:

Soo koobid

  • Isticmaal baaritaannada u-diyaargarowga si aad u go'aamiso marka boodhku diyaar u yahay inuu helo taraafikada.
  • Isticmaal baaraha nolol maalmeedka kaliya marka runtii loo baahan yahay.
  • Isticmaalka aan saxda ahayn ee baaritaanada u diyaarsanaanta/nololeed waxay keeni kartaa hoos u dhac ku yimaada helitaanka iyo guul darrooyinka.

Baaritaannada nolosha ee Kubernetes waxay noqon karaan khatar

Waxyaabo dheeraad ah oo ku saabsan mawduuca

Cusbooneysii lambarka 1 laga bilaabo 2019-09-29

Ku saabsan weelasha init ee socdaalka xogta: ayaa lagu daray.

EJ ayaa i xasuusisay ku saabsan PDB: mid ka mid ah dhibaatooyinka hubinta nolol-maalmeedka waa isku-dubbarid la'aanta ka dhaxaysa boodhka. Kubernetes ayaa leh Miisaaniyada Burburinta Pod (PDB) si loo xaddido tirada guul-darrooyinka is-daba-jooga ah ee codsigu la kulmi karo, si kastaba ha ahaatee jeegaggu ma tixgelinayaan PDB. Fikrad ahaan, waxaan u sheegi karnaa K8s inay "dib u bilaabaan hal boodh haddii tijaabadu guuldareysato, laakiin dib ha u bilaabin dhamaantood si aad uga fogaato inay wax ka sii daraan."

Bryan ayaa si fiican u dhigay"Isticmaal baaritaanka nolol-maalmeedka markaad si sax ah u garanayso waxa waxa ugu wanaagsan in la sameeyo waa in la dilo codsiga"(mar kale, ha qaadin).

Baaritaannada nolosha ee Kubernetes waxay noqon karaan khatar

Cusbooneysii lambarka 2 laga bilaabo 2019-09-29

Ku saabsan akhrinta dukumeentiga kahor isticmaalka: Waxaan abuuray codsiga u dhigma (codsi muuqaal ah) in lagu daro dukumeenti ku saabsan baadhitaanada nolosha.

PS ka turjumaan

Sidoo kale ka akhri boggayaga:

Source: www.habr.com

Add a comment