ProHoster > Blog > Rianachd > Mar a thogas tu sgòth tar-chinealach a’ cleachdadh Kubernetes a ghabhas àite DBaaS
Mar a thogas tu sgòth tar-chinealach a’ cleachdadh Kubernetes a ghabhas àite DBaaS
Is e m ’ainm Petr Zaitsev, is mise an Ceannard, stèidheadair percona agus tha mi airson innse dhut:
mar a thàinig sinn bho fhuasglaidhean stòr fosgailte gu Stòr-dàta mar Sheirbheis;
dè na dòighean a th’ ann airson stòran-dàta a chleachdadh san sgòth;
mar as urrainn dha Kubernetes DBaaS a chuir an àite, a’ cur às do eisimeileachd reiceadair agus a’ cumail suas sìmplidheachd DBMS mar sheirbheis.
Chaidh an artaigil ullachadh stèidhichte air aithisg aig @Databases Meetup le Mail.ru Cloud Solutions & Tarantool. Mura h-eil thu airson leughadh, faodaidh tu coimhead air:
Mar a thàinig sinn bho stòr fosgailte gu Stòr-dàta mar Sheirbheis san sgòth
Tha mi air a bhith ag obair ann an còd fosgailte bho dheireadh nan 90an. O chionn fichead bliadhna, cha robh e cho furasta cleachdadh stòr fosgailte, leithid stòran-dàta. Bha e riatanach an còd tùsail a luchdachadh sìos, a phasgadh, a chuir ri chèile agus dìreach an uairsin a chleachdadh.
Chaidh stòr fosgailte an uairsin tro shreath de shìmpleachadh:
Tar.gz agus INSTALL stòran a dh'fheumadh a bhith air a chur ri chèile;
pasganan le eisimeileachd mar .deb agus .rpm, far nach fheum thu ach seata de phasgan a stàladh;
stòran pacaid mar APT agus YUM, leis a bheil an stàladh fèin-ghluasadach;
fuasglaidhean leithid Docker agus Snap, a leigeas leat pacaidean fhaighinn le bhith gan stàladh às aonais eisimeileachd bhon taobh a-muigh.
Mar thoradh air an sin, bidh e nas fhasa bathar-bog stòr fosgailte a chleachdadh agus bidh e cuideachd a’ lughdachadh a ’chnap-starra airson faighinn a-steach do leasachadh thagraidhean mar sin.
Aig an aon àm, eu-coltach ris an t-suidheachadh 20 bliadhna air ais, nuair a bha a h-uile duine na eòlaiche cruinneachaidh, a-nis chan urrainn don mhòr-chuid de luchd-leasachaidh na h-innealan a bhios iad a ’cleachdadh a thogail bhon stòr.
Gu dearbh, chan eil seo dona, oir:
Faodaidh sinn bathar-bog nas iom-fhillte ach nas fhasa a chleachdadh. Mar eisimpleir, tha brobhsair furasta a chleachdadh, ach tha mòran phàirtean stòr fosgailte ann agus tha e mì-ghoireasach a thogail bhon toiseach.
Faodaidh barrachd dhaoine a bhith nan luchd-leasachaidh air bathar-bog stòr fosgailte agus bathar-bog eile, bidh barrachd bathar-bog ga chleachdadh le gnìomhachasan, agus tha barrachd feum air.
Is e an ana-cothrom gu bheil an ath cheum ann an sìmpleachadh co-cheangailte ri cleachdadh fhuasglaidhean sgòthan, agus tha seo a’ leantainn gu glasadh a-steach reiceadair sònraichte, is e sin, ceangailte ri aon sholaraiche. Bidh sinn a’ cleachdadh fhuasglaidhean sìmplidh agus bidh solaraichean a’ cleachdadh co-phàirtean stòr fosgailte, ach gu dearbh tha iad ceangailte ri aon de na sgòthan mòra. Is e sin, tha an dòigh as fhasa agus as luaithe air stòr fosgailte (agus bathar-bog a tha co-chosmhail ris) a chleachdadh anns na sgòthan, a’ cleachdadh API seilbh.
Nuair a thig e gu stòran-dàta san sgòth, tha dà dhòigh-obrach ann:
Cruinnich bun-structar an stòr-dàta, mar ann an ionad dàta cunbhalach. Is e sin, gabh blocaichean togail àbhaisteach: obrachadh a-mach, stòradh, agus mar sin air adhart, stàlaich Linux agus stòr-dàta orra, agus cuir air dòigh iad.
Cleachd Stòr-dàta mar Sheirbheis, far am bi an solaraiche a’ tabhann stòr-dàta deiseil taobh a-staigh an sgòth.
Tha DBaaS na mhargaidh a tha a’ fàs gu luath an-dràsta leis gu bheil e a’ leigeil le luchd-leasachaidh obrachadh gu dìreach le stòran-dàta agus a’ lughdachadh obair àbhaisteach. Tha an solaraiche a’ gabhail os làimh dèanamh cinnteach à ruigsinneachd àrd agus sgèileadh furasta, gleusadh stòr-dàta, cùl-taic agus gleusadh coileanaidh.
Dà sheòrsa Stòr-dàta mar Sheirbheis stèidhichte air stòr fosgailte agus roghainn eile ann an cruth Kubernetes
Tha dà sheòrsa Stòr-dàta ann mar Sheirbheis airson stòran-dàta fosgailte:
Toradh stòr fosgailte àbhaisteach air a phacaigeadh ann an cùl-taic rianachd airson a chleachdadh agus a riaghladh gu furasta.
Fuasgladh malairteach adhartach le diofar thuilleadan, co-chosmhail ri stòr fosgailte.
Bidh an dà roghainn a’ lughdachadh comas imrich eadar sgòthan agus a’ lughdachadh comas giùlain dàta agus thagraidhean. Mar eisimpleir, a dh'aindeoin 's gu bheil diofar sheòrsaichean de sgòthan a' toirt taic dha-rìribh an aon ìre MySQL, tha eadar-dhealachaidhean mòra eadar iad: ann an obrachadh, coileanadh, cùl-taic, agus mar sin air adhart. Faodaidh imrich bho aon sgòth gu sgòth a bhith dùbhlanach, gu sònraichte airson tagraidhean iom-fhillte.
Agus an seo tha a’ cheist ag èirigh - a bheil e comasach goireasachd Stòr-dàta fhaighinn mar Sheirbheis, ach mar fhuasgladh sìmplidh le còd fosgailte?
Is e an droch naidheachd, gu mì-fhortanach, nach eil fuasglaidhean mar sin air a’ mhargaidh fhathast. Is e an deagh naidheachd gu bheil Kubernetes ann, a leigeas leat fuasglaidhean mar sin a chuir an gnìomh.
Tha Kubernetes na shiostam obrachaidh airson an sgòth no ionad dàta a leigeas leat tagradh a chuir a-steach agus a riaghladh thairis air grunn luchd-frithealaidh ann am brabhsair seach air aon aoigh.
A-nis tha Kubernetes na stiùiriche anns an roinn de bhathar-bog mar sin. Bha mòran fhuasglaidhean eadar-dhealaichte ann airson duilgheadasan mar sin, ach thàinig e gu bhith na inbhe. Tha mòran chompanaidhean a b’ àbhaist a bhith ag amas air fuasglaidhean eile a-nis ag amas air na toraidhean aca atharrachadh gus taic a thoirt do Kubernetes.
A bharrachd air an sin, tha Kubernetes na fhuasgladh uile-choitcheann a tha a’ faighinn taic ann an sgòthan prìobhaideach, poblach agus tar-chinealach de mhòran luchd-reic, mar eisimpleir: AWS, Google Cloud, Microsoft Azure, Mail.ru Cloud Solutions.
Mar a tha Kubernetes ag obair le stòran-dàta
Chaidh Kubernetes a dhealbhadh an toiseach airson tagraidhean gun stàite a bhios a ’giullachd dàta ach nach bi a’ stòradh dad, leithid microservices no tagraidhean lìn. Tha stòran-dàta aig ceann eile an speactram, is e sin, tha iad nan tagraidhean stàiteil. Agus cha robh Kubernetes an dùil bho thùs airson a leithid de thagraidhean.
Ach, tha feartan ann a tha air nochdadh ann an Kubernetes o chionn ghoirid a leigeas le bhith a’ cleachdadh stòran-dàta agus tagraidhean stàiteil eile:
Tha bun-bheachd StatefulSet na shreath iomlan de phrìomhachasan airson a bhith a’ giullachd thachartasan mu bhith a’ cur stad air obair pods agus a’ cur an gnìomh Graceful Shutdown (dùnadh a-mach an iarrtais).
Is e stòran dàta a th’ ann an Leabhar Seasmhach a tha co-cheangailte ri pods, stuthan riaghlaidh Kubernetes.
Frèam Gnìomhaiche - is e sin, an comas co-phàirtean a chruthachadh airson a bhith a’ stiùireadh stòran-dàta agus tagraidhean stàiteil eile air an sgaoileadh thairis air iomadh nod.
A-nis ann an sgòthan poblach tha stòran-dàta mòra mar Sheirbheis, agus tha Kubernetes aig an deireadh, mar eisimpleir: CockroachCloud, InfluxDB, PlanetScale. Is e sin, tha stòr-dàta air Kubernetes chan e a-mhàin rudeigin a tha comasach gu teòiridheach, ach cuideachd rudeigin a tha ag obair ann an cleachdadh.
Gnìomhaiche Kubernetes airson Percona Server airson MongoDB.
Tha Kubernetes Operator airson XtraDB CLUSTER na sheirbheis a tha co-chosmhail ri MySQL agus a bheir seachad ruigsinneachd àrd agus cunbhalachd. Faodaidh tu cuideachd aon nód a chleachdadh mura h-eil feum air ruigsinneachd àrd, mar eisimpleir airson stòr-dàta dev.
Faodar luchd-cleachdaidh Kubernetes a roinn ann an dà bhuidheann. Bidh cuid de dhaoine a’ cleachdadh Kubernetes Operators gu dìreach - tha iad sin gu ìre mhòr nan luchd-cleachdaidh adhartach aig a bheil tuigse mhath air mar a tha an teicneòlas ag obair. Bidh cuid eile ga ruith air an deireadh-sheachdain - tha ùidh aig luchd-cleachdaidh mar sin ann an rudeigin mar Stòr-dàta mar Sheirbheis, chan eil iad airson a dhol a-steach do nuances Kubernetes. Airson an dàrna buidheann de luchd-cleachdaidh, tha fuasgladh stòr fosgailte eile againn - Inneal CLI Percona DBaaS. Is e fuasgladh deuchainneach a tha seo dhaibhsan a tha airson stòr fosgailte DBaaS fhaighinn stèidhichte air Kubernetes gun tuigse dhomhainn air an teicneòlas.
Mar a ruitheas tu DBaaS Percona air Google Kubernetes Engine
Is e Google Kubernetes Engine, nam bheachd-sa, aon de na buileachadh as gnìomhaiche de theicneòlas Kubernetes. Tha e ri fhaighinn ann an iomadh roinn den t-saoghal agus tha Inneal Loidhne-àithne sìmplidh agus goireasach (SDK), a leigeas leat sgriobtaichean a chruthachadh seach a bhith a’ riaghladh an àrd-ùrlar le làimh.
Gus am bi ar DBaaS ag obair, feumaidh sinn na pàirtean a leanas:
Ciùbtl.
Google Cloud SDK.
Percona DBaaS CLI.
Stàlaich kubectl
Bidh sinn a’ stàladh a’ phacaid airson an t-siostam-obrachaidh agad, bheir sinn sùil air eisimpleir Ubuntu. Tuilleadh mion-fhiosrachaidh an seo.
Bidh sinn a’ stàladh a’ phacaid bathar-bog san aon dòigh. Tuilleadh mion-fhiosrachaidh an seo.
# Add the Cloud SDK distribution URI as a package source
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg]
http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk
Stàladh Percona DBaaS CLI
Stàlaich bho stòran Percona. Tha Inneal CLI Percona DBaaS fhathast na thoradh deuchainneach, agus mar sin tha e suidhichte anns an ionad deuchainneach, a dh'fheumas a bhith air a chomasachadh air leth, eadhon ged a tha stòran Percona agad mu thràth.
Stèidhich stòran Percona a’ cleachdadh an inneal percona-release. An toiseach feumaidh tu am pasgan oifigeil percona-release a luchdachadh sìos agus a stàladh bho Percona:
An toiseach feumaidh tu logadh a-steach don chunntas Google agad. A bharrachd air an sin, leigidh Google Cloud le aon neach-cleachdaidh mòran phròiseactan neo-eisimeileach a bhith aca, mar sin feumaidh tu pròiseact obrach a shònrachadh a’ cleachdadh còd a’ phròiseict seo:
gcloud auth login
gcloud config set project hidden-brace-236921
An ath rud, bidh sinn a 'cruthachadh cruinneachadh. Airson an demo, chruthaich mi cruinneachadh Kubernetes de dìreach trì nodan - is e seo an ìre as ìsle a tha riatanach airson ruigsinneachd àrd:
An uairsin bidh sinn a’ cruthachadh àite-ainm agus ga dhèanamh gnìomhach. Tha Namespace, gu ìre mhòr, cuideachd coltach ri pròiseact no àrainneachd, ach mu thràth taobh a-staigh cruinneachadh Kubernetes. Tha e neo-eisimeileach bho phròiseactan Google Cloud:
Aon uair ‘s gu bheil sinn air a dhol tro na beagan cheumannan seo, is urrainn dhuinn cruinneachadh trì-nód a thòiseachadh leis an àithne shìmplidh seo:
# percona-dbaas mysql create-db example
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider: k8s
Engine: pxc
Resource Name: example
Resource Endpoint: example-proxysql.my-namespace.pxc.svc.local
Port: 3306
User: root
Pass: Nt9YZquajW7nfVXTTrP
Status: ready
Mar a nì thu ceangal ri brabhsair
Gu gnàthach, chan eil e ri fhaighinn ach taobh a-staigh Kubernetes. Is e sin, chan eil e ruigsinneach bhon t-seirbheisiche seo bhon do ruith thu an àithne “Cruthaich”. Gus am bi e ri fhaighinn, mar eisimpleir, airson deuchainnean le teachdaiche, feumaidh tu am port a chuir air adhart tro Port Mapping:
An uairsin bidh sinn a’ ceangal do neach-dèiligidh MySQL:
mysql -h 127.0.0.1 -P 3306 -uroot -pNt9YZquajW7nfVXTTrP
Òrdughan riaghlaidh brabhsair adhartach
Stòr-dàta air IP poblach
Ma tha thu ag iarraidh fuasgladh nas seasmhaiche airson cothrom air brabhsairean, gheibh thu seòladh IP taobh a-muigh. Anns a 'chùis seo, bidh an stòr-dàta ruigsinneach bho àite sam bith. Chan eil seo cho tèarainte, ach gu tric nas goireasaiche. Airson IP taobh a-muigh bidh sinn a’ cleachdadh an àithne a leanas:
# percona-dbaas mysql create-db exposed
--options="proxysql.serviceType=LoadBalancer"
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider: k8s
Engine: pxc
Resource Name: exposed
Resource Endpoint: 104.154.133.197
Port: 3306
User: root
Pass: k0QVxTr8EVfgyCLYse
Status: ready
To access database please run the following command:
mysql -h 104.154.133.197 -P 3306 -uroot -pk0QVxTr8EVfgyCLYse
Suidhich am facal-faire gu soilleir
An àite an siostam a’ gineadh facal-faire air thuaiream, faodaidh tu am facal-faire a shuidheachadh gu soilleir:
Is e fuasgladh a tha seo airson gnìomhan deuchainn gus MySQL a chuir an gnìomh cho luath agus cho furasta sa ghabhas, deuchainn a dhèanamh air, agus an uairsin a dhùnadh sìos no a chleachdadh airson leasachadh.
Cuidichidh inneal Percona DBaaS CLI thu gus fuasgladh coltach ri DBaaS a choileanadh air Kubernetes. Aig an aon àm, tha sinn a 'leantainn oirnn ag obair air a comas-gnìomh agus feumail.