E lima misia pe a fa'aogaina le talosaga muamua ile Kubernetes

E lima misia pe a fa'aogaina le talosaga muamua ile KubernetesFai mai Aris Dreamer

E toʻatele tagata e manatu ua lava le tuʻuina atu o le talosaga i Kubernetes (pe faʻaaoga Helm poʻo le lima) - ma o le ai ai le fiafia. Ae le o mea uma e matua faigofie.

au Mail.ru Cloud Solutions faaliliuina se tala a DevOps inisinia Julian Gindy. Na te taʻu mai mea faʻalavelave na feagai ma lana kamupani i le faagasologa o femalagaiga ina ia e le laa i luga o le rake tutusa.

Laasaga Muamua: Seti Talosaga Pod ma Tapulaa

Tatou amata i le fa'atulagaina o se si'osi'omaga mama e fa'amomoe ai a tatou pods. E lelei tele Kubernetes i le faatulagaina o le pod ma le failover. Ae na foliga mai o nisi taimi e le mafai e le tagata faʻatulagaina se pusa pe a faigata ona faʻatusatusa le tele o punaoa e manaʻomia e galue manuia ai. O iina e oso a'e ai talosaga mo punaoa ma tapula'a. E tele felafolafoaiga e uiga i le auala sili e faʻatulagaina ai talosaga ma tapulaʻa. O nisi taimi e foliga mai e sili atu lenei mea o se faatufugaga nai lo se faasaienisi. O la tatou auala lenei.

Pod talosaga o le tau autu lea e faʻaaogaina e le faʻatulagaina e tuʻu lelei ai le pod.

Mai Kubernetes pepa aloaia: O le laasaga faamama e faʻamatalaina ai se seti o nodes e mafai ona faʻatulagaina se Pod. Mo se fa'ata'ita'iga, e siaki e le PodFitsResources faamama e va'ai pe ua lava alagaoa i se node e fa'amalieina ai mana'oga fa'apitoa mai se pod.

Matou te faʻaogaina talosaga talosaga i se auala e mafai ai ona matou faʻatatauina le tele o punaoa i le mea moni E mana'omia e le talosaga ina ia galue lelei. O le auala lea e mafai ai e le tagata fa'atulagaina ona tu'u moni nodes. I le taimi muamua, matou te manaʻo e sili atu le faʻatulagaina o talosaga e faʻamautinoa ai le lava o punaoa mo Pod taʻitasi, ae na matou matauina le faʻatupulaia o le taimi faʻatulagaina, ma o nisi Pods e leʻi faʻatulagaina atoatoa, e pei e leai ni punaoa mo latou.

I lenei tulaga, e masani ona "oomi" e le tagata faʻatulagaina ia pods ma e le mafai ona toe faʻatulagaina aua e leʻi iloa e le vaalele faʻatonutonu le tele o punaoa e manaʻomia e le talosaga, o se vaega autu o le faʻatulagaina algorithm.

Pod tapula'a ose tapulaa manino mo se pod. O lo'o fa'atusalia ai le aofa'i maualuga o puna'oa o le a fa'asoa e le fuifui i le koneteina.

Toe foi, mai pepa aloaia: Afai o se atigipusa o loʻo i ai se tapulaa manatua o le 4 GiB, ona faʻamalosia lea e le kubelet (ma le taimi faʻatulagaina o pusa). O le taimi fa'atino e taofia ai le koneteina mai le fa'aogaina o mea e sili atu nai lo le fa'atapula'a o puna'oa. Mo se faʻataʻitaʻiga, pe a taumafai se faʻagasologa i totonu o se atigipusa e faʻaoga sili atu nai lo le aofaʻi o manatuaga faʻatagaina, e faʻamutaina e le fatu o le polokalama le faʻagasologa ma se mea sese "le manatua" (OOM).

E mafai e se koneteina ona fa'aoga i taimi uma le tele o puna'oa nai lo le mea o lo'o fa'amaoti mai e le mana'oga, ae e le mafai lava ona fa'aoga sili atu nai lo le tapula'a. O lenei tau e faigata ona seti saʻo, ae e taua tele.

O le mea e sili ona lelei, matou te mananaʻo e suia le manaʻoga o punaoa i le taimi o le olaga o se gaioiga e aunoa ma le faʻalavelave i isi gaioiga i totonu o le faiga - o le faʻamoemoega lea o le faʻatulagaina o tapulaʻa.

Ae paga lea, e le mafai ona ou tuʻuina atu ni faʻatonuga faʻapitoa i mea taua e faʻatutu, ae matou te usitaʻia tulafono nei:

  1. I le faʻaaogaina o se meafaigaluega suʻega uta, matou te faʻataʻitaʻiina se tulaga faʻavae o feoaiga ma mataʻituina le faʻaogaina o punaoa pod (manatua ma le gaosiga).
  2. Seti talosaga pod i se tau maualalo (fa'atapula'a puna'oa e tusa ma le 5 taimi le tau o talosaga) ma matau. A o'o i lalo ole tulaga ole talosaga, e le mafai ona amata le fa'agaioiga, e masani ona fa'atupu ai fa'aletonu le taimi e alu ai ile taimi.

Ou te maitauina o tapula'a maualuga e fa'afaigata ai le fa'atulagaina ona e mana'omia e le pod se node fa'atatau ma lava punaoa o lo'o avanoa.

Va'ai faalemafaufau i se tulaga e iai sau 'upega tafaʻilagi mama ma se faʻatapulaʻa punaoa maualuga, pei o le 4 GB o le manatua. O lenei faiga o le a mana'omia le fa'asala'i fa'alava, ma e mana'omia fo'i le fa'atulagaina o pusa fou ta'itasi i luga o se pona ma le itiiti ifo i le 4 GB o le manatua avanoa. Afai e leai se pona fa'apea, e tatau i le fuifui ona fa'aofi mai se pona fou e fa'agasolo ai lenei po, e ono umi se taimi. E taua tele le ausia o se eseesega laʻititi i le va o manaʻoga punaoa ma tapulaʻa e faʻamautinoa ai le vave ma le sologa lelei o le fua.

Laasaga Lua: Seti Su'ega Ola ma Sauniuni

O le isi lea mataupu maaleale e masani ona talanoaina i le nuu o Kubernetes. E taua le i ai o se malamalama lelei i su'ega Liveness ma le Sauniuni aua latou te maua ai se masini mo le fa'aogaina mautu o le polokalama ma fa'aitiitia le ta'ilalo. Ae ui i lea, e mafai ona latou a'afia ai le fa'atinoga o lau talosaga pe a le sa'o le fa'atulagaina. O lo'o i lalo se aotelega o mea ia e lua.

Ola fa'aalia pe o tamo'e le koneteina. Afai e le manuia, e tape e le kubelet le atigipusa ma mafai ai ona toe amata le faiga. Afai e le faʻapipiʻiina le atigipusa i se Liveness Probe, o le tulaga faʻaletonu o le a manuia - e pei ona taʻua i totonu Kubernetes pepa aloaia.

O su'esu'ega Liveness e tatau ona taugofie, o lona uiga e le fa'aaogaina le tele o punaoa, aua latou te tamomoe soo ma e tatau ona logoina Kubernetes o loʻo faʻaogaina le talosaga.

Afai e te setiina le filifiliga e tamoe i sekone taʻitasi, o le a faʻaopoopoina le 1 talosaga i le sekone, o lea ia nofouta o le a manaʻomia nisi punaoa e faʻatautaia ai lenei fefaʻatauaiga.

I la matou kamupani, Liveness suʻega suʻega vaega autu o se talosaga, e tusa lava pe le maua atoatoa faʻamatalaga (mo se faʻataʻitaʻiga, mai se faʻamaumauga mamao poʻo le cache).

Ua matou faʻatulagaina se "soifua maloloina" pito iʻuga i talosaga e naʻo le toe faʻafoʻi mai o se tali tali 200. O se faʻaaliga lea o loʻo faʻagasolo le faagasologa ma mafai ona faʻatautaia talosaga (ae leʻo feoaiga).

Faataʻitaʻiga Tatala fa'ailoa mai pe ua sauni le koneteina e tu'uina atu talosaga. Afai e le manuia le su'esu'ega sauniuni, e aveese e le pule fa'ai'uga le tuatusi IP o le pod mai pito pito o auaunaga uma e fetaui ma le pod. O loʻo taʻua foi lea i le Kubernetes faʻamaumauga.

O su'esu'ega sauniuni e fa'aaoga atili punaoa, aua e tatau ona latou taia le pito i tua i se auala e fa'aalia ai ua sauni le talosaga e talia talosaga.

E tele felafolafoaiga i totonu o le alalafaga pe tatau ona maua saʻo le database. Mafaufau i luga ole ulu (o siaki e masani, ae e mafai ona pulea), na matou filifili mo nisi o talosaga, o le sauni e tautua fefaʻatauaʻiga e naʻo le faitauina pe a maeʻa le siakiina o faʻamaumauga e toe faʻafoʻi mai le database. O fa'ata'ita'iga sauniuni lelei na fa'amautinoa ai le maualuga o le avanoa ma fa'aitiitia ai taimi fa'aletonu i le taimi o le fa'atinoina.

Afai e te filifili e fesiligia le database e suʻe ai le sauni o lau talosaga, ia mautinoa e taugofie pe a mafai. Se'i o tatou fai lenei fesili:

SELECT small_item FROM table LIMIT 1

O se faʻataʻitaʻiga lea o le faʻaogaina o nei tulaga taua e lua i Kubernetes:

livenessProbe: 
 httpGet:   
   path: /api/liveness    
   port: http 
readinessProbe:  
 httpGet:    
   path: /api/readiness    
   port: http  periodSeconds: 2

E mafai ona e fa'aopoopo nisi fa'aopoopo filifiliga fa'aopoopo:

  • initialDelaySeconds - o le a le tele o sekone e alu i le va o le faʻalauiloaina o le pusa ma le amataga o le faʻalauiloaina o suʻega.
  • periodSeconds - taimi faʻatali i le va o faʻataʻitaʻiga taʻavale.
  • timeoutSeconds - le numera o sekone pe a maeʻa ona manatu le pod o se faʻalavelave faʻafuaseʻi. Taimi masani.
  • failureThreshold o le numera o su'ega fa'aletonu a'o le'i tu'uina atu se fa'ailoga toe amata i le pod.
  • successThreshold o le numera o su'ega manuia a'o le'i suia le pod i le tulaga sauni (ina ua le manuia pe a amata pe toe fa'aola le pa).

Laasaga Lona Tolu: Fa'atulagaina o Faiga Fa'atonu a le Pod

O le Kubernetes o loʻo i ai se faʻafanua "faʻasalalau" fesoʻotaʻiga, e ala i le le mafai ona fesoʻotaʻi saʻo uma pods ma isi. I nisi tulaga e le mana'omia.

O se fa'afitauli saogalemu o le mafai lea e se tagata osofa'i ona fa'aogaina se talosaga fa'aletonu se tasi e lafo ai fefa'ataua'iga i pods uma i luga ole feso'otaiga. E pei o le tele o vaega o le saogalemu, o le mataupu faavae o le itiiti ifo avanoa e faʻaaoga iinei. O le tulaga lelei, e tatau ona fa'ailoa manino mai e faiga fa'avae feso'ota'iga po'o fea feso'ota'iga i le va o pods e fa'atagaina ae o fea e le.

Mo se faʻataʻitaʻiga, o loʻo taua i lalo o se faiga faʻavae faigofie e faʻafitia uma fefaʻatauaiga o loʻo oʻo mai mo se igoa faʻapitoa:

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:  
 name: default-deny-ingress
spec:  
 podSelector: {}  
 policyTypes:  
   - Ingress

Va'aiga o lenei fa'atulagaga:

E lima misia pe a fa'aogaina le talosaga muamua ile Kubernetes
(https://miro.medium.com/max/875/1*-eiVw43azgzYzyN1th7cZg.gif)
Faʻamatalaga auiliili iinei.

Laasaga Fa: Amioga Fa'apitoa ma Matau ma Init Containers

O se tasi o matou sini autu o le tuʻuina atu lea o faʻataʻitaʻiga i Kubernetes e aunoa ma se taimi malolo mo tagata atiaʻe. E faigata lenei mea ona e tele filifiliga mo le tapunia o talosaga ma tuʻuina atu a latou punaoa faʻaaogaina.

Na tulai mai ni faigata faapitoa Nginx. Na matou matauina pe a faʻapipiʻi nei Pods i le faʻasologa, o fesoʻotaʻiga malosi na faʻalavelaveina aʻo leʻi maeʻa manuia.

Ina ua maeʻa suʻesuʻega tele i luga ole Initaneti, na faʻaalia ai e le faʻatali Kubernetes mo fesoʻotaʻiga Nginx e faʻavaivaia i latou lava aʻo leʻi tapunia le pod. Faatasi ai ma le fesoasoani a le matau muai taofi, na matou faʻatinoina galuega nei ma faʻaumatia atoa le taimi faʻaletonu:

lifecycle: 
 preStop:
   exec:
     command: ["/usr/local/bin/nginx-killer.sh"]

Ae nginx-killer.sh:

#!/bin/bash
sleep 3
PID=$(cat /run/nginx.pid)
nginx -s quit
while [ -d /proc/$PID ]; do
   echo "Waiting while shutting down nginx..."
   sleep 10
done

O le isi faʻataʻitaʻiga sili ona aoga o le faʻaogaina o pusa init e faʻatautaia ai le faʻalauiloaina o talosaga faʻapitoa. E aoga tele lenei mea pe afai o loʻo i ai sau faʻagasologa o faʻamaumauga faʻamaumauga e manaʻomia tele e tatau ona faʻatautaia aʻo leʻi amataina le talosaga. E mafai fo'i ona e fa'amaoti se tapula'a maualuga a'oa'oga mo lenei faiga e aunoa ma le fa'atulagaina o sea tapula'a mo le talosaga autu.

O le isi faiga masani o le mauaina o mealilo i totonu o le atigipusa init, lea e tuʻuina atu ai nei faʻamaoniga i le module autu, lea e taofia ai le le faʻatagaina avanoa i mealilo mai le faʻaoga autu autu lava ia.

E pei ona masani ai, o se upusii mai le faʻamaumauga: init containers o lo'o fa'agasolo saogalemu le fa'aoga code po'o mea fa'aoga e ono afaina ai le saogalemu o le ata o le pusa talosaga. E ala i le tu'u'ese'ese o meafaigaluega e le mana'omia, e te fa'atapula'aina le osofa'iga o le ata o le pusa o le talosaga.

Laasaga Lima: Kernel Configuration

Mulimuli ane, sei o tatou talanoa e uiga i se metotia sili atu ona maualuga.

O le Kubernetes ose fa'atonuga sili ona fetu'una'i e mafai ai ona e fa'atino galuega mamafa e tusa lava pe e te mana'o e fetaui. E i ai a matou numera o talosaga sili ona lelei e matua'i fa'atumauina a'oa'oga. Ina ua mae'a le su'ega tele o uta, na matou iloa ai o se tasi o talosaga sa faigata ona fa'afetaui le uta fa'amoemoeina o femalagaiga pe a fa'agaoioi le fa'aletonu Kubernetes.

Ae ui i lea, o Kubernetes e faʻatagaina oe e faʻatautaia se pusa faʻapitoa e naʻo le suia o faʻamaufaʻailoga fatu mo se pod patino. O le mea lea na matou faʻaaogaina e sui ai le numera maualuga o fesoʻotaʻiga tatala:

initContainers:
  - name: sysctl
     image: alpine:3.10
     securityContext:
         privileged: true
      command: ['sh', '-c', "sysctl -w net.core.somaxconn=32768"]

O se metotia sili atu ona maualuga lea e masani ona le manaʻomia. Ae afai o lau talosaga o loʻo tauivi e taulimaina se avega mamafa, e mafai ona e taumafai e faʻapipiʻi nisi o nei tulaga. O nisi faʻamatalaga e uiga i lenei faʻagasologa ma le faʻatulagaina o tulaga taua - pei o taimi uma i le pepa aloaia.

I le faaiuga

E ui o Kubernetes e foliga mai o se fofo i fafo atu o le pusa, o loʻo i ai nai laasaga autu e tatau ona faia e faʻatumauina ai talosaga e sologa lelei.

I le taimi atoa o femalagaiga i Kubernetes, e taua le mulimuli i le "taʻamilosaga suʻega uta": faʻatautaia le talosaga, faʻataʻitaʻi i lalo o le uta, mataʻituina le fuaina ma le faʻavasegaina o amioga, fetuunai le faʻatulagaga e faʻavae i luga o nei faʻamatalaga, ona toe fai lea o lenei taamilosaga.

Ia fa'amaoni i felauaiga fa'amoemoeina ma taumafai e alu i tua atu e va'ai po'o fea vaega e malepe muamua. Faatasi ai ma lenei faiga faifaipea, na o ni nai fautuaga o loʻo lisiina atonu e lava e ausia ai le manuia. Pe atonu e manaʻomia ai le faʻavasegaina loloto atili.

Fesili ifo ia te oe lava i fesili nei:

  1. E fia ni alagaoa e fa'aaoga e tusi talosaga ma fa'apefea ona suia lea aofa'iga?
  2. O a mea e mana'omia mo le fuaina? O le a le tele o feoaiga o le a taulimaina e le app i le averesi? Ae faapefea feoaiga maualuga?
  3. O le a le tele o taimi e manaʻomia ai le faʻalauteleina o le auaunaga? O le a le vave e manaʻomia ai le faʻaogaina o pusa fou e maua ai feoaiga?
  4. O le a le matagofie o le tapunia o pods? Pe e tatau lava? E mafai ona ausia le faʻapipiʻiina e aunoa ma se taimi malolo?
  5. E fa'afefea ona fa'aitiitia tulaga lamatia ma fa'atapula'aina le fa'aleagaina mai so'o se pusa fa'aletonu? E iai ni au'aunaga e iai fa'atagaga po'o avanoa latou te le mana'omia?

Kubernetes e tuʻuina atu se tulaga mataʻina e mafai ai ona e faʻaogaina faiga sili ona lelei e faʻapipiʻi ai le faitau afe o auaunaga i totonu o se fuifui. Ae peitai, o talosaga uma e eseese. O nisi taimi o le faʻatinoga e manaʻomia ai sina galuega sili atu.

O le mea e lelei ai, e saunia e Kubernetes tulaga talafeagai e ausia ai sini faʻapitoa uma. I le fa'aogaina o le tu'ufa'atasiga o mana'oga ma tapula'a, su'esu'ega o le Liveness ma le Sauniuni, koneteina init, faiga fa'akomepiuta, ma le fa'alogoina o fatu masani, e mafai ona e ausia le fa'atinoga maualuga fa'atasi ai ma le fa'apalepale fa'aletonu ma fa'avavevave fa'asao.

O le a se isi mea e faitau:

  1. Fa'ata'ita'iga Sili ma Fa'ata'ita'iga Sili mo Container Tafe ma Kubernetes i Si'osi'omaga o Gaosia.
  2. 90+ Meafaigaluega Fa'aoga mo Kubernetes: Fa'atonu, Pulega, Mata'ituina, Saogalemu ma isi mea.
  3. O la matou alalaupapa Around Kubernetes i Telegram.

puna: www.habr.com

Faaopoopo i ai se faamatalaga