Postgres Labobeli No. 5: "PostgreSQL le Kubernetes. CI/CD. Lekola automation"

Postgres Labobeli No. 5: "PostgreSQL le Kubernetes. CI/CD. Lekola automation"

Qetellong ea selemo se fetileng, ho ile ha etsahala phatlalatso e 'ngoe e phelang ea sechaba sa Russia PostgreSQL #RuPostgres, Nakong eo mothehi-'moho le eona Nikolai Samokhvalov a ileng a bua le Flant mookameli oa theknoloji Dmitry Stolyarov ka DBMS ena ho latela moelelo oa Kubernetes.

Re phatlalatsa sengoloa sa karolo e kholo ea puisano ena, le ho Sechaba sa YouTube mocha Video e felletseng e ngotsoe:

Databases le Kubernetes

NS: Re ke ke ra bua ka VACUUM le CHECKPOINTs kajeno. Re batla ho bua ka Kubernetes. Kea tseba hore u na le boiphihlelo ba lilemo tse ngata. Ke ile ka shebella livideo tsa hau ka ba ka shebella tse ling tsa tsona hape ... Ha re bue ka ho toba ntlheng: hobaneng Postgres kapa MySQL ho K8s ho hang?

ДС: Ha ho na karabo e hlakileng ea potso ena ebile e ke ke ea e-ba teng. Empa ka kakaretso, sena ke bonolo le boiketlo ... bokhoni. E mong le e mong o batla litšebeletso tse laoloang.

NS: Ho joang RDS, lapeng feela?

ДС: E: joalo ka RDS, kae kapa kae.

NS: "Kae kapa kae" ke ntlha e ntle. Lik'hamphaning tse kholo, ntho e 'ngoe le e' ngoe e fumaneha libakeng tse fapaneng. Ke hobane'ng ha, haeba e le k'hamphani e kholo, e sa nke tharollo e lokiselitsoeng? Ka mohlala, Nutanix e na le tsoelo-pele ea eona, lik'hamphani tse ling (VMware ...) li na le "RDS e tšoanang, feela lapeng."

ДС: Empa re bua ka ts'ebetsong e arohaneng e tla sebetsa feela tlas'a maemo a itseng. 'Me haeba re bua ka Kubernetes, joale ho na le mefuta e mengata e mengata ea lisebelisoa (e ka bang ka K8s). Hantle-ntle ona ke maemo a API ho cloud...

NS: Hape ke mahala!

ДС: Ha e bohlokoa hakaalo. Bolokolohi ke ba bohlokoa bakeng sa eseng karolo e kholo haholo ea 'maraka. Ntho e 'ngoe ke ea bohlokoa ... Mohlomong u hopola tlaleho "Databases le Kubernetes"?

NS: E.

ДС: Ke hlokometse hore e amohetsoe ka mokhoa o sa hlakang. Batho ba bang ba ne ba nahana hore ke re: "Banna, a re ke re kenyeng li-database tsohle ho Kubernetes!", Ha ba bang ba etsa qeto ea hore tsena kaofela e ne e le libaesekele tse tšabehang. Empa ke ne ke batla ho bua ntho e ’ngoe e fapaneng ka ho feletseng: “Sheba se etsahalang, hore na ho na le mathata afe le hore na a ka rarolloa joang. Na re lokela ho sebelisa database tsa Kubernetes hona joale? Tlhahiso? Hantle, ha feela o rata ... ho etsa lintho tse itseng. Empa bakeng sa dev, nka re kea e khothaletsa. Bakeng sa setsebi, matla a ho theha / ho hlakola tikoloho a bohlokoa haholo. "

NS: Ka dev, na u bolela libaka tsohle tse sa hlahisoang? Boemo, QA…

ДС: Haeba re bua ka li-perf stands, mohlomong ha ho joalo, hobane litlhoko tse teng li totobetse. Haeba re bua ka linyeoe tse khethehileng moo ho hlokahalang database e kholo haholo bakeng sa ho etsa lipapali, mohlomong ha ho joalo ... Haeba ena e le sebaka se tsitsitseng, sa nako e telele, joale molemo oa ho ba le database o fumaneha K8s?

NS: Ha ho letho. Empa re bona libaka tse sa fetoheng hokae? Tikoloho e sa fetoheng e tla felloa ke nako hosane.

ДС: Staging e ka ba e tsitsitseng. Re na le bareki...

NS: E, le 'na ke na le eona. Ke bothata bo boholo haeba u na le 10 TB database le 200 GB staging...

ДС: Ke na le nyeoe e monate haholo! Ha ho etsoa sethala ho na le database ea lihlahisoa moo liphetoho li etsoang teng. 'Me ho na le konopo: "rola ho tlhahiso". Liphetoho tsena - deltas - lia eketsoa (ho bonahala eka li hokahantsoe feela ka API) tlhahisong. Ena ke khetho e makatsang haholo.

NS: Ke bone batho ba qalang Phuleng ba lutseng RDS kapa esita le Heroku - tsena ke lipale tsa lilemo tse 2-3 tse fetileng - 'me ba khoasolla thoto ho laptop ea bona. Hobane database e ntse e le 80 GB feela, 'me ho na le sebaka ho laptop. Ebe ba reka li-disk tse eketsehileng bakeng sa motho e mong le e mong e le hore ba be le li-database tse 3 ho phethahatsa lintlafatso tse fapaneng. Le ka tsela ena ho etsahala. Ke boetse ke bone hore ha ba tšabe ho kopitsa prod ho ea sethaleng - ho itšetlehile haholo ka k'hamphani. Empa hape ke bone hore ba tšohile haholo, le hore hangata ha ba na nako le matsoho a lekaneng. Empa pele re fetela sehloohong sena, ke batla ho utloa ka Kubernetes. Na ke utloisisa hantle hore ha ho motho ea ntseng a tsoela pele?

ДС: Re na le li-database tse nyane ho prod. Re bua ka bongata ba li-gigabyte tse mashome le litšebeletso tse seng tsa bohlokoa tseo re neng re le botsoa haholo ho etsa likopi ('me ha ho na tlhoko e joalo). Mme ha feela ho na le polokelo e tloaelehileng tlasa Kubernetes. Sebaka sena sa polokelo ea boitsebiso se ne se sebetsa mochine oa sebele - ka maemo a VMware, ka holim'a tsamaiso ea polokelo. Re ile ra e beha ka hare PV 'me joale re ka e fetisetsa ho tloha mochine ho ea ho mochine.

NS: Boitsebiso ba boholo bona, ho fihlela ho 100 GB, bo ka fetisoa ka metsotso e seng mekae ka li-disks tse ntle le marang-rang a matle, na? Lebelo la 1 GB ka motsotsoana ha le sa tloaeleha.

ДС: E, bakeng sa ts'ebetso ea linear sena ha se bothata.

NS: Ho lokile, re tlameha feela ho nahana ka prod. Mme haeba re ntse re nahana ka Kubernetes bakeng sa tikoloho eo e seng ea lihlahisoa, re lokela ho etsa eng? Ke bona seo ho Zalando etsa opareitara, ka Crunchy saha, ho na le likhetho tse ling. Mme ho teng OnGres - enoa ke motsoalle oa rona oa hlooho ea khomo Alvaro oa Spain: seo ba se etsang ha se feela opareitara, le kabo eohle (StackGres), eo ho eona, ntle le Postgres ka boeona, ba ileng ba etsa qeto ea ho kenya bekapo, moemeli oa moemeli ...

ДС: Envoy bakeng sa eng? Ho leka-lekanya sephethephethe sa Postgres ka ho khetheha?

NS: E. Ke hore, ba e bona e le: haeba u nka kabo ea Linux le kernel, joale PostgreSQL e tloaelehileng ke kernel, 'me ba batla ho fana ka kabo e tla ba bonolo ho maru le ho sebetsa ho Kubernetes. Ba kopanya likarolo (li-backups, joalo-joalo) le ho li lokisa hore li sebetse hantle.

ДС: Ho monate haholo! Ha e le hantle ena ke software ea ho iketsetsa Postgres ea hau e laoloang.

NS: Liphatlalatso tsa Linux li na le mathata a ka ho sa feleng: mokhoa oa ho etsa bakhanni e le hore hardware eohle e tšehetsoe. Mme ba na le mohopolo oa hore ba tla sebetsa Kubernetes. Kea tseba hore ho opareitara ea Zalando re sa tsoa bona khokahano ho AWS mme sena ha se sa le ntle haholo. Ha hoa lokela ho ba le thae ho meralo e itseng - ntlha ea bohlokoa ke efe?

ДС: Ha ke tsebe hantle hore na Zalando o ile a kena boemong bofe, empa polokelo ea Kubernetes e se e entsoe ka tsela eo ho ke keng ha khoneha ho nka "backup" ea disk ho sebelisa mokhoa o tloaelehileng. Haufinyane ka maemo - ka mofuta oa morao-rao Litlhaloso tsa CSI - re entse hore li-snapshots li khonehe, empa e kenngoe hokae? Ka botšepehi, ntho e 'ngoe le e' ngoe e ntse e le e tala ... Re leka CSI ka holim'a AWS, GCE, Azure, vSphere, empa hang ha u qala ho e sebelisa, u ka bona hore ha e e-s'o lokisoe.

NS: Ke kahoo ka linako tse ling re tlamehang ho itšetleha ka lisebelisoa tsa motheo. Ke nahana hore ena e ntse e le mohato oa pele - bohloko bo ntseng bo hola. Potso: Ke keletso efe eo u ka e fang batho ba bacha ba batlang ho leka PgSQL ho K8s? Ke opareitara efe mohlomong?

ДС: Bothata ke hore Postgres ke 3% bakeng sa rona. Re boetse re na le lenane le leholo haholo la software e fapaneng ho Kubernetes, nke ke ka thathamisa tsohle. Ka mohlala, Elasticsearch. Ho na le basebetsi ba bangata: ba bang ba ntse ba tsoela pele ka mafolofolo, ba bang ha ba joalo. Re iketselitse litlhoko tsa rona mabapi le seo mokhanni a lokelang ho ba le sona e le hore re se nke ka botebo. Ho opareitara ka ho khetheha bakeng sa Kubernetes - eseng "opereishene ho etsa ho hong maemong a Amazon"... Ha e le hantle, rona ka bophara (= hoo e batlang e le bareki bohle) re sebelisa opareitara e le 'ngoe - bakeng sa Redis (re tla phatlalatsa sengoloa ka eena haufinyane).

NS: Ebile eseng bakeng sa MySQL hape? Kea tseba hore Percona ... kaha ba se ba ntse ba sebetsa ho MySQL, MongoDB, le Postgres, ba tla tlameha ho etsa mofuta o mong oa tharollo ea bokahohle: bakeng sa li-database tsohle, bakeng sa bafani bohle ba maru.

ДС: Re ne re se na nako ea ho sheba basebelisi ba MySQL. Sena ha se taba ea rona ea mantlha hona joale. MySQL e sebetsa hantle ka mokhoa o ikemetseng. Ke hobane'ng ha u sebelisa opareitara haeba u ka khona ho qala polokelo ea boitsebiso ... U ka qala setshelo sa Docker ka Postrges, kapa u ka e qala ka tsela e bonolo.

NS: Ho ne ho e-na le potso mabapi le sena hape. Ha ho na opareitara ho hang?

ДС: E, 100% ea rona re na le PostgreSQL e sebetsang ntle le opareitara. Ho fihlela joale. Re sebelisa opareitara ka mafolofolo bakeng sa Prometheus le Redis. Re na le merero ea ho fumana opareitara bakeng sa Elasticsearch - ke eona e "chesang" haholo, hobane re batla ho e kenya Kubernetes maemong a 100%. Joalo ka ha re batla ho netefatsa hore MongoDB le eona e lula e kentsoe Kubernetes. Mona litakatso tse itseng li hlaha - ho na le maikutlo a hore maemong ana ho ka etsoa ho hong. Hape ha rea ​​​​ka ra sheba Postgres. Ehlile, rea tseba hore ho na le likhetho tse fapaneng, empa ha e le hantle re na le boikemelo.

DB bakeng sa liteko ho Kubernetes

NS: Ha re feteleng sehloohong sa teko. Mokhoa oa ho hlahisa liphetoho ho database - ho latela pono ea DevOps. Ho na le li-microservices, li-database tse ngata, ho na le ntho e fetohang kae-kae ka linako tsohle. Mokhoa oa ho etsa bonnete ba hore CI / CD e tloaelehileng e le hore ntho e 'ngoe le e' ngoe e hlophisitsoe ho latela pono ea DBMS. Mokhoa oa hau ke ofe?

ДС: Ho ka se be le karabo e le nngwe. Ho na le likhetho tse 'maloa. Ea pele ke boholo ba motheo oo re batlang ho o ntša. Uena ka bouena u boletse hore lik'hamphani li na le maikutlo a fapaneng mabapi le ho ba le kopi ea database ea prod ho dev le sethala.

NS: 'Me tlas'a maemo a GDPR, ke nahana hore ba ntse ba e-ba hlokolosi haholoanyane ... Nka bolela hore Europe ba se ba qalile ho beha likotlo.

ДС: Empa hangata o ka ngola software e nkang thotobolo ho tsoa tlhahiso le ho e ferekanya. Lintlha tsa tlhahiso li fumanoa (senepe, lahla, kopi ea binary ...), empa ha e tsejoe. Sebakeng seo, ho ka ba le lingoloa tsa moloko: tsena e ka ba lisebelisoa kapa sengoloa feela se hlahisang database e kholo. Bothata ke hore: ho nka nako e kae ho etsa setšoantšo sa motheo? Hona ho nka nako e kae ho e beha sebakeng se lakatsehang?

Re fihlile morerong: haeba moreki a e-na le data e tsitsitseng (mofuta o fokolang oa database), joale re li sebelisa ka ho sa feleng. Haeba re bua ka libaka tsa tlhahlobo, ha re theha lekala, re ile ra fana ka mohlala oa kopo - re ntša database e nyane moo. Empa ho ile ha etsahala hantle khetho, ha re nka lahla ho tloha tlhahiso hanngoe ka letsatsi (bosiu) mme re haha ​​​​sejana sa Docker se nang le PostgreSQL le MySQL ka data ena e laetsoeng e thehiloeng ho eona. Haeba o hloka ho holisa database makhetlo a 50 ho tloha setšoantšong sena, sena se etsoa ka mokhoa o bonolo le kapele.

NS: Ka ho kopitsa habonolo?

ДС: Lintlha li bolokiloe ka kotloloho setšoantšong sa Docker. Tseo. Re na le setšoantšo se seng se entsoe, leha ho le joalo 100 GB. Ka lebaka la likarolo ho Docker, re ka tsamaisa setšoantšo sena kapele kamoo re hlokang. Mokhoa ona o hloka kelello, empa o sebetsa hantle.

NS: Joale, ha u etsa liteko, e fetoha hantle ka hare ho Docker, ho joalo? Kopitsa-ngola ka hare ho Docker - e lahle 'me u tsamaee hape, tsohle li hantle. Sehlopha! Hona na u se u ntse u e sebelisa ka botlalo?

ДС: Bakeng sa nako e telele.

NS: Re etsa lintho tse tšoanang haholo. Ke rona feela re sa sebeliseng kopi-on-write ea Docker, empa e 'ngoe.

ДС: Ha se generic. Mme Docker e sebetsa hohle.

NS: Ka khopolo, ho joalo. Empa re boetse re na le li-module moo, o ka etsa li-module tse fapaneng mme oa sebetsa ka litsamaiso tse fapaneng tsa faele. Ke motsotso o jwang mona. Ho tloha lehlakoreng la Postgres, re sheba tsena tsohle ka tsela e fapaneng. Joale ke ile ka sheba ka lehlakoreng la Docker mme ka bona hore tsohle lia u sebeletsa. Empa haeba database e le khōlō, ka mohlala, 1 TB, joale sena sohle se nka nako e telele: ts'ebetso ea bosiu, le ho kenya ntho e 'ngoe le e' ngoe ho Docker ... 'Me haeba 5 TB e kenngoa ka Docker ... Kapa na ntho e' ngoe le e 'ngoe e lokile?

ДС: Phapano ke efe: tsena ke li-blobs, likotoana feela le li-byte.

NS: Phapang ke ena: na u e etsa ka ho lahla le ho tsosolosa?

ДС: Ho hang ha ho hlokahale. Mekhoa ea ho hlahisa setšoantšo sena e ka ba e fapaneng.

NS: Bakeng sa bareki ba bang, re e entse e le hore ho e-na le ho lula re hlahisa setšoantšo sa motheo, re lula re se boloka se le morao-rao. Ha e le hantle ke setšoantšo, empa ha e fumane data ho tsoa ho mong'a eona ka kotloloho, empa ka polokelo ea litaba. Sebaka sa polokelo ea boitsebiso moo li-WAL li jarolloang letsatsi le leng le le leng, moo li-backups li nkoang teng ... Li-WAL tsena li fihla setšoantšong sa motheo ka tieho e fokolang (ka ho toba metsotsoana e 1-2). Re tsoa ho eona ka tsela efe kapa efe - joale re na le ZFS ka boiketsetso.

ДС: Empa ka ZFS o na le node e le 'ngoe feela.

NS: E. Empa ZFS e boetse e na le boselamose romele: ka eona u ka romella sets'oants'o esita le (ha ke so leke sena, empa ...) o ka romella delta lipakeng tsa tse peli. PGDATA. Ha e le hantle, re na le sesebelisoa se seng seo re sa kang ra se nahana bakeng sa mesebetsi e joalo. PostgreSQL e na le pg_rewind, e sebetsang joaloka rsync "e bohlale", ho tlōla lintho tse ngata tseo u sa lokelang ho li shebella, hobane ha ho letho le fetohileng moo. Re ka etsa khokahano e potlakileng lipakeng tsa li-server tse peli le ho khutlisetsa morao ka tsela e ts'oanang.

Kahoo, ho tloha ka lehlakoreng lena, lehlakoreng le leng la DBA, re leka ho theha sesebelisoa se re lumellang ho etsa ntho e tšoanang le eo u e boletseng: re na le database e le 'ngoe, empa re batla ho leka ntho e' ngoe ka makhetlo a 50, hoo e ka bang ka nako e le 'ngoe.

ДС: 50 makhetlo a bolela hore o hloka ho odara maemo a 50 Spot.

NS: Che, re etsa ntho e 'ngoe le e' ngoe ka mochine o le mong.

ДС: Empa u ka holisa makhetlo a 50 joang haeba database e le 'ngoe, re re, terabyte. Mohlomong o hloka 256 GB ea RAM e nang le maemo?

NS: E, ka linako tse ling u hloka mohopolo o mongata - ke ntho e tloaelehileng. Empa sena ke mohlala oa bophelo. Mochini oa tlhahiso o na le li-cores tse 96 le 600 GB. Ka nako e ts'oanang, li-cores tse 32 (esita le li-cores tse 16 hona joale ka linako tse ling) le 100-120 GB ea memori li sebelisoa bakeng sa database.

ДС: Le likopi tse 50 li kena moo?

NS: Kahoo ho na le kopi e le 'ngoe feela, joale kopi-on-write (ZFS) e sebetsa ... Ke tla u bolella ka ho qaqileng haholoanyane.

Ka mohlala, re na le 10 TB database. Ba e etsetsa disk, ZFS e ile ea boela ea hatella boholo ba eona ka liperesente tse 30-40. Kaha ha re etse tlhahlobo ea mojaro, nako e nepahetseng ea karabo ha e bohlokoa ho rona: e ke e be butle ka makhetlo a 2 - ho lokile.

Re fana ka monyetla ho baetsi ba mananeo, QA, DBA, joalo-joalo. etsa liteko ka likhoele tse 1-2. Ka mohlala, ba ka 'na ba tsamaisa mofuta o itseng oa ho falla. Ha e hloke li-cores tse 10 hang - e hloka 1 Postgres backend, 1 ea mantlha. Ho falla ho tla qala - mohlomong autovacuum e ntse e tla qala, ebe ho tla sebelisoa motheo oa bobeli. Re na le li-cores tse 16-32 tse fanoeng, kahoo batho ba 10 ba ka sebetsa ka nako e le 'ngoe, ha ho bothata.

Hobane 'meleng PGDATA e tšoanang, e fellang kateng le hore re hlile re thetsa Postgres. Leqheka ke lena: mohlala, 10 Postgres e qalisoa ka nako e le 'ngoe. Hangata bothata ke bofe? Ba beha share_buffers, ha re re 25%. Ka hona, sena ke 200 GB. U ke ke ua khona ho hlahisa tse fetang tse tharo tsa tsena, hobane memori e tla fela.

Empa ka nako e 'ngoe re ile ra hlokomela hore sena se ne se sa hlokahale: ​​re behile li-shared_buffers ho 2 GB. PostgreSQL e na le e sebetsang_cache_size, ’me ha e le hantle ke eona feela e susumetsang merero. Re e beha ho 0,5 TB. Ebile ha ho na taba le hore ha e le hantle ha li eo: o etsa merero joalokaha eka e teng.

Ka hona, ha re leka mofuta o mong oa ho falla, re ka bokella merero eohle - re tla bona hore na e tla etsahala joang tlhahisong. Metsotsoana e tla ba e fapaneng (e fokolang), empa data eo re hlileng re e balang, le merero ka boeona (seo JOIN e leng teng, joalo-joalo) e tla tšoana hantle le tlhahiso. 'Me u ka tsamaisa licheke tse joalo tse ngata ka mokhoa o tšoanang mochining o le mong.

ДС: Na ha u nahane hore ho na le mathata a 'maloa moo? Ea pele ke tharollo e sebetsang feela ho PostgreSQL. Mokhoa ona ke oa lekunutu haholo, ha o tloaelehe. Ea bobeli ke hore Kubernetes (le ntho e 'ngoe le e' ngoe eo theknoloji ea maru e eang ho eona hona joale) e kenyelletsa li-node tse ngata, 'me li-node tsena li na le nako e telele. 'Me molemong oa hau ke node e tsitsitseng, e phehellang. Lintho tsena li etsa hore ke be le likhohlano.

NS: Pele, kea lumela, ena ke pale ea Postgres feela. Ke nahana hore haeba re na le mofuta o itseng oa IO e tobileng le letamo la buffer bakeng sa hoo e batlang e le memori eohle, mokhoa ona o ke ke oa sebetsa - merero e tla fapana. Empa hajoale re sebetsa le Postgres feela, ha re nahane ka ba bang.

Mabapi le Kubernetes. Ke uena ka boeena o re bolellang hohle hore re na le database e tsitsitseng. Haeba mohlala o hloleha, ntho ea bohlokoa ke ho boloka disk. Mona re boetse re na le sethala kaofela ho Kubernetes, mme karolo e nang le Postgres e arohane (le hoja e tla ba teng ka letsatsi le leng). Ka hona, ntho e 'ngoe le e' ngoe e tjena: mohlala o ile oa oa, empa re ile ra boloka PV ea eona 'me ra e hokahanya le mohlala o mong (o mocha), joalokaha eka ha ho letho le etsahetseng.

ДС: Ho ea ka pono ea ka, re etsa li-pods ho Kubernetes. K8s - elastic: mafito a laeloa ha ho hlokahala. Mosebetsi ke ho theha pod feela ebe o re e hloka X palo ea lisebelisoa, ebe K8 e tla iphumanela eona. Empa tšehetso ea polokelo ho Kubernetes e ntse e sa tsitsa: 1.16, ho 1.17 (tokoloho ena e lokollotsoe ea beke ago) likarolo tsena li fetoha beta feela.

Likhoeli tse ts'eletseng ho isa ho selemo li tla feta - e tla tsitsa kapa e fokotsehe, kapa bonyane e tla phatlalatsoa e le joalo. Ebe monyetla oa ho nka linepe le ho fetola boholo o rarolla bothata ba hau ka botlalo. Hobane u na le motheo. E, e ka 'na ea se ke ea potlaka haholo, empa lebelo le itšetlehile ka se "tlas'a hood", hobane ts'ebetsong e meng e ka kopitsa le ho ngola-ho ngola boemong ba disk subsystem.

NS: Ho boetse hoa hlokahala hore lienjiniere tsohle (Amazon, Google ...) li qale ho tšehetsa phetolelo ena - sena se boetse se nka nako.

ДС: Ha re e-s'o li sebelise. Re sebelisa ea rona.

Nts'etsopele ea lehae bakeng sa Kubernetes

NS: Na u kile ua kopana le takatso e joalo ha u hloka ho kenya li-pods tsohle mochine o le mong le ho etsa tlhahlobo e nyenyane joalo. Ho fumana kapele bopaki ba mohopolo, bona hore ts'ebeliso e sebetsa ho Kubernetes, ntle le ho fana ka mochini o mongata bakeng sa eona. Ho na le Minikube, ho joalo?

ДС: Ho 'na ho bonahala eka nyeoe ena - e behiloeng sebakeng se le seng - e bua ka tsoelo-pele ea lehae feela. Kapa lipontšo tse ling tsa mohlala o joalo. Ja Minikube, Ho na le li-k3s, TS'EPANG. Re habile ho sebelisa Kubernetes IN Docker. Joale re ile ra qala ho sebetsa le eona bakeng sa liteko.

NS: Ke ne ke nahana hore ona ke boiteko ba ho phuthela li-pods tsohle ka setšoantšo se le seng sa Docker. Empa ho ile ha fumaneha hore sena se bua ka ntho e fapaneng ka ho feletseng. Leha ho le joalo, ho na le lijana tse arohaneng, li-pods tse arohaneng - ho Docker feela.

ДС: E. 'Me ho na le ketsiso e qabolang e entsoeng, empa moelelo ke ona... Re na le thuso bakeng sa thomello - werf. Re batla ho e etsa mokhoa oa maemo werf up: “Ntlisetse Kubernetes ea lehae.” Ebe u tsamaisa lipehelo moo werf follow. Joale mohlahlami o tla khona ho hlophisa IDE, 'me ho tla qalisoa ts'ebetso tsamaisong e bonang liphetoho le ho tsosolosa litšoantšo, ho li fetisetsa ho K8 ea lehae. Ke kamoo re batlang ho leka ho rarolla bothata ba ntlafatso ea lehae.

Li-snapshots le li-database cloning ho 'nete ea K8s

NS: Haeba re khutlela ho kopitsa-ho-ngola. Ke hlokometse hore maru le ona a na le linepe. Ba sebetsa ka tsela e fapaneng. Mohlala, ho GCP: o na le mohlala oa multi-terabyte lebopong le ka bochabela la United States. U nka linepe nako le nako. U nka kopi ea disk lebōpong le ka bophirimela ho tloha setšoantšong - ka metsotso e seng mekae ntho e 'ngoe le e' ngoe e se e loketse, e sebetsa ka potlako haholo, ke cache feela e lokelang ho tlatsoa mohopolong. Empa li-clone tsena (li-snapshots) li molemong oa ho "phehela" molumo o mocha. Sena se monate ha o hloka ho etsa mehlala e mengata.

Empa bakeng sa liteko, ho bonahala ho 'na hore li-snapshots, tseo u buang ka tsona ho Docker kapa ke bua ka ZFS, btrfs esita le LVM ... - li u lumella hore u se ke ua etsa data e ncha e le kannete mochine o le mong. Ka leru, u ntse u tla ba lefella nako le nako 'me u eme eseng metsotsoana, empa metsotso (le tabeng mojaro o botsoa, mohlomong tshupanako).

Ho e-na le hoo, u ka fumana lintlha tsena ka motsotsoana kapa tse peli, u tsamaise tlhahlobo ebe u e lahla. Lits'oants'o tsena li rarolla mathata a fapaneng. Tabeng ea pele - ho phahamisa le ho fumana likopi tse ncha, 'me ea bobeli - bakeng sa liteko.

ДС: Ha ke lumele. Ho etsa hore volume cloning e sebetse hantle ke mosebetsi oa leru. Ha ke so shebe ts'ebetsong ea bona, empa kea tseba hore na re e etsa joang ka hardware. Re na le Ceph, e lumella molumo ofe kapa ofe oa 'mele (RBD) ho rialo clone 'me u fumane molumo oa bobeli o nang le litšobotsi tse tšoanang ho mashome a milliseconds, IOPS'me, joalo-joalo. U hloka ho utloisisa hore ho na le kopi e qhekellang ea ho ngola ka hare. Hobaneng ha leru le sa lokela ho etsa joalo? Ke na le bonnete ba hore ba leka ho etsa sena ka tsela e 'ngoe kapa e' ngoe.

NS: Empa e ntse e tla ba nka metsotsoana, mashome a metsotsoana ho hlahisa mohlala, ho tlisa Docker moo, joalo-joalo.

ДС: Ke hobane'ng ha ho hlokahala ho hlahisa ketsahalo eohle? Re na le mohlala o nang le li-cores tse 32, 16 ... 'me e ka kena ho eona - mohlala, tse' nè. Ha re laela ea bohlano, mohlala o tla be o se o tsositsoe, ebe o tla hlakoloa.

NS: E, hoa thahasellisa, Kubernetes e fetoha pale e fapaneng. Sebaka sa rona sa polokelo ea boitsebiso ha se ho K8s, 'me re na le mohlala o le mong. Empa ho kopanya database ea multi-terabyte ha ho nke metsotsoana e fetang e 'meli.

ДС: Sena se setle. Empa ntlha ea ka ea pele ke hore sena ha se tharollo e akaretsang. E, e pholile, empa e loketse feela Postgres le sebakeng se le seng feela.

NS: Ha e loketse feela bakeng sa Postgres: merero ena, joalokaha ke hlalositse, e tla sebetsa ho eona feela. Empa haeba re sa khathatsehe ka merero, 'me re hloka feela data eohle bakeng sa tlhahlobo e sebetsang, joale sena se loketse DBMS leha e le efe.

ДС: Lilemong tse ngata tse fetileng re ile ra etsa se tšoanang ho li-snapshots tsa LVM. Ena ke ea khale. Mokhoa ona o ne o sebelisoa ka mafolofolo haholo. Li-node tsa naha ke bohloko feela. Hobane ha ua lokela ho li tlohela, u lokela ho li hopola kamehla ...

NS: Na u bona monyetla oa ho ba le lebasetere moo? Ha re re stateful ke mofuta o mong oa pod, e sebetsa ho batho ba 'maloa (bahlahlobi ba bangata). Re na le molumo o le mong, empa ka lebaka la sistimi ea faele, li-clone ke tsa lehae. Haeba pod e oa, empa disk e sala, pod e tla phahama, e bale tlhahisoleseding e mabapi le li-clone tsohle, e nke ntho e 'ngoe le e' ngoe hape 'me e re: "Ke tsena li-clone tsa hau tse tsamaeang likoung tsena, tsoela pele ho sebetsa le tsona."

ДС: Ha e le hantle sena se bolela hore ka hare ho Kubernetes ke pod e le 'ngoe eo ka hare ho eona re tsamaisang Postgres tse ngata.

NS: E. O na le moeli: ha re re ha ho na batho ba fetang 10 ba sebetsang le eena ka nako e le 'ngoe. Haeba u hloka tse 20, re tla hlahisa pod e joalo ea bobeli. Re tla e kopanya ka botlalo, ha re se re fumane molumo oa bobeli o tletseng, e tla ba le li-clone tse "tšesaane" tse 10 tse tšoanang. Na ha u bone monyetla ona?

ДС: Re hloka ho eketsa litaba tsa ts'ireletso mona. Mofuta ona oa mokhatlo o fana ka maikutlo a hore pod ena e na le litokelo tse phahameng (bokhoni), hobane e ka etsa mesebetsi e sa tloaelehang tsamaisong ea lifaele ... Empa ke pheta: Ke lumela hore ka nako e bohareng ba tla lokisa polokelo ho Kubernetes, le ka maru ba tla lokisa pale eohle ka bongata - ntho e 'ngoe le e' ngoe e tla "sebetsa feela". Ho tla ba le resize, cloning ... Ho na le molumo - re re: "Etsa e ncha ho latela seo," 'me ka mor'a motsotsoana le halofo re fumana seo re se hlokang.

NS: Ha ke lumele ka metsotsoana e le 'ngoe le halofo bakeng sa li-terabyte tse ngata. Ho Ceph u iketsetsa, empa u bua ka maru. E-ea marung, etsa clone ea molumo oa multi-terabyte EBS ho EC2 'me u bone hore na tshebetso e tla ba efe. E ke ke ea nka metsotsoana e seng mekae. Ke thahasella haholo hore na ba tla fihla neng boemong bona. Ke utloisisa seo u se buang, empa ke kopa ho hana.

ДС: Ho lokile, empa ke itse ka nako e mahareng, eseng nako e khuts'oane. Ka lilemo tse 'maloa.

Mabapi le opareitara ea PostgreSQL ho tsoa Zalando

Bohareng ba seboka sena, Alexey Klyukin, moqapi oa mehleng oa Zalando, le eena o ile a kenella 'me a bua ka nalane ea opareitara ea PostgreSQL:

Ho monate hore sehlooho sena se amehe ka kakaretso: ka bobeli Postgres le Kubernetes. Ha re qala ho e etsa Zalando ka 2017, e ne e le sehlooho seo motho e mong le e mong a neng a batla ho se etsa, empa ha ho motho ea ileng a se etsa. E mong le e mong o ne a se a ntse a e-na le Kubernetes, empa ha ba botsa hore na ba etse eng ka li-database, esita le batho ba rata Kelsey Hightower, ea neng a ruta K8s, o ile a bua ntho e kang ena:

"E-ea lits'ebeletso tse laoloang 'me u li sebelise, u se ke ua sebelisa database ho Kubernetes. Ho seng joalo, li-K8 tsa hau li tla etsa qeto, mohlala, ho ntlafatsa, ho tima li-node tsohle, 'me data ea hau e tla fofela hole, hole.

Re nkile qeto ea ho etsa opareitara hore, ho fapana le keletso ena, e tla qala database ea Postgres ho Kubernetes. Mme re ne re na le lebaka le letle - Patroni. Ena ke failover e ikemetseng bakeng sa PostgreSQL, e entsoeng ka nepo, ke hore. sebelisa etcd, consul kapa ZooKeeper e le polokelo ea tlhahisoleseding mabapi le sehlopha. Sebaka se joalo sa polokelo se tla fa motho e mong le e mong ea botsang, mohlala, hore na moeta-pele oa hona joale ke eng, boitsebiso bo tšoanang - ho sa tsotellehe hore re na le ntho e 'ngoe le e' ngoe e abuoang - e le hore ho se ke ha e-ba le boko bo arohaneng. Ho feta moo re ne re e-na le eona Setšoantšo sa Docker bakeng sa hae.

Ka kakaretso, tlhokahalo ea k'hamphani ea "auto failover" e ile ea hlaha ka mor'a ho falla ho tloha setsing sa data sa hardware sa ka hare ho ea marung. Leru le ne le ipapisitse le tharollo ea thepa ea PaaS (Platform-as-a-Service). Ke Mohloli o Bulehileng, empa ho nkile mosebetsi o mongata ho o qala le ho sebetsa. E ne e bitsoa LITS'ELISO.

Qalong, ho ne ho se na Kubernetes. Hantle-ntle, ha tharollo ea rona e ne e sebelisoa, li-K8 li ne li se li le teng, empa li ne li le tala hoo li neng li sa tšoanelehe bakeng sa tlhahiso. E ne e le, ka maikutlo a ka, 2015 kapa 2016. Ka selemo sa 2017, Kubernetes o ne a se a hōlile tsebong—ho ne ho hlokahala hore a fallele moo.

Mme re ne re se re na le setshelo sa Docker. Ho ne ho e-na le PaaS e neng e sebelisa Docker. Hobaneng o sa leke li-K8? Hobaneng o sa ngolle opereishene ea hau? Murat Kabilov, ea tlileng ho rona ho tloha Avito, o ile a qala sena e le morero ka boeena - "ho bapala" - le morero "o ile oa qala."

Empa ka kakaretso, ke ne ke batla ho bua ka AWS. Hobaneng ho ne ho na le khoutu e amanang le AWS ea nalane ...

Ha o tsamaisa ho hong ho Kubernetes, o hloka ho utloisisa hore li-K8 ke mosebetsi o ntseng o tsoela pele. E ntse e tsoela pele ho ntlafatsa, ho ntlafatsa esita le ho senya nako le nako. U lokela ho beha leihlo ka hloko liphetoho tsohle tsa Kubernetes, u lokela ho itokisetsa ho kenella ho eona haeba ho etsahala ntho e itseng 'me u ithute hore na e sebetsa joang ka ho qaqileng - mohlomong ho feta kamoo u ka ratang kateng. Sena, ha e le hantle, se sebetsa sethaleng sefe kapa sefe seo u tsamaisang datha ea hau ho sona ...

Kahoo, ha re etsa polelo, re ne re e-na le Postgres e sebetsang ka molumo o ka ntle (EBS tabeng ena, kaha re ne re sebetsa ho AWS). Database e ile ea hōla, ka nako e 'ngoe ho ne ho hlokahala ho e fetola: ka mohlala, boholo ba pele ba EBS e ne e le 100 TB, database e ile ea hōla ho eona, joale re batla ho etsa EBS 200 TB. Joang? Ha re re o ka etsa ho lahla / ho khutlisetsa ketsahalong e ncha, empa sena se tla nka nako e telele mme se kenyelletsa nako ea ho theoha.

Ka hona, ke ne ke batla resize e neng e tla holisa karohano ea EBS ebe e bolella sistimi ea faele hore e sebelise sebaka se secha. Mme re e entse, empa ka nako eo Kubernetes o ne a sena API bakeng sa ts'ebetso ea resize. Kaha re sebelitse ho AWS, re ngotse khoutu bakeng sa API ea eona.

Ha ho na motho ea u thibelang ho etsa se tšoanang ho li-platform tse ling. Ha ho na leseli polelong ea hore e ka tsamaisoa feela ho AWS, 'me e ke ke ea sebetsa ho tse ling kaofela. Ka kakaretso, ona ke morero oa Open Source: haeba mang kapa mang a batla ho potlakisa ho hlaha ha tšebeliso ea API e ncha, u amohelehile. Ja GitHub, ho hula likopo - sehlopha sa Zalando se leka ho li araba kapele le ho phahamisa mokhanni. Ho ea kamoo ke tsebang, morero kenya letsoho ho Google Summer of Code le matsapa a mang a tšoanang. Zalando e sebetsa ka mafolofolo ho eona.

PS Bonus!

Haeba u thahasella sehlooho sa PostgreSQL le Kubernetes, ka kopo hlokomela hape hore Postgres e latelang Labobeli e etsahetse bekeng e fetileng, moo ke buileng le Nikolai. Alexander Kukushkin oa Zalando. Video e tsoang ho eona e fumaneha mona.

PPS

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso