
Tamin'ny faran'ny taona lasa, nisy fampitana mivantana hafa an'ny vondrom-piarahamonina Rosiana PostgreSQL , nandritra izay niresahan'ny mpiara-manorina azy Nikolai Samokhvalov tamin'ny talen'ny teknika Flant Dmitry Stolyarov momba ity DBMS ity amin'ny tontolon'ny Kubernetes.
Mamoaka dika mitovy amin'ny ampahany lehibe amin'ity dinika ity izahay, ary ao amin'ny Lahatsary feno navoaka:

Databases sy Kubernetes
НС: Tsy hiresaka momba ny VACUUM sy CHECKPOINT isika anio. Te hiresaka momba ny Kubernetes izahay. Fantatro fa manana traikefa an-taonany maro ianao. Nijery ny horonan-tsarinao aho ary mbola nijery ny sasany tamin'izy ireo mihitsy aza ... Andao hojerentsika mivantana: maninona no Postgres na MySQL amin'ny K8s mihitsy?
DC: Tsy misy ary tsy misy valiny mazava amin'io fanontaniana io. Fa amin'ny ankapobeny, izany dia tsotra sy mora ... mety. Maniry tolotra voatantana ny rehetra.
НС: Ahoana , ao an-trano ihany?
DC: Eny: tahaka ny RDS, na aiza na aiza.
НС: "Na aiza na aiza" dia hevitra tsara. Ao amin'ny orinasa lehibe, ny zava-drehetra dia any amin'ny toerana samihafa. Nahoana ary raha orinasa lehibe no tsy maka vahaolana efa vita? Ohatra, manana ny fivoarany manokana ny Nutanix, ny orinasa hafa (VMware...) dia manana ny “RDS, ao an-trano ihany.”
DC: Fa isika dia miresaka momba ny fampiharana misaraka izay tsy hiasa afa-tsy amin'ny fepetra sasany. Ary raha miresaka momba ny Kubernetes isika, dia misy karazana fotodrafitrasa goavana (izay mety ho ao amin'ny K8s). Amin'ny ankapobeny dia fenitra ho an'ny API amin'ny rahona ity...
НС: Maimaimpoana koa izany!
DC: Tsy dia zava-dehibe loatra izany. Ny fahalalahana dia zava-dehibe ho an'ny tsy ampahany lehibe amin'ny tsena. Misy zava-dehibe hafa... Tadidinao angamba ilay tatitra “"?
НС: Eny.
DC: Tsapako fa tena manjavozavo ny voaray. Nihevitra ny olona sasany fa niteny aho hoe: “Ry zalahy, andao ampidiro ao amin'ny Kubernetes daholo ny angon-drakitra rehetra!”, ny sasany kosa nanapa-kevitra fa bisikileta mahatsiravina avokoa ireo. Hafa mihitsy anefa no tiako holazaina: “Jereo ny zava-mitranga, inona no olana misy ary ahoana no handaminana izany. Tokony hampiasa angon-drakitra Kubernetes ve isika izao? Famokarana? Eny, raha tianao ... manao zavatra sasany. Fa ho an'ny dev, azoko lazaina fa manoro azy aho. Ho an'ny dev iray dia tena zava-dehibe ny fahavitrihan'ny famoronana/famafana tontolo iainana.
NS: Amin'ny dev, ny tontolo rehetra tsy prod ve no tianao holazaina? Staging, QA…
DC: Raha resaka perf stand no resahina dia mety tsy izany, satria voafaritra ny fepetra takiana ao. Raha miresaka tranga manokana izay ilana angon-drakitra be dia be ho an'ny fandaharana, dia mety tsy ... Raha tontolo iainana maharitra sy maharitra io, inona no tombony amin'ny fananana ny tahiry ao amin'ny K8s?
НС: Tsy misy. Fa aiza no ahitantsika ny tontolo iainana static? Ho lany andro rahampitso ny tontolo tsy mitongilana.
DC: Mety ho static. Manana mpanjifa izahay...
НС: Eny, manana iray koa aho. Olana lehibe izany raha manana angon-drakitra 10 TB sy 200 GB ianao ...
DC: Manana tranga tena tsara aho! Ao amin'ny fandaharana dia misy angon-drakitra momba ny vokatra izay anaovana fanovana. Ary misy bokotra iray: "mandroso mankany amin'ny famokarana". Ireo fiovana ireo - delta - dia ampiana (toa ampiarahina fotsiny amin'ny alàlan'ny API) amin'ny famokarana. Ity dia safidy tena miavaka.
НС: Nahita fanombohana tany amin'ny lohasaha aho izay mipetraka ao amin'ny RDS na ao amin'ny Heroku - tantara 2-3 taona lasa izay - ary misintona ny fanariany amin'ny solosaina findainy. Satria ny tahiry dia mbola 80 GB ihany, ary misy toerana ao amin'ny solosaina finday. Avy eo dia mividy kapila fanampiny ho an'ny rehetra izy ireo mba hananany tahiry 3 hanatanterahana ny fivoarana samihafa. Toy izany koa no mitranga. Hitako ihany koa fa tsy matahotra ny handika ny prod amin'ny fampisehoana izy ireo - miankina be amin'ny orinasa izany. Hitako koa anefa fa natahotra be izy ireo, ary matetika tsy manam-potoana sy tanana. Saingy alohan'ny handrosoantsika amin'ity lohahevitra ity dia te-handre momba ny Kubernetes aho. Azoko tsara ve fa tsy mbola misy ao anaty prod?
DC: Manana tahiry kely izahay ao amin'ny prod. Miresaka momba ny habetsahan'ny gigabytes am-polony sy ny serivisy tsy mitsikera izay kamo loatra izahay hanao kopia (ary tsy ilaina izany). Ary raha toa ka misy fitehirizana mahazatra eo ambanin'ny Kubernetes. Ity angona ity dia niasa tamina milina virtoaly - misy fepetra ao amin'ny VMware, ambonin'ny rafitra fitahirizana. Napetrakay tao ary ankehitriny dia afaka mamindra izany amin'ny milina mankany amin'ny milina isika.
НС: Ny angon-drakitra toy izany, hatramin'ny 100 GB, dia azo avoaka ao anatin'ny minitra vitsy amin'ny kapila tsara sy tambajotra tsara, sa tsy izany? Tsy hafahafa intsony ny hafainganam-pandeha 1 GB isan-tsegondra.
DC: Eny, ho an'ny fampandehanana tsipika tsy olana izany.
НС: Eny, mila mieritreritra momba ny prod fotsiny isika. Ary raha mihevitra ny Kubernetes ho an'ny tontolo tsy vokatra isika, inona no tokony hataontsika? Hitako any Zalando izany , ao amin'ny Crunchy , misy safidy hafa. Ary misy - Alvaro namanay akaiky avy any Espaina ity: tsy hoe fotsiny ny ataony , ary ny fizarana manontolo (), izay, ankoatry ny Postgres mihitsy, dia nanapa-kevitra ny hametraka backup ihany koa izy ireo, ny proxy Envoy...
DC: Iraka inona? Mampifandanja manokana ny fifamoivoizana Postgres?
НС: Eny. Izany hoe, heverin'izy ireo ho toy ny hoe: raha maka fizarana Linux sy kernel ianao, dia PostgreSQL mahazatra no kernel, ary te-hanao fizarana izay mety ho rahona ary mandeha amin'ny Kubernetes. Manambatra singa (backups, sns.) izy ireo ary manao debug mba hiasa tsara.
DC: Tena tsara! Amin'ny ankapobeny dia rindrambaiko ity hamoronana Postgres voatanisanao manokana.
НС: Ny fizarana Linux dia manana olana mandrakizay: ny fomba hanaovana ny mpamily mba hanohanana ny fitaovana rehetra. Ary manana hevitra izy ireo fa hiasa ao Kubernetes. Fantatro fa tao amin'ny mpandraharaha Zalando vao haingana izahay no nahita fifandraisana tamin'ny AWS ary tsy dia tsara intsony izany. Tsy tokony hisy fifamatorana amin'ny fotodrafitrasa manokana - inona ary izany?
DC: Tsy fantatro tsara hoe inona no toe-javatra nidiran'i Zalando, fa ao amin'ny fitahirizana Kubernetes izao dia natao amin'ny fomba tsy azo atao ny maka backup kapila amin'ny fampiasana fomba mahazatra. Vao haingana tamin'ny fenitra - amin'ny dikan-teny farany - nanao snapshots azo atao izahay, fa aiza no fampiharana azy? Amim-pahatsorana, mbola manta be ny zava-drehetra ... Miezaka ny CSI izahay eo an-tampon'ny AWS, GCE, Azure, vSphere, fa raha vao manomboka mampiasa azy ianao dia ho hitanao fa tsy mbola vonona.
НС: Izany no mahatonga antsika indraindray tsy maintsy miantehitra amin'ny fotodrafitrasa. Heveriko fa mbola dingana voalohany ity - fanaintainana mitombo. Fanontaniana: Inona no torohevitra omenao ho an'ireo vao manomboka te hanandrana PgSQL amin'ny K8s? Opérateur inona angamba?
DC: Ny olana dia ny Postgres dia 3% ho antsika. Manana lisitra be dia be amin'ny rindrambaiko samihafa ao amin'ny Kubernetes ihany koa izahay, tsy hotanisaiko akory ny zava-drehetra. Ohatra, Elasticsearch. Betsaka ny mpandraharaha: ny sasany mivoatra, ny hafa tsy. Nametraka fepetra ho an'ny tenantsika momba izay tokony hananan'ny mpandraharaha iray isika mba horaisintsika ho zava-dehibe izany. Ao amin'ny mpandraharaha iray manokana ho an'ny Kubernetes - fa tsy ao amin'ny "operateur iray hanao zavatra amin'ny fepetran'i Amazonia"... Raha ny marina dia betsaka (= saika ny mpanjifa rehetra) no mampiasa mpandraharaha tokana - (Hamoaka lahatsoratra momba azy tsy ho ela izahay).
НС: Ary tsy ho an'ny MySQL koa? Fantatro fa Percona... satria miasa amin'ny MySQL, MongoDB, ary Postgres izy ireo izao, dia tsy maintsy mamorona karazana vahaolana manerantany izy ireo: ho an'ny angon-drakitra rehetra, ho an'ny mpamatsy rahona rehetra.
DC: Tsy nanam-potoana hijerena ireo mpandraharaha ho an'ny MySQL izahay. Tsy io no tena ifantohanay amin'izao fotoana izao. MySQL dia miasa tsara amin'ny maha-tokana. Maninona no mampiasa operateur raha toa ka afaka manokatra database fotsiny ianao... Azonao atao ny mametraka container Docker miaraka amin'ny Postrges, na azonao atao ny manomboka izany amin'ny fomba tsotra.
НС: Nisy fanontaniana momba izany koa. Tsy misy opérateur mihitsy?
DC: Eny, 100% amintsika dia manana PostgreSQL mandeha tsy misy opérateur. Hatreto aloha. Mampiasa ny opérateur ho an'ny Prometheus sy Redis izahay. Manana drafitra hitady mpandraharaha ho an'ny Elasticsearch izahay - io no tena "mirehitra", satria te-hametraka azy ao amin'ny Kubernetes amin'ny 100% amin'ny tranga. Tahaka ny tiantsika hiantohana fa ny MongoDB dia apetraka ao amin'ny Kubernetes foana. Eto dia miseho ny faniriana sasany - misy ny fahatsapana fa amin'ireny tranga ireny dia misy zavatra azo atao. Ary tsy nijery Postgres akory izahay. Mazava ho azy fa fantatsika fa misy safidy samihafa, fa raha ny marina dia manana tokana isika.
DB hanaovana fitiliana amin'ny Kubernetes
НС: Andeha hirosoana amin’ny resaka fitiliana. Ahoana ny famoahana fanovana amin'ny angon-drakitra - amin'ny fomba fijery DevOps. Misy microservices, angon-drakitra maro, misy zavatra miova any ho any amin'ny fotoana rehetra. Ahoana ny fomba hiantohana ny CI/CD mahazatra mba hilamina ny zava-drehetra amin'ny fomba fijery DBMS. Ahoana ny fomba fijerinao?
DC: Tsy misy valiny tokana. Misy safidy maromaro. Ny voalohany dia ny haben'ny fototra tiantsika havoaka. Ianao mihitsy no nilaza fa ny orinasa dia manana toe-tsaina samihafa amin'ny fananana dika mitovy amin'ny angona prod amin'ny dev sy ny sehatra.
НС: Ary eo ambanin'ny fepetran'ny GDPR, heveriko fa miha-matandrina hatrany izy ireo ... Afaka milaza aho fa any Eoropa dia efa nanomboka nametraka lamandy izy ireo.
DC: Fa matetika ianao dia afaka manoratra rindrankajy izay manary fanariam-pako avy amin'ny famokarana ary manjavozavo izany. Ny angon-drakitra momba ny vokatra dia azo (snapshot, dump, copie binary...), saingy tsy fantatra anarana. Fa kosa, mety misy script taranaka: mety ho fixtures na script fotsiny izay mamorona tahiry lehibe. Ny olana dia ny hoe: hafiriana no hanaovana sary fototra? Ary hafiriana no ametrahana azy amin'ny tontolo irina?
Tonga teo amin'ny drafitra iray izahay: raha manana angon-drakitra raikitra ny mpanjifa (dikan-drakitra faran'izay kely indrindra amin'ny angon-drakitra), dia ampiasainay amin'ny alàlan'ny default. Raha miresaka momba ny tontolon'ny famerenana isika, rehefa namorona sampana iray izahay dia nametraka ohatra iray momba ny fampiharana - namoaka angon-drakitra kely izahay. Nivoaka tsara anefa izany , rehefa maka fanariam-pamokarana indray mandeha isan'andro (amin'ny alina) isika ary manangana fitoeran'entana Docker miaraka amin'ny PostgreSQL sy MySQL miaraka amin'ity angona feno entana mifototra amin'izany. Raha mila manitatra ny angon-drakitra in-50 avy amin'ity sary ity ianao, dia atao tsotra sy haingana izany.
НС: Atao kopia tsotra?
DC: Ny angona dia voatahiry mivantana ao amin'ny sary Docker. Ireo. Manana sary efa vita izahay, na dia 100 GB aza. Noho ny sosona ao amin'ny Docker, afaka mametraka haingana ity sary ity izahay imbetsaka araka izay ilaina. Ny fomba dia adala, fa miasa tsara.
НС: Avy eo, rehefa manao fitsapana ianao dia miova ao anatin'ny Docker, sa tsy izany? Copy-on-write ao anaty Docker - ario ary avereno indray, tsara ny zava-drehetra. kilasy! Ary efa mampiasa azy io amin'ny fomba feno ve ianao?
DC: Mandritra ny fotoana ela.
НС: Mitovitovy ny zavatra ataonay. Izahay ihany no tsy mampiasa ny kopian'ny Docker, fa ny hafa.
DC: Tsy générique izany. Ary miasa na aiza na aiza i Docker.
НС: Raha ny teoria, eny. Saingy manana modules ihany koa izahay, afaka manao modules samihafa ianao ary miasa miaraka amin'ny rafi-drakitra samihafa. Fotoana inona eto. Avy amin'ny lafiny Postgres dia samy hafa ny fijerintsika izany rehetra izany. Ankehitriny dia nijery avy amin'ny lafiny Docker aho ary hitako fa miasa ho anao ny zava-drehetra. Fa raha lehibe ny database, ohatra, 1 TB, dia mila fotoana lava izany rehetra izany: ny fiasana amin'ny alina, ary ny famenoana ny zava-drehetra ao amin'ny Docker ... Ary raha 5 TB no apetraka ao amin'ny Docker ... Sa tsara ny zava-drehetra?
DC: Inona no mahasamihafa azy: blob ireny fa bitika sy byte fotsiny.
НС: Ny mahasamihafa azy dia izao: atao amin'ny alalan'ny fanariam-pako sy amin'ny laoniny ve izany?
DC: Tsy ilaina mihitsy. Ny fomba famokarana ity sary ity dia mety ho samy hafa.
НС: Ho an'ny mpanjifa sasany, nanao izany izahay fa tsy mamorona sary fototra tsy tapaka, dia mitazona izany hatrany hatrany. Raha ny marina dia kopia izy io, saingy tsy mahazo angona avy amin'ny tompony mivantana, fa amin'ny alàlan'ny arisiva. Tahirin-taratasy mimari-droa izay alaina isan'andro ny WAL, alaina ny backup... Tonga any amin'ny sary fototra ireo WAL ireo avy eo miaraka amin'ny fahatarana kely (ara-bakiteny 1-2 segondra). Manangona azy amin'ny fomba rehetra izahay - manana ZFS izahay ankehitriny.
DC: Saingy amin'ny ZFS dia voafetra amin'ny node iray ianao.
НС: Eny. Fa ny ZFS koa dia manana majika : miaraka amin'izany ianao dia afaka mandefa sary ary na dia (mbola tsy nanandrana an'io aho, fa ...) afaka mandefa delta eo anelanelan'ny roa PGDATA. Raha ny marina, manana fitaovana iray hafa izay tsy nodinihinay ho an'ny asa toy izany izahay. PostgreSQL dia manana , izay miasa toy ny "smart" rsync, mitsambikina betsaka amin'ny zavatra tsy ilainao jerena, satria tsy nisy fiovana teo. Afaka manao synchronization haingana eo amin'ireo mpizara roa isika ary mamerina amin'ny fomba mitovy.
Noho izany, avy amin'izany, lafiny DBA bebe kokoa, dia miezaka mamorona fitaovana ahafahantsika manao zavatra mitovy amin'ny nolazainao: manana tahiry iray izahay, saingy te-hitsapa zavatra in-50 izahay, saika miaraka.
DC: In-50 dia midika fa mila manafatra instance 50 Spot ianao.
НС: Tsia, manao ny zava-drehetra amin'ny milina iray izahay.
DC: Ahoana anefa no hanitarana in-50 raha io database io, ohatra, terabyte. Azo inoana fa mila RAM 256 GB misy fepetra izy?
НС: Eny, indraindray mila fitadidiana be ianao - ara-dalàna izany. Ohatra avy amin’ny fiainana anefa izany. Ny milina famokarana dia manana cores 96 ary 600 GB. Mandritra izany fotoana izany, 32 cores (na 16 cores ankehitriny indraindray) ary 100-120 GB ny fahatsiarovana dia ampiasaina ho an'ny tahiry.
DC: Ary misy 50 dika mitovy ao?
НС: Ka tsy misy afa-tsy kopia iray, dia miasa ny kopia-manoratra (ZFS)... Holazaiko aminao amin'ny antsipiriany kokoa.
Ohatra, manana tahiry 10 TB izahay. Nanamboatra kapila ho azy ireo izy ireo, ny ZFS dia nanery ny habeny tamin'ny 30-40 isan-jato. Satria tsy manao fitiliana entana izahay, dia tsy zava-dehibe amintsika ny fotoana famaliana marina: avelao ho in-2 miadana kokoa izany - tsy maninona.
Omentsika fahafahana ny mpandrindra, QA, DBA, sns. manao fitiliana amin'ny kofehy 1-2. Ohatra, mety hanao karazana fifindra-monina izy ireo. Tsy mitaky cores 10 indray mandeha - mila 1 Postgres backend, 1 core. Hanomboka ny fifindra-monina - angamba mbola hanomboka, dia ny fototra faharoa no hampiasaina. Manana cores 16-32 izahay, ka olona 10 no afaka miasa miaraka, tsy misy olana.
Satria ara-batana PGDATA torak'izany koa dia hita fa tena mamitaka ny Postgres isika. Ny fika dia izao: ohatra, 10 Postgres no natomboka miaraka. Inona no olana matetika? Napetrak'izy ireo , andao atao hoe 25%. Noho izany, izany dia 200 GB. Tsy afaka manomboka mihoatra ny telo amin'ireo ianao, satria ho lany ny fahatsiarovana.
Saingy tamin'ny fotoana iray dia nahatsapa izahay fa tsy ilaina izany: nametraka shared_buffers ho 2 GB izahay. PostgreSQL dia manana , ary raha ny marina dia io ihany no misy fiantraikany . Nametraka azy ho 0,5 TB izahay. Ary na dia tsy misy dikany aza ny tsy fisian'izy ireo: manao drafitra toy ny misy izy ireo.
Noho izany, rehefa manandrana karazana fifindra-monina isika, dia afaka manangona ny drafitra rehetra - ho hitantsika ny hitranga amin'ny famokarana. Ny segondra any dia ho hafa (miadana kokoa), fa ny angon-drakitra izay tena novakianay, sy ny drafitra mihitsy (izay MIDIRANA ao, sns) dia mitovy tanteraka amin'ny famokarana. Ary afaka manao fisavana maro toy izany ianao miaraka amin'ny milina iray.
DC: Tsy heverinao ve fa misy olana vitsivitsy eto? Ny voalohany dia vahaolana izay miasa amin'ny PostgreSQL ihany. Ity fomba fiasa ity dia tena manokana, tsy mahazatra. Ny faharoa dia ny Kubernetes (sy izay rehetra alehan'ny teknolojia rahona amin'izao fotoana izao) dia misy nodes maro, ary ireo node ireo dia mihelina. Ary amin'ny toe-javatra misy anao dia node marim-pototra sy maharitra. Mampifanohitra ahy ireo zavatra ireo.
НС: Voalohany, ekeko fa tantara Postgres fotsiny ity. Heveriko fa raha manana karazana IO mivantana sy dobo buffer ho an'ny fahatsiarovana rehetra isika, dia tsy hahomby io fomba fiasa io - ho hafa ny drafitra. Saingy amin'izao fotoana izao dia miara-miasa amin'ny Postgres ihany izahay, tsy mieritreritra ny hafa.
Momba an'i Kubernetes. Ianao mihitsy no milaza aminay na aiza na aiza fa manana tahiry maharitra izahay. Raha tsy mahomby ny ohatra, ny zava-dehibe dia ny mamonjy ny kapila. Eto isika dia manana ny sehatra manontolo ao amin'ny Kubernetes, ary misaraka ny singa miaraka amin'ny Postgres (na dia ho eo aza izany indray andro any). Noho izany, dia toy izao ny zava-drehetra: nianjera ny instance, saingy namonjy ny PV-ny izahay ary nampifandray azy tamin'ny ohatra hafa (vaovao) fotsiny, toy ny hoe tsy nisy na inona na inona.
DC: Raha ny fahitako azy dia mamorona pods ao amin'ny Kubernetes izahay. K8s - elastika: voafantina araka izay ilaina. Ny asa dia ny mamorona pod fotsiny ary milaza fa mila loharanon-karena X izy, ary avy eo ny K8s dia hamantatra azy irery. Saingy mbola tsy milamina ny fanohanana fitahirizana ao amin'ny Kubernetes: in (navoaka ity famoahana ity amin'ny herinandro lasa) lasa beta ihany ireo endri-javatra ireo.
Mandalo ny enim-bolana ka hatramin'ny herintaona - hihamaivana kokoa na latsaka, na farafaharatsiny hambara ho toy izany. Avy eo ny mety hisian'ny snapshots sy ny fanovana ny habeny dia mamaha tanteraka ny olanao. Satria manana fototra ianao. Eny, mety tsy dia haingana loatra izany, fa ny hafainganam-pandeha dia miankina amin'ny "ao ambanin'ny satroka", satria ny fampiharana sasany dia afaka mandika sy mandika amin'ny fanoratana amin'ny ambaratonga subsystem kapila.
НС: Ilaina ihany koa ny motera rehetra (Amazon, Google...) vao manomboka manohana an'io dikan-teny io - mila fotoana ihany koa izany.
DC: Tsy mbola mampiasa azy ireo izahay. Mampiasa ny anay izahay.
Fampandrosoana eo an-toerana ho an'ny Kubernetes
НС: Efa nahita faniriana toy izany ve ianao rehefa mila mametraka ny pods rehetra amin'ny milina iray ary manao fitsapana kely toy izany. Mba hahazoana porofon'ny foto-kevitra haingana dia jereo fa mandeha ao amin'ny Kubernetes ny fampiharana, nefa tsy manokan-tena ho azy. Misy Minikube, sa tsy izany?
DC: Amiko fa ity tranga ity - napetraka amin'ny node iray - dia momba ny fampandrosoana eo an-toerana ihany. Na fisehoana sasany amin'ny lamina toy izany. Hanina , Misy , . Miroso amin'ny fampiasana Kubernetes IN Docker izahay. Ankehitriny dia nanomboka niara-niasa taminy izahay ho an'ny fitsapana.
НС: Nieritreritra aho taloha fa fikasana hametahana ny pods rehetra amin'ny sary Docker iray. Saingy hita fa hafa tanteraka izany. Na izany na tsy izany, misy container misaraka, pods misaraka - ao amin'ny Docker ihany.
DC: Eny. Ary misy fakan-tahaka somary mahatsikaiky natao, fa ny dikany dia izao... Manana utility izahay amin'ny fanaparitahana - . Tianay ny hanao izany ho fomba misy fepetra werf up: “Alaivo aho Kubernetes eo an-toerana.” Ary mandehana ny conditional any werf follow. Avy eo dia ho afaka hanitsy ny IDE ny mpandrindra, ary hisy dingana iray hatomboka ao amin'ny rafitra izay mahita ny fiovana sy manangana indray ny sary, mamerina azy ireo amin'ny K8 eo an-toerana. Izany no tiana hiezaka hamahana ny olan’ny fampandrosoana eto an-toerana.
Snapshots sy cloning database amin'ny zava-misy K8s
НС: Raha miverina amin'ny kopia an-tsoratra isika. Tsikaritro fa misy sary ihany koa ny rahona. Hafa ny fiasan'izy ireo. Ohatra, ao amin'ny GCP: manana ohatra maromaro terabyte ianao any amin'ny morontsiraka atsinanan'i Etazonia. Maka sary tsindraindray ianao. Maka dika mitovy amin'ny kapila any amin'ny morontsiraka andrefana amin'ny sary iray ianao - ao anatin'ny minitra vitsy dia vonona ny zava-drehetra, miasa haingana dia haingana, ny cache ihany no tokony hofenoina fahatsiarovana. Fa ireo clones (snapshots) ireo dia mba 'hanome' boky vaovao. Tsara izany rehefa mila mamorona ohatra maro ianao.
Fa ho an'ny fitsapana, toa ahy ny snapshots, izay resahinao ao amin'ny Docker na resahiko ao amin'ny ZFS, btrfs ary na LVM aza ... - mamela anao tsy hamorona angona vaovao amin'ny milina iray. Ao amin'ny rahona, mbola handoa azy ireo foana ianao ary tsy hiandry segondra, fa minitra (ary amin'ny tranga , mety ho famantaranandro).
Azonao atao kosa ny mahazo an'io angona io ao anatin'ny iray na roa, ataovy ny fitsapana ary ario. Mamaha olana samihafa ireo sary ireo. Amin'ny tranga voalohany - mba hampitomboana sy hahazoana kopia vaovao, ary amin'ny faharoa - ho an'ny fitsapana.
DC: Tsy manaiky aho. Ny fampandehanana ny kloning amin'ny volume dia asan'ny rahona. Tsy nijery ny fampiharana azy ireo aho, fa fantatro ny fomba anaovanay izany amin'ny fitaovana. Manana Ceph izahay, mamela ny volume ara-batana () hoy Clone ary mahazo boky faharoa manana toetra mitovy ao anatin'ny milisegondra am-polony, 'ami, etc. Tokony ho takatrao fa misy kopia-manoratra sarotra ao anatiny. Nahoana no tsy tokony hanao toy izany koa ny rahona? Azoko antoka fa miezaka manao izany izy ireo.
НС: Saingy mbola mila segondra izy ireo, segondra am-polony mba hananganana ohatra iray, hitondra an'i Docker any, sns.
DC: Nahoana no ilaina ny manangana ohatra iray manontolo? Manana ohatra misy cores 32 izahay, 16... ary afaka miditra ao izany - ohatra, efatra. Rehefa manafatra ny fahadimy isika dia efa atsangana ny ohatra, ary hofafana avy eo.
НС: Eny, mahaliana, lasa tantara hafa i Kubernetes. Tsy ao amin'ny K8s ny angonay, ary manana ohatra iray izahay. Saingy tsy mihoatra ny roa segondra ny fanaovana clone angon-drakitra maro-terabyte.
DC: Tsara izany. Fa ny hevitro voalohany dia tsy vahaolana générique io. Eny, mahafinaritra izany, fa mety amin'ny Postgres ihany ary amin'ny node iray ihany.
НС: Tsy mety amin'ny Postgres ihany: ireo drafitra ireo, araka ny nolazaiko, dia hiasa ao anatiny ihany. Saingy raha tsy manelingelina ny drafitra isika, ary mila ny angon-drakitra rehetra hanaovana fitiliana miasa, dia mety amin'ny DBMS rehetra izany.
DC: Taona maro lasa izay dia nanao zavatra mitovy amin'ny LVM snapshots izahay. Classic ity. Navitrika tokoa io fomba fiasa io. Fanaintainana fotsiny ny nodes stateful. Satria tsy tokony hanary azy ireo ianao, tokony ho tsaroanao foana izy ireo ...
НС: Hitanao ve ny mety hisian'ny hybrid eto? Aleo atao hoe stateful dia karazana pod, miasa ho an'ny olona maromaro (mpanandrana maro). Manana boky iray izahay, saingy noho ny rafitra fichier dia eo an-toerana ny clones. Raha mianjera ny pod, fa mijanona ny kapila, dia hiakatra ny pod, manisa vaovao momba ny klones rehetra, alaivo indray ny zava-drehetra ary lazao hoe: "Indro ny klonenao mandeha amin'ireo seranana ireo, tohizo ny miasa miaraka amin'izy ireo."
DC: Amin'ny lafiny teknika dia midika izany fa ao anatin'ny Kubernetes dia pod iray izy io izay misy ny Postgres maro.
НС: Eny. Manana fetra izy: aleo atao hoe tsy mihoatra ny 10 ny olona miara-miasa aminy. Raha mila 20 ianao dia hamoaka pod faharoa toy izany izahay. Ho clone tanteraka izahay, rehefa nahazo ny boky faharoa feno, dia hanana clones 10 "manify" mitovy. Tsy hitanao ve izany fahafahana izany?
DC: Mila manampy olana momba ny fiarovana eto isika. Ity karazana fikambanana ity dia midika fa ity pod ity dia manana tombontsoa ambony (fahaiza-manao), satria afaka manao asa tsy manara-penitra amin'ny rafitra fichier... Saingy averiko indray: Mino aho fa amin'ny fotoana antonony dia hanamboatra ny fitahirizana ao amin'ny Kubernetes izy ireo, ary amin'ny ny rahona dia hamboarin'izy ireo amin'ny boky ny tantara manontolo - ny zava-drehetra dia "hiasa fotsiny". Hisy ny fanovana habe, ny kloning... Misy ny boky - hoy izahay: "Mamorona vaovao mifototra amin'izany", ary rehefa afaka iray segondra sy tapany dia mahazo izay ilaintsika.
НС: Tsy mino iray segondra sy sasany aho ho an'ny terabytes maro. Amin'ny Ceph dia manao izany ianao, fa miresaka momba ny rahona ianao. Mankanesa any amin'ny rahona, manaova clone amin'ny volan'ny EBS multi-terabyte amin'ny EC2 ary jereo izay ho zava-bita. Tsy haharitra segondra vitsy izany. Tena mahaliana ahy ny fotoana hahatongavan'izy ireo amin'io ambaratonga io. Azoko tsara izay lazainao, fa miangavy aho mba tsy hitovy.
DC: Eny, fa hoy aho tamin'ny fotoana antonony fa tsy fotoana fohy. Nandritra ny taona maromaro.
Momba ny mpandraharaha PostgreSQL avy amin'i Zalando
Teo afovoan'ity fihaonana ity, Alexey Klyukin, mpamorona taloha avy any Zalando, dia nanatevin-daharana sy niresaka momba ny tantaran'ny mpandraharaha PostgreSQL:
Mahafinaritra fa voakitika amin'ny ankapobeny ity lohahevitra ity: na Postgres na Kubernetes. Raha vao nanomboka nanao izany tao amin’ny Zalando izahay tamin’ny taona 2017 dia lohahevitra tian’ny rehetra hatao izany, saingy tsy nisy nanao izany. Efa nanana Kubernetes ny tsirairay, fa rehefa nanontany izay tokony hatao amin'ny angon-drakitra, na ny olona aza dia tia , izay nitory ny K8s, dia nilaza toy izao:
"Mandehana any amin'ny serivisy mitantana ary ampiasao izy ireo, aza mandehana ny angon-drakitra ao amin'ny Kubernetes. Raha tsy izany, hanapa-kevitra ny K8-nao, ohatra, hanao fanavaozana, hamono ny node rehetra, ary hanidina lavitra lavitra ny angonao.
Nanapa-kevitra ny hanao operatera izahay izay, mifanohitra amin'ity torohevitra ity, dia hanangana angon-drakitra Postgres amin'ny Kubernetes. Ary nanana antony tsara izahay - . Ity dia failover mandeha ho azy ho an'ny PostgreSQL, vita tsara, i.e. mampiasa snsd, consul na ZooKeeper ho fitahirizana vaovao momba ny cluster. Trano fitehirizam-bokatra toy izany izay hanome izay rehetra manontany, ohatra, hoe inona ny mpitondra ankehitriny, ny vaovao mitovy - na dia eo aza ny zava-drehetra nozaraina - mba tsy hisian'ny atidoha misara-bazana. Plus nanananay ho azy.
Amin'ny ankapobeny, ny filàn'ny orinasa ny auto failover dia niseho taorian'ny nifindrany avy amin'ny foibe angon-drakitra anatiny mankany amin'ny rahona. Ny rahona dia niorina tamin'ny vahaolana PaaS (Platform-as-a-Service) tompon'andraikitra. Izy io dia Open Source, saingy nila ezaka be ny nananganana azy. Nantsoina izany .
Tamin'ny voalohany, tsy nisy Kubernetes. Ny marimarina kokoa, tamin'ny fametrahana ny vahaolana ho antsika manokana dia efa nisy ny K8, saingy tsy mety amin'ny famokarana. Raha ny hevitro dia 2015 na 2016 io. Tamin'ny taona 2017, lasa matotra na latsaka kely i Kubernetes — nilaina ny nifindra monina tany.
Ary efa nanana container Docker izahay. Nisy PaaS izay nampiasa Docker. Maninona raha manandrana K8s? Maninona raha manoratra ny mpandraharaha anao manokana? Murat Kabilov, izay tonga tany aminay avy any Avito, dia nanomboka izany ho toy ny tetikasa amin'ny alalan'ny fandraisana andraikitra manokana - "hilalao" - ary "niala" ny tetikasa.
Saingy amin'ny ankapobeny, te hiresaka momba ny AWS aho. Nahoana no nisy kaody mifandraika amin'ny AWS ara-tantara...
Rehefa mitantana zavatra ao amin'ny Kubernetes ianao dia mila mahatakatra fa ny K8s dia asa toy izany. Tsy mitsaha-mivoatra, mihatsara ary miharatsy mihitsy aza indraindray. Mila manara-maso akaiky ny fiovana rehetra ao amin'ny Kubernetes ianao, mila mivonona hiditra ao ianao raha misy zavatra mitranga ary mianatra ny fomba fiasa amin'ny antsipiriany - angamba mihoatra noho izay tianao. Izany, amin'ny ankapobeny, dia mihatra amin'ny sehatra rehetra hampandehananao ny angon-drakitrao...
Noho izany, rehefa nanao ilay fanambarana izahay dia nanana Postgres mihazakazaka amin'ny volume ivelany (EBS amin'ity tranga ity, satria niasa tamin'ny AWS izahay). Nitombo ny angon-drakitra, tamin'ny fotoana iray dia nilaina ny nanova ny habeny: ohatra, ny haben'ny EBS voalohany dia 100 TB, nitombo ho azy ny angon-drakitra, ankehitriny dia te hanao EBS 200 TB izahay. Ahoana? Andao atao hoe afaka manao fanariam-pako/famerenana amin'ny tranga vaovao ianao, saingy haharitra ela izany ary hampiditra fotoana tsy ampoizina.
Noho izany, te hanova ny habeny aho izay hanitarana ny fizarazarana EBS ary avy eo dia lazao amin'ny rafitra rakitra hampiasa ilay habaka vaovao. Ary nanao izany izahay, fa tamin'izany fotoana izany dia tsy nanana API ny Kubernetes ho an'ny fandidiana fanovana habe. Satria niasa tamin'ny AWS izahay dia nanoratra kaody ho an'ny API.
Tsy misy manakana anao tsy hanao toy izany koa amin'ny sehatra hafa. Tsy misy soso-kevitra ao amin'ny fanambarana fa tsy azo atao afa-tsy amin'ny AWS izy io, ary tsy hiasa amin'ny zavatra hafa rehetra. Amin'ny ankapobeny, tetikasa Open Source ity: raha misy te hanafaingana ny firongatry ny fampiasana ny API vaovao dia raisina an-tanan-droa ianao. Hanina , misintona fangatahana - ny ekipa Zalando dia miezaka mamaly azy ireo haingana sy mampiroborobo ny mpandraharaha. Raha ny fahalalako azy dia ny tetikasa ao amin'ny Google Summer of Code sy ireo hetsika hafa mitovy amin'izany. Mazoto miasa amin'izany i Zalando.
PS Bonus!
Raha liana amin'ny lohahevitry ny PostgreSQL sy Kubernetes ianao, dia mariho koa fa ny Talata Postgres manaraka dia natao tamin'ny herinandro lasa, izay niresahako tamin'i Nikolai. Alexander Kukushkin avy any Zalando. Misy video avy aminy .
PPS
Vakio ihany koa ao amin'ny bilaoginay:
- «";
- «";
- «";
- «".
Source: www.habr.com
