Fa'amauina pu i le fuifui Kubernetes. Lipoti ma tusitusiga mai DevOpsConf

Pavel Selivanov, Southbridge solutions architect and Slurm teacher, gave a presentation at DevOpsConf 2019. O lenei lauga o se vaega o se tasi o autu o le aʻoaʻoga loloto i Kubernetes "Slurm Mega".

Slurm Basic: O se Folasaga i Kubernetes e faia i Moscow ia Novema 18-20.
Slurm Mega: vaʻavaʻai i lalo o le pulou o Kubernetes — Moscow, Novema 22-24.
Slurm Online: kosi e lua Kubernetes avanoa i taimi uma.

I lalo ifo o le tipi o loʻo i ai se faʻamatalaga o le lipoti.

Manuia le aoauli, paaga ma i latou e alolofa ia i latou. O le asō o le a ou talanoa e uiga i le saogalemu.

Ou te vaai atu e toatele leoleo i totonu o le hall i aso nei. Ou te faatoese atu ia te oe i luma atu pe a ou faaaogaina faaupuga mai le lalolagi o le saogalemu e le o se mea e masani ai mo oe.

Na tupu pe a ma le ono masina talu ai na ou tau atu ai i se tasi vaega lautele o Kubernetes. O lona uiga o le lautele o loʻo i ai le numera nth o igoa avanoa; i totonu o nei igoa avanoa o loʻo i ai tagata faʻaoga e vavae ese i latou igoa. O nei tagata fa'aoga uma e iai kamupani eseese. Ia, na manatu e tatau ona faʻaaogaina lenei fuifui o se CDN. O lona uiga, latou te tuʻuina atu ia te oe se fuifui, latou te tuʻuina atu ia te oe se tagata faʻaoga iina, e te alu i ai i lou igoa avanoa, faʻapipiʻi ou luma.

O laʻu kamupani muamua na taumafai e faʻatau atu sea auaunaga. Ma sa talosagaina au e tui le fuifui e vaai pe talafeagai lenei fofo pe leai.

Na ou sau i lenei fuifui. Na tuuina mai ia te au aia tatau faatapulaaina, faatapulaa igoa avanoa. Sa malamalama tama iina po o le a le saogalemu. Na latou faitau e uiga i Role-based access control (RBAC) i Kubernetes - ma na latou mimilo ina ia le mafai ona ou faʻasalalau ese ese mai le faʻapipiʻiina. Ou te le manatua le faafitauli sa ou taumafai e foia e ala i le tatalaina o se pusa e aunoa ma le faʻapipiʻiina, ae sa ou manaʻo e faʻalauiloa na o se pod. Mo le manuia, na ou filifili e vaʻai poʻo a aia tatau o loʻo ia te aʻu i totonu o le fuifui, mea e mafai ona ou faia, mea e le mafai ona ou faia, ma mea na latou faʻafefe ai iina. I le taimi lava e tasi, o le a ou taʻu atu ia te oe le mea na latou faʻaogaina sese i le RBAC.

Na tupu i totonu o le lua minute na ou mauaina ai se pule i la latou fuifui, tilotilo i igoa tuaoi uma, ma iloa ai iina o loʻo faʻatautaia le gaosiga o kamupani ua uma ona faʻatau le auaunaga ma faʻapipiʻiina. Sa tau le mafai ona taofia au mai le alu atu i luma o se tasi ma tuu se upu palauvale i luga o le itulau autu.

O le a ou taʻu atu ia te oe ma faʻataʻitaʻiga pe na faapefea ona ou faia lenei mea ma pe faʻafefea ona puipuia oe mai lenei mea.

Ae muamua, sei ou faailoa atu au lava. O loʻu igoa o Pavel Selivanov. O aʻu o se tusiata i Southbridge. Ou te malamalama i Kubernetes, DevOps ma ituaiga uma o mea manaia. O matou ma le au inisinia a Southbridge o loʻo fausia nei mea uma, ma o loʻo ou faʻatalanoaina.

I le faaopoopo atu i a matou galuega autu, matou te leʻi leva ona faʻalauiloaina ni poloketi e taʻua o Slurms. O loʻo matou taumafai e faʻaopoopo le matou tomai e galulue ai ma Kubernetes i tagata lautele, e aʻoaʻo ai isi tagata e galulue faʻatasi ma K8s.

O le a se mea o le a ou talanoa i ai i le aso? O le autu o le lipoti o loʻo manino - e uiga i le saogalemu o le Kubernetes cluster. Ae ou te fia fai atu i le taimi lava lena o lenei autu e matua tele lava - ma o le mea lea ou te manaʻo e faʻamalamalama vave le mea o le a ou le talanoa i ai. O le a ou le talanoa e uiga i faaupuga hackneyed ua uma ona faʻaaogaina faaselau i luga ole Initaneti. O ituaiga uma o RBAC ma tusi pasi.

O le a ou talanoa e uiga i mea e tiga ai aʻu ma aʻu uo e uiga i le saogalemu i totonu o le Kubernetes cluster. Matou te vaʻai i nei faʻafitauli i le va o kamupani o loʻo tuʻuina atu fuifui Kubernetes ma tagata faʻatau e o mai ia i matou. Ma e oʻo lava mai tagata faʻatau e o mai ia i matou mai isi kamupani faʻatautaia faufautua. O lona uiga, e matua tele lava le fua o le faalavelave.

E tolu lava manatu o le a ou talanoa i ai i le aso:

  1. Aia tatau a tagata fa'aoga vs aia tatau. O aia tatau a le tagata fa'aoga ma aia tatau e le tutusa.
  2. Aoina fa'amatalaga e uiga i le fuifui. O le a ou faʻaalia e mafai ona e aoina uma faʻamatalaga e te manaʻomia mai se fuifui e aunoa ma le iai o aia faʻapitoa i lenei fuifui.
  3. osofaiga a le DoS i le fuifui. Afai e le mafai ona matou aoina faʻamatalaga, o le a mafai ona matou tuʻuina se fuifui i soʻo se tulaga. O le a ou talanoa e uiga i osofaʻiga a le DoS i elemene e pulea faʻapipiʻi.

O le isi mea lautele o le a ou taʻua o le mea na ou faʻataʻitaʻiina uma i luga, lea e mautinoa lava e mafai ona ou fai atu e aoga uma.

Matou te faʻavaeina le faʻapipiʻiina o le Kubernetes cluster e faʻaaoga ai Kubespray. Afai e le iloa e se tasi, o le mea moni o se seti o matafaioi mo Ansible. Matou te faʻaaogaina e le aunoa i la matou galuega. O le mea lelei e mafai ona e ta'avale i so'o se mea - e mafai ona e ta'avale i luga o fasi u'amea po'o totonu o se ao i se mea. E tasi le auala faʻapipiʻi e galue i mataupu faavae mo mea uma.

I lenei fuifui o le a ou maua Kubernetes v1.14.5. O le vaega atoa o le Cube, lea o le a tatou mafaufau i ai, ua vaevaeina i igoa, o igoa taʻitasi e patino i se 'au ese, ma o sui o lenei 'au e maua avanoa i igoa taʻitasi. E le mafai ona latou o atu i igoa eseese, na'o latou lava. Ae o loʻo i ai se faʻamatalaga faʻapitoa e iai aia tatau i le fuifui atoa.

Fa'amauina pu i le fuifui Kubernetes. Lipoti ma tusitusiga mai DevOpsConf

Na ou folafola atu o le mea muamua o le a matou faia o le mauaina lea o aia tatau i le fuifui. Matou te manaʻomia se pusa saunia faʻapitoa e motusia ai le fuifui Kubernetes. Pau lava le mea e tatau ona tatou faia o le faʻaaogaina i le Kubernetes cluster.

kubectl apply -f pod.yaml

O lenei pod o le a taunuu i se tasi o matai o le kulupu Kubernetes. Ma a maeʻa lenei mea o le a toe foʻi mai ma le fiafia le fuifui ia i matou se faila e taʻua admin.conf. I le Cube, o lenei faila e teu uma tusi pasi pule, ma i le taimi lava e tasi e faʻapipiʻi le API faʻapipiʻi. O le faigofie tele lea o le mauaina o le pulega, ou te manatu, 98% o fuifui Kubernetes.

Ou te toe fai atu, o lenei pod na faia e le tasi tagata atiaeina i lau fuifui o loʻo avanoa e faʻapipiʻi ana talosaga i totonu o se igoa laitiiti, o loʻo pipii uma e le RBAC. E leai sana aia tatau. Ae ui i lea na toe faafoi mai le tusi faamaonia.

Ma o lenei e uiga i se pod saunia faapitoa. Matou te taʻavale i luga o soʻo se ata. Sei o tatou ave debian:jessie o se faʻataʻitaʻiga.

E iai a matou mea nei:

tolerations:
-   effect: NoSchedule 
    operator: Exists 
nodeSelector: 
    node-role.kubernetes.io/master: "" 

O le a le faapalepale? O matai i totonu o se fuifui Kubernetes e masani ona faailoga i se mea e taʻua o le taint. Ma o le ute o lenei "faʻamaʻi" o loʻo faʻapea mai e le mafai ona tuʻuina atu pods i nodes matai. Ae leai se tasi e faʻalavelave e faʻaalia i soʻo se pod e faʻapalepale i le "faʻamaʻi". Na'o le fa'apea mai o le vaega o le Toleration, afai e iai le NoSchedule i nisi node, e fa'apalepale la tatou node i se fa'ama'i fa'apea - ma e leai ni fa'afitauli.

E le gata i lea, matou te fai atu o le matou lalo e le gata o le faapalepale, ae e manaʻo foi e faʻatatau i le matai. Aua o matai e iai le mea sili ona suamalie tatou te manaʻomia - tusi pasi uma. O le mea lea, matou te fai atu nodeSelector - ma o loʻo i ai a matou faʻailoga masani i matai, lea e mafai ai ona e filifilia mai nodes uma i le fuifui tonu na nodes o matai.

Faatasi ai ma nei vaega e lua o le a mautinoa lava e sau i le matai. Ma o le a faatagaina o ia e nofo ai iina.

Ae na o le o mai i le matai e le lava mo i tatou. O lenei mea e le maua ai se mea. Ona sosoo ai lea ma a tatou mea nei e lua:

hostNetwork: true 
hostPID: true 

Matou te faʻamaonia o le matou pod, lea matou te faʻalauiloaina, o le a ola i le igoa ole kernel, ile igoa ole upega tafailagi, ma ile PID namespace. O le taimi lava e faʻalauiloa ai le pod i luga o le matai, o le a mafai ona vaʻaia uma mea moni, fesoʻotaʻiga ola o lenei node, faʻalogo i fefaʻatauaiga uma ma vaʻai i le PID o faiga uma.

Ona o se mataupu o mea laiti. Ave etcd ma faitau mea e te manaʻo ai.

O le mea e sili ona manaia o lenei Kubernetes foliga, lea o loʻo iai iina e ala i le faaletonu.

volumeMounts:
- mountPath: /host 
  name: host 
volumes:
- hostPath: 
    path: / 
    type: Directory 
  name: host 

Ma o lona uiga e mafai ona tatou fai atu i totonu o le pod tatou te faʻalauiloa, e tusa lava pe leai ni aia i lenei fuifui, tatou te mananaʻo e fatuina se voluma o ituaiga hostPath. O lona uiga o le ave o le ala mai le talimalo lea o le a tatou faʻalauiloaina - ma avea o se voluma. Ona matou faaigoa lea: talimalo. Matou te faʻapipiʻiina lenei hostPath atoa i totonu o le pod. I lenei faʻataʻitaʻiga, i le / host directory.

Ou te toe faia. Na matou fai atu i le pod e sau i le matai, aumai le hostNetwork ma le hostPID iina - ma faʻapipiʻi le aʻa atoa o le matai i totonu o lenei pod.

E te malamalama o Debian o loʻo taʻavale le taʻavale, ma o lenei bash e taʻavale i lalo o aʻa. O lona uiga, naʻo matou maua aʻa i luga o le matai, e aunoa ma se aia tatau i le vaega Kubernetes.

Ona o le galuega atoa o le alu i le sub directory /host /etc/kubernetes/pki, afai ou te le sese, piki uma tusi pasi o le fuifui iina ma, e tusa ai, avea ma pule o le fuifui.

Afai e te tilotilo i ai i lenei auala, o nisi nei o aia tatau sili ona mataʻutia i totonu o pods - tusa lava poʻo a aia tatau a le tagata faʻaoga:
Fa'amauina pu i le fuifui Kubernetes. Lipoti ma tusitusiga mai DevOpsConf

Afai ei ai a'u aia tatau e fa'agasolo ai se pod i se igoa avanoa o le fuifui, ona iai lea o aiā tatau a lenei pod e ala i le lē mafai. E mafai ona ou taufetuli tulaga taualoa, ma o nei aia tatau uma, toetoe lava a'a i luga o le node.

O le mea e sili ona ou fiafia i ai o le Root user. Ma o Kubernetes e iai le filifiliga Run As Non-Root. O se ituaiga o puipuiga mai se tagata ta'avale. E te iloa o le a le “virus Moldavian”? Afai e faʻafuaseʻi oe o se tagata taʻavale ma sau i laʻu fuifui Kubernetes, ona matou fesili atu lea, le au pulega leaga: "Faʻamolemole taʻu mai i totonu o lau pusa e te faʻaogaina ai laʻu fuifui, tamoe e le o ni aʻa. A leai, o le a tupu e te tamoe i le faagasologa i lou pod i lalo o aʻa, ma o le a matua faigofie mo oe e Hack aʻu. Faamolemole puipuia oe mai ia te oe lava."

O le tele o auala o le talimalo, i loʻu manatu, o le auala sili ona vave e maua ai le taunuuga manaʻomia mai le Kubernetes cluster.

Ae o le a le mea e fai i nei mea uma?

O le manatu e tatau ona oʻo mai i soʻo se pule masani e faʻafeiloaʻi Kubernetes o le: "Ioe, na ou fai atu ia te oe, e le galue Kubernetes. E i ai pu i totonu. Ma o le Cube atoa o se mea valea." O le mea moni, o loʻo i ai se mea e pei o faʻamaumauga, ma afai e te vaʻai i ai, o loʻo i ai se vaega Pod Security Policy.

O le mea lea o le yaml - e mafai ona tatou fatuina i totonu o le Kubernetes cluster - lea e pulea vaega saogalemu i le faʻamatalaga o pods. O lona uiga, o le mea moni, e pulea ai aia tatau e faʻaoga ai soʻo se hostNetwork, hostPID, nisi ituaiga voluma o loʻo i totonu o pods i le amataga. Faatasi ai ma le fesoasoani a Pod Security Policy, o nei mea uma e mafai ona faʻamatalaina.

O le mea e sili ona manaia e uiga i le Pod Security Policy o le i totonu o le Kubernetes cluster, o PSP uma faʻapipiʻi e leʻo faʻamatalaina i soʻo se auala, ua naʻo le le atoatoa ona o le faaletonu. Pod Security Policy e mafai ona faʻaogaina le faʻapipiʻi ulufale.

Lelei, tatou faʻapipiʻi le Pod Security Policy i totonu o le fuifui, seʻi tatou fai atu o loʻo i ai ni a matou tautua i totonu o le igoa, lea e naʻo le au pulega e mafai ona maua. Fa'apea, i isi tulaga uma, e fa'atapula'aina aia tatau a pods. Aua e foliga mai e le manaʻomia e le au atinaʻe le faʻaogaina o pods faʻapitoa i lau fuifui.

Ma e foliga mai o loʻo lelei mea uma ia i matou. Ma e le mafai ona fa'atamaia le matou vaega Kubernetes i le lua minute.

E iai se fa'afitauli. E foliga mai, afai e iai sau vaega Kubernetes, ona faʻapipiʻi lea o le mataʻituina i lau fuifui. Ou te oo lava i le mamao e vaʻai ai afai o lau fuifui e mataʻituina, o le a taʻua o Prometheus.

O le mea o le a ou taʻuina atu ia te oe o le a aoga mo le Prometheus operator ma le Prometheus e tuʻuina atu i lona tulaga mama. O le fesili e faapea afai e le mafai ona ou mauaina se admin i totonu o le fuifui vave, o lona uiga e tatau ona ou suʻeina atili. Ma e mafai ona ou suʻesuʻeina ma le fesoasoani a lau mataʻituina.

Masalo e faitau e tagata uma ia lava tusiga i luga o Habré, ma o le mataʻituina o loʻo i totonu o le igoa mataʻituina. Ole siata foeuli e ta'ua e tutusa lava mo tagata uma. Ou te masalo afai e te faʻapipiʻi le foeuli / prometheus, o le ae faʻaiʻu i igoa tutusa. Ma e foliga mai o le a ou le mateina le igoa DNS i lau fuifui. Aua o le tulaga masani.

Fa'amauina pu i le fuifui Kubernetes. Lipoti ma tusitusiga mai DevOpsConf

O loʻo i ai se matou dev ns, lea e mafai ona e taʻavale ai se pusa faapitoa. Ma mai lenei pod e matua faigofie lava ona fai se mea e pei o lenei:

$ curl http://prometheus-kube-state-metrics.monitoring 

prometheus-kube-state-metrics o se tasi o le Prometheus exporters e aoina fua mai le Kubernetes API lava ia. O loʻo i ai le tele o faʻamatalaga iina, o le a le mea o loʻo taʻavale i lau fuifui, o le a, o a faʻafitauli o loʻo ia te oe.

O se fa'ata'ita'iga faigofie:

kube_pod_container_info{namespace=“kube-system”,pod=”kube-apiserver-k8s- 1″,container=”kube-apiserver”, ata=

"gcr.io/google-containers/kube-apiserver:v1.14.5"

,image_id=»docker-pullable://gcr.io/google-containers/kube- apiserver@sha256:e29561119a52adad9edc72bfe0e7fcab308501313b09bf99df4a96 38ee634989″,container_id=»docker://7cbe7b1fea33f811fdd8f7e0e079191110268f2 853397d7daf08e72c22d3cf8b»} 1

E ala i le faia o se talosaga curl faigofie mai se pusa le lelei, e mafai ona e mauaina faʻamatalaga nei. Afai e te le iloa po'o le a le ituaiga o Kubernetes o lo'o e tamo'e, e faigofie lava ona ta'u atu ia te oe.

Ma o le mea e sili ona manaia o le faʻaopopo i le mauaina o kube-state-metrics, e mafai ona e faigofie ona maua saʻo Prometheus lava ia. E mafai ona e aoina metric mai iina. E mafai fo'i ona e fau metrics mai iina. E oo lava i le manatu, e mafai ona e fausia sea fesili mai se fuifui i Prometheus, lea o le a na ona tape. Ma o lau mata'ituina o le a taofia le galue mai le fuifui atoa.

Ma o iinei e tulaʻi mai ai le fesili pe mataʻituina e se mataʻituina fafo lau mataʻituina. Faatoa ou maua le avanoa e galue ai i se vaega Kubernetes e aunoa ma se taunuuga mo aʻu lava. E te le iloa foi o loʻo ou galue iina, talu ai e le o toe iai se mataʻituina.

E pei lava o le PSP, e foliga mai o le faʻafitauli o nei tekinolosi faʻalelei uma - Kubernetes, Prometheus - latou te le aoga ma e tumu i pu. Pe lava.

E i ai se mea faapena- Faiga Fa'avae.

Afai o oe o se pule masani, e foliga mai e te iloa e uiga i le Network Policy o le isi lea ufi, lea ua tele naua i le fuifui. Ma e mautinoa lava e le manaʻomia nisi o Faiga Faʻavae Network. Ma e tusa lava pe e te faitau pe o le a le Network Policy, o le yaml firewall a Kubernetes, e mafai ai ona e faʻatapulaʻaina aia tatau i le va o igoa, i le va o pods, ona e mautinoa lava lea o le firewall i le yaml format i Kubernetes e faʻavae i luga o le isi abstractions. ... Leai, leai . E mautinoa lava e le mana'omia lenei mea.

E tusa lava pe e te leʻi taʻuina atu i au fomaʻi faʻapitoa o le faʻaaogaina o au Kubernetes e mafai ona e fausia ai se pa puipui faigofie ma faigofie, ma se mea e sili ona manino i lena mea. Afai latou te leʻi iloa lenei mea ma e te le faʻalavelaveina oe: "Ia, tuʻu mai ia te aʻu, tuʻu mai ia te aʻu ..." Ma i soʻo se tulaga, e te manaʻomia Network Policy e poloka ai le avanoa i nisi nofoaga tautua e mafai ona toso mai lau fuifui. e aunoa ma se faatagaga.

E pei o le faʻataʻitaʻiga na ou tuʻuina atu, e mafai ona e tosoina i luga kube state metrics mai soʻo se igoa avanoa i le Kubernetes cluster e aunoa ma se aia tatau e faia ai. O faiga faʻavae fesoʻotaʻiga ua tapunia avanoa mai isi igoa igoa uma i le vaʻaiga mataʻituina ma o le mea lena: leai se avanoa, leai ni faʻafitauli. I siata uma o loʻo i ai, o le Prometheus masani ma le Prometheus o loʻo i totonu o le tagata faʻatautaia, o loʻo i ai naʻo se filifiliga i le tau o le foe e faʻataga ai faiga faʻavae mo latou. E tatau lava ona e ki ma o le a latou aoga.

E tasi lava le faafitauli iinei. I le avea ai ma se pule 'ava masani, e foliga mai na e filifili e le mana'omia ni faiga fa'aoga. Ma ina ua uma ona faitau ituaiga uma o tala i luga o punaoa e pei o Habr, na e filifili o le ieie, aemaise lava i le talimalo-gateway mode, o le mea sili lea e mafai ona e filifilia.

O le a se mea e tatau ona ou faia?

E mafai ona e taumafai e toe fa'aogaina le fofo feso'ota'iga o lo'o ia te oe i lau kulupu Kubernetes, taumafai e sui i se mea e sili atu ona aoga. Mo le Calico lava e tasi, mo se faʻataʻitaʻiga. Ae ou te fia fai atu i le taimi lava lena o le galuega o le suia o le fofo fesoʻotaʻiga i totonu o le Kubernetes o loʻo galue faʻapipiʻi e matua le taua. Na ou foia faalua (o taimi uma e lua, peitaʻi, faʻapitoa), ae na matou faʻaalia foi le auala e fai ai i Slurms. Mo a matou tamaiti aʻoga, na matou faʻaalia pe faʻafefea ona sui le fofo fesoʻotaʻiga i totonu o le Kubernetes cluster. I le faʻavae, e mafai ona e taumafai e faʻamautinoa e leai se taimi faʻaletonu i luga o le gaosiga o le gaosiga. Ae masalo e te le manuia.

Ma o le faafitauli e matua faigofie lava ona foia. E iai tusipasi i le fuifui, ma e te iloa o le a muta lau tusi pasi ile tausaga. Ia, ma e masani lava o se fofo masani ma tusi faamaonia i totonu o le fuifui - aisea tatou te popole ai, o le a tatou siitia se fuifui fou lata ane, tuʻu le mea tuai e pala, ma toe faʻaleleia mea uma. E moni, a pala, e tatau ona tatou nonofo mo se aso, ae o se fuifui fou lea.

A e sii i luga se fuifui fou, i le taimi lava e tasi fa'aofi le Calico nai lo le ieie.

O le a le mea e fai pe a tuʻuina atu au tusi pasi mo le selau tausaga ma e te le toe faʻaaogaina le fuifui? E i ai se mea e pei o Kube-RBAC-Proxy. O se atinaʻe sili ona manaia, e mafai ai ona e faʻapipiʻi o ia lava o se pusa taʻavale i soʻo se pusa i totonu o le Kubernetes cluster. Ma e faʻaopoopo moni ai le faʻatagaina i lenei pod e ala i le RBAC o Kubernetes lava ia.

E tasi le faafitauli. I le taimi muamua, o lenei Kube-RBAC-Proxy solution na fausia i totonu ole Prometheus a le tagata faʻatautaia. Ae ua alu ese. O lo'o fa'alagolago nei lomiga fa'aonaponei i le mea moni e iai sau faiga fa'avae feso'ota'iga ma tapuni e fa'aoga ai. Ma o lea e tatau ai ona tatou toe tusia teisi le siata. O le mea moni, afai e te alu i lenei faleoloa, o loʻo i ai faʻataʻitaʻiga o le faʻaogaina o lenei mea e fai ma taʻavale, ma o siata e tatau ona toe tusia sina mea itiiti.

E tasi le isi fa'afitauli itiiti. E le na'o le Prometheus e tu'uina atu ana fua fa'atatau i so'o se tasi. E mafai fo'i ona toe fa'afo'i mai a latou lava fua fa'atatau.

Ae pei ona ou fai atu, afai e le mafai ona e mauaina le fuifui ma aoina faʻamatalaga, ona mafai lea ona e faia se mea leaga.

O lea o le a vave ona ou faʻaalia ni auala se lua pe faʻafefea ona faʻaleagaina se fuifui Kubernetes.

E te ata pe a ou taʻu atu ia te oe lenei mea, o mea moni ia e lua o le olaga.

Metotia tasi. Fa'aitiitia puna'oa.

Se'i o tatou fa'alauiloa se isi pod fa'apitoa. O le ai ai se vaega e pei o lenei.

resources: 
    requests: 
        cpu: 4 
        memory: 4Gi 

E pei ona e iloa, o talosaga o le aofaʻi o le PPU ma le manatua o loʻo faʻapolopolo i luga o le talimalo mo pods faʻapitoa ma talosaga. Afai ei ai se matou talimalo e fa-core i totonu o le Kubernetes cluster, ma e fa CPU pods e taunuu i ai ma talosaga, o lona uiga e le toe mafai ona o mai ni pods ma talosaga i lenei talimalo.

Afai ou te tamoe i sea pod, ona ou faia lea o le poloaiga:

$ kubectl scale special-pod --replicas=...

Ona leai lea o se isi e mafai ona faʻapipiʻi i le vaega Kubernetes. Aua o nodes uma o le a leai ni talosaga. Ma o le a ou taofia lau fuifui Kubernetes. Afai ou te faia lenei mea i le afiafi, e mafai ona ou taofia le faʻapipiʻiina mo se taimi umi.

Afai tatou te toe tilotilo i le Kubernetes pepa, o le a tatou vaʻai i le mea lea e taʻua o le Limit Range. Na te seti punaoa mo mea faʻapipiʻi. E mafai ona e tusia se mea Limit Range i yaml, fa'aoga i ni igoa fa'apitoa - ona i ai lea i totonu o le igoa lea e mafai ona e fa'apea atu o lo'o i ai sau fa'aletonu, maualuga ma maualalo punaoa mo pods.

Faatasi ai ma le fesoasoani a se mea faapena, e mafai ona tatou faʻatapulaʻaina tagata faʻaoga i igoa o oloa faʻapitoa o 'au i le mafai ona faʻaalia ituaiga uma o mea leaga i luga o latou pods. Ae o le mea e leaga ai, e tusa lava pe e te taʻu atu i le tagata faʻaoga e le mafai ona latou faʻalauiloaina pods ma talosaga mo le sili atu ma le tasi le PPU, o loʻo i ai se faʻatonuga matagofie tele, pe mafai ona latou faia fua i luga o le dashboard.

Ma o iinei e sau ai le auala numera lua. Matou te tatalaina le 11 pods. E sefulutasi piliona lena. E le faapea ona sa ou sau i se numera faapena, ae ona sa ou vaai lava i ai.

Tala moni. O le leva o le afiafi sa ou sauni e alu ese mai le ofisa. Ou te vaʻai i se vaega o atinaʻe o loʻo nonofo i le tulimanu, o loʻo faia ma le faʻafefe se mea ma a latou komepiuta komepiuta. Ou te alu atu i tama ma fesili atu: “O le a le mea na tupu ia te outou?”

I se taimi muamua atu, pe tusa o le iva i le afiafi, na sauni ai se tasi o le au atinaʻe e alu i le fale. Ma na ou filifili: "O le a ou faʻaititia laʻu talosaga i lalo i le tasi." Sa ou oomiina le tasi, ae sa faifai malie le Initoneti. Na ia toe oomi le tasi, na ia oomi le tasi, ma kiliki le Enter. Sa ou taumafai i mea uma ou te mafaia. Ona ola mai lea o le Initaneti - ma na amata ona faʻaititia mea uma i lenei numera.

E moni, o lenei tala e leʻi tupu i Kubernetes, i lena taimi o Nomad. Na iu i le mea moni e faapea, ina ua mavae se itula o a matou taumafaiga e taofi Nomad mai taumafaiga faifai pea e fua, na tali mai Nomad o le a ia le taofia le scaling ma o le a le faia se isi mea. "Ua ou lelava, ua ou alu." Ma sa ia faapupuu i luga.

E masani lava, sa ou taumafai e fai le mea lava e tasi i Kubernetes. Sa le fiafia Kubernetes i le sefulutasi piliona pods, na ia fai mai: "Ou te le mafai. E sili atu i puipui gutu i totonu." Ae 1 pods e mafai.

I le tali atu i le tasi piliona, e leʻi alu ese le Cube i totonu ia te ia lava. Na amata moni lava ona fa'afua. O le umi o le faagasologa, o le tele foi o le taimi na ia faia e fai ai ni pusa fou. Ae sa faaauau pea le faagasologa. Pau lava le faʻafitauli pe afai e mafai ona ou faʻalauiloaina pods e le gata i loʻu igoa, e tusa lava pe leai ni talosaga ma tapulaʻa e mafai ona ou faʻalauiloaina le tele o pods ma nisi o galuega e faʻatasi ai ma le fesoasoani o nei galuega o le a amata ona faʻaopoopoina le pona i le mafaufau, i le PPU. A ou faʻalauiloaina le tele o pods, o faʻamatalaga mai ia i latou e tatau ona alu i le teuina, o lona uiga, etcd. Ma a tele naua faʻamatalaga e oʻo mai iina, o le teuina o mea e amata ona toe foʻi lemu - ma Kubernetes amata ona faʻavaivai.

Ma le isi faʻafitauli ... E pei ona e iloa, o elemene pulea Kubernetes e le o se mea tutotonu, ae tele vaega. Aemaise lava, o loʻo i ai se pule faʻatonu, faʻatulagaina, ma isi. O nei tama uma o le a amata ona faia galuega le talafeagai, valea i le taimi e tasi, lea i le aluga o taimi o le a amata ona faʻaalu atili ma sili atu le taimi. O le pule pule o le a faia ni pods fou. O le a taumafai le scheduler e su'e se node fou mo latou. E foliga mai o le a leai ni nodes fou i lau fuifui i se taimi lata mai. Ole vaega ole Kubernetes ole a amata ona fa'agesegese ma fa'agesegese.

Ae na ou filifili e agai i luma. E pei ona e iloa, i Kubernetes o loʻo i ai se mea e taʻua o se auaunaga. Ia, ona o le faaletonu i au fuifui, e foliga mai, o le auaunaga e galue i le faʻaaogaina o laulau IP.

Afai e te ta'avale tasi piliona pods, mo se fa'ata'ita'iga, ona fa'aaoga lea o se tusitusiga e fa'amalosia ai Kubernetis e fai ni auaunaga fou:

for i in {1..1111111}; do
    kubectl expose deployment test --port 80  
        --overrides="{"apiVersion": "v1", 
           "metadata": {"name": "nginx$i"}}"; 
done 

I nodes uma o le fuifui, o le a sili atu ma sili atu tulafono iptables fou o le a gaosia pe tusa o le taimi e tasi. E le gata i lea, e tasi le piliona iptables tulafono o le a gaosia mo auaunaga taitasi.

Sa ou siakiina lenei mea atoa i le tele o afe, e oo atu i le sefulu. Ma o le faʻafitauli o lea ua i ai i lenei laasaga e fai lava si faʻafitauli e fai ssh i le node. Aua o afifi, e ui atu i le tele o filifili, e amata ona lagona le le lelei.

Ma o lenei foi, ua foia uma i le fesoasoani a Kubernetes. O lo'o i ai se mea fa'atatau o Punaoa. Seti le numera o punaoa avanoa ma mea faitino mo le igoa avanoa i le fuifui. E mafai ona tatou fatuina se mea yaml i igoa taʻitasi o le kulupu Kubernetes. I le faʻaaogaina o lenei mea, e mafai ona tatou fai atu o loʻo i ai se numera o talosaga ma tapulaʻa ua tuʻuina atu mo lenei igoa, ona mafai lea ona tatou fai atu i totonu o lenei igoa avanoa e mafai ai ona fatuina 10 auaunaga ma 10 pods. Ma e mafai e se tagata faʻapipiʻi e toʻatasi ona titina o ia lava i afiafi. O le a taʻu atu e Kubernetes ia te ia: "E le mafai ona e fuaina au pusa i lena aofaiga, aua o le punaoa e sili atu i le quota." O le mea lena, ua foia faafitauli. Fa'amaumauga iinei.

E tasi le itu fa'afitauli e tula'i mai i lea tulaga. E te lagona le faigata o le faia o se igoa avanoa ile Kubernetes. Ina ia fatuina, e tatau ona tatou mafaufau i le tele o mea.

Tulaga fa'asoa + Fa'atapula'a Va'aiga + RBAC
• Fausia se igoa avanoa
• Fausia se laina tapulaa i totonu
• Fausia i totonu o punaoaquota
• Fausia se account account mo CI
• Fausia fa'atasiga mo CI ma tagata fa'aoga
• Fa'ata'ita'i le avanoa e fa'ata'atia ai 'au'aunaga mana'omia

O le mea lea, ou te fia faʻaogaina lenei avanoa e faʻasoa atu ai aʻu atinaʻe. O loʻo i ai se mea e taʻua o le SDK operator. Ole auala lea mo le vaega Kubernetes e tusi ai tagata fa'agaioiga mo ia. E mafai ona e tusia faʻamatalaga e faʻaaoga ai le Ansible.

I le taimi muamua na tusia i le Ansible, ona ou vaʻaia ai lea o loʻo i ai se faʻalapotopotoga SDK ma toe tusia le matafaioi Ansible i se faʻalapotopotoga. O lenei faʻamatalaga e mafai ai ona e fatuina se mea i totonu o le Kubernetes cluster e taʻua o se poloaiga. I totonu o se poloaiga, e mafai ai ona e faʻamatalaina le siosiomaga mo lenei poloaiga ile yaml. Ma i totonu o le siosiomaga o le 'au, e mafai ai ona matou faʻamatalaina o loʻo matou tuʻuina atu le tele o punaoa.

Laititi fa'afaigofieina lenei faiga lavelave atoa.

Ma i le faaiuga. O le a le mea e fai i nei mea uma?
Tulaga tasi. Pod Security Policy e lelei. Ma e ui lava i le mea moni e leai se tasi o Kubernetes faʻapipiʻi faʻaaogaina e oʻo mai i lenei aso, e manaʻomia pea ona e faʻaogaina i au fuifui.

Faiga Fa'akomepiuta e le na'o se isi mea e le mana'omia. Ole mea lea e mana'omia tele ile fuifui.

LimitRange/ResourceQuota - ua o'o i le taimi e fa'aoga ai. Na matou amata faʻaaogaina lenei mea i se taimi ua leva, ma mo se taimi umi na ou mautinoa o loʻo faʻaaogaina e tagata uma. Na aliali mai e seasea.

I le faaopoopo atu i mea na ou taʻua i le taimi o le lipoti, o loʻo i ai faʻamatalaga e le faʻamaonia e mafai ai ona e osofaʻia le fuifui. Fa'asalalau talu ai nei su'esu'ega lautele o fa'aletonu Kubernetes.

O nisi mea e matua faanoanoa ma tiga. Mo se faʻataʻitaʻiga, i lalo o nisi tulaga, cubelets i totonu o le Kubernetes cluster e mafai ona tuʻuina atu mea o loʻo i totonu o le warlocks directory i se tagata e le faʻatagaina.

iinei O loʻo i ai faʻatonuga i le auala e toe gaosia ai mea uma na ou taʻu atu ia te oe. O lo'o iai faila ma fa'ata'ita'iga fa'atino o foliga o ResourceQuota ma Pod Security Policy. Ma e mafai ona e tago i nei mea uma.

Faafetai i tagata uma.

puna: www.habr.com

Faaopoopo i ai se faamatalaga