Conas scamall hibrideach a thógáil ag baint úsáide as Kubernetes is féidir a chur in ionad DBaaS

Petr Zaitsev is ainm dom, is mise an Príomhfheidhmeannach, bunaitheoir percona agus ba mhaith liom a rá leat:

  • conas a tháinig muid ó réitigh foinse oscailte go Bunachar Sonraí mar Sheirbhís;
  • cad iad na cineálacha cur chuige atá ann maidir le bunachair shonraí a imscaradh sa néal;
  • conas is féidir le Kubernetes ionad DBaaS, deireadh a chur le spleáchas díoltóirí agus simplíocht DBMS a chothabháil mar sheirbhís.

Ullmhaíodh an t-alt bunaithe ar thuarascáil ag @Databases Meetup le Mail.ru Cloud Solutions & Tarantool. Mura bhfuil tú ag iarraidh léamh, is féidir leat féachaint ar:


Conas a tháinig muid ó fhoinse oscailte go Bunachar Sonraí mar Sheirbhís sa scamall

Tá mé ag obair i bhfoinse oscailte ó na 90í déanacha. Fiche bliain ó shin, ní raibh sé chomh héasca sin foinse oscailte a úsáid, mar bhunachair shonraí. Bhí sé riachtanach an cód foinse a íoslódáil, é a phaisteáil, é a thiomsú agus gan ach é a úsáid ansin.

Chuaigh foinse oscailte trí shraith simplithe ansin:

  • Tar.gz agus INSTALL foinsí ba ghá a chur le chéile;
  • pacáistí le spleáchais cosúil le .deb agus .rpm, nuair is gá duit ach sraith pacáistí a shuiteáil;
  • stórtha pacáiste amhail APT agus YUM, a bhfuil an tsuiteáil uathoibríoch acu;
  • réitigh cosúil le Docker agus Snap, a ligeann duit pacáistí a fháil trína shuiteáil gan spleáchas seachtrach.

Mar thoradh air sin, éiríonn sé níos éasca bogearraí foinse oscailte a úsáid agus íslíonn sé an bac ar iontráil a leithéid d’fheidhmchláir a fhorbairt.

Ag an am céanna, murab ionann agus an scéal 20 bliain ó shin, nuair a bhí gach duine ina shaineolaí tionóil, anois ní féidir le formhór na bhforbróirí na huirlisí a úsáideann siad a thógáil ón bhfoinse.

Go deimhin, níl sé seo go dona, mar:

  1. Is féidir linn bogearraí níos casta ach atá níos so-úsáidte a úsáid. Mar shampla, tá brabhsálaí áisiúil le húsáid, ach cuimsíonn sé go leor comhpháirteanna foinse oscailte agus tá sé deacair é a thógáil ón tús.
  2. Is féidir le níos mó daoine a bheith ina bhforbróirí foinse oscailte agus bogearraí eile, úsáideann gnólachtaí níos mó bogearraí, agus is mó an gá atá leis.

Is é an taobh thíos ná go bhfuil baint ag an gcéad chéim eile sa simpliú le húsáid réitigh scamall, agus mar thoradh air seo déantar glasáil díoltóirí áirithe, is é sin, ceangailteach do sholáthraí amháin. Bainimid úsáid as réitigh shimplí agus úsáideann soláthraithe comhpháirteanna foinse oscailte, ach i ndáiríre tá siad ingne le ceann de na scamaill mhóra. Is é sin, is é an bealach is éasca agus is tapúla chun foinse oscailte (agus bogearraí atá comhoiriúnach leis) a imscaradh sna scamaill, ag baint úsáide as API dílseánaigh.

Nuair a thagann sé chuig bunachair shonraí sa scamall, tá dhá chur chuige ann:

  1. Bailigh an bonneagar bunachar sonraí, mar atá i lárionad sonraí rialta. Is é sin, glac bloic thógála caighdeánacha: ríomh, stóráil, agus mar sin de, suiteáil Linux agus bunachar sonraí orthu, agus cumraigh iad.
  2. Bain úsáid as Bunachar Sonraí mar Sheirbhís, áit a dtugann an soláthraí bunachar sonraí réidh laistigh den scamall.

Is margadh atá ag fás go tapa é DBaaS faoi láthair toisc go ligeann sé d’fhorbróirí oibriú go díreach le bunachair shonraí agus go laghdaítear gnáthobair. Geallann an soláthraí Ard-Infhaighteacht agus scálú éasca, paisteáil bunachar sonraí, cúltacaí agus tiúnadh feidhmíochta a chinntiú.

Dhá chineál Bunachar Sonraí mar Sheirbhís bunaithe ar fhoinse oscailte agus rogha eile i bhfoirm Kubernetes

Tá dhá chineál Bunachar Sonraí mar Sheirbhís do bhunachair shonraí oscailte:

  1. Táirge foinse oscailte caighdeánach atá pacáistithe in inneall riaracháin chun é a imscaradh agus a bhainistiú go héasca.
  2. Réiteach tráchtála chun cinn le breiseáin éagsúla, comhoiriúnach le foinse oscailte.

Laghdaíonn an dá rogha an fhéidearthacht imirce idir scamaill agus laghdaítear iniomparthacht sonraí agus feidhmchlár. Mar shampla, in ainneoin go dtacaíonn cineálacha éagsúla scamaill go bunúsach leis an MySQL caighdeánach céanna, tá difríochtaí suntasacha eatarthu: i bhfeidhmiú, feidhmíocht, cúltaca, agus mar sin de. Is féidir leis a bheith dúshlánach aistriú ó néal amháin go scamall, go háirithe d’fheidhmchláir chasta.

Agus anseo eascraíonn an cheist - an féidir áisiúlacht Bunachar Sonraí mar Sheirbhís a fháil, ach mar réiteach foinse oscailte simplí?

Is é an drochscéal ná, ar an drochuair, níl aon réitigh den sórt sin ar an margadh fós. Is é an dea-scéal ná go bhfuil Kubernetes ann, a ligeann duit réitigh den sórt sin a chur i bhfeidhm.

Is córas oibriúcháin é Kubernetes don scamall nó don ionad sonraí a ligeann duit feidhmchlár a imscaradh agus a bhainistiú thar ilfhreastalaithe i mbraisle seachas ar óstach amháin.

Anois is é Kubernetes an ceannaire sa chatagóir bogearraí den sórt sin. Bhí go leor réitigh éagsúla le haghaidh fadhbanna den sórt sin, ach tháinig sé ar an gcaighdeán. Tá go leor cuideachtaí a bhain úsáid as díriú ar réitigh mhalartacha anois ag díriú ar a gcuid táirgí a oiriúnú chun tacú le Kubernetes.

Ina theannta sin, is réiteach uilíoch é Kubernetes a fhaigheann tacaíocht i scamaill phríobháideacha, phoiblí agus hibrideacha go leor díoltóirí, mar shampla: AWS, Google Cloud, Microsoft Azure, Mail.ru Cloud Solutions.

Conas a oibríonn Kubernetes le bunachair shonraí

Dearadh Kubernetes ar dtús le haghaidh feidhmchláir gan stát a phróiseálann sonraí ach nach stórálann aon rud, mar mhicreirbhísí nó feidhmchláir ghréasáin. Tá bunachair shonraí ag an taobh eile den speictream, is é sin, is feidhmchláir stáit iad. Agus ní raibh Kubernetes beartaithe ar dtús d'iarratais den sórt sin.

Mar sin féin, tá gnéithe le feiceáil in Kubernetes le déanaí a cheadaíonn úsáid bunachair shonraí agus feidhmchláir stáit eile:

  1. Is sraith iomlán primitives é coincheap StatefulSet chun imeachtaí a phróiseáil maidir le hobair pods a stopadh agus Graceful Shutdown a chur i bhfeidhm (múchadh intuartha an iarratais).
  2. Is stórais sonraí iad Imleabhair Seasmhacha a bhaineann le pods, rudaí bainistíochta Kubernetes.
  3. Creat Oibreora - is é sin, an cumas comhpháirteanna a chruthú chun bunachair shonraí agus feidhmchláir stáit eile a dháileadh thar go leor nóid a bhainistiú.

Cheana féin sna scamaill phoiblí tá Bunachair Shonraí móra mar Sheirbhís, agus is é Kubernetes an t-inneall, mar shampla: CockroachCloud, InfluxDB, PlanetScale. Is é sin, ní hamháin go bhfuil bunachar sonraí ar Kubernetes rud is féidir go teoiriciúil, ach freisin rud a oibríonn go praiticiúil.

Tá dhá réiteach foinse oscailte ag Percona do Kubernetes:

  1. Oibreoir Kubernetes le haghaidh Freastalaí Percona do MongoDB.
  2. Is seirbhís é Oibritheoir Kubernetes do XtraDB CLUSTER atá comhoiriúnach le MySQL agus soláthraíonn sé ard-infhaighteacht agus comhsheasmhacht. Is féidir leat nód amháin a úsáid freisin mura bhfuil gá le hinfhaighteacht ard, mar shampla do bhunachar sonraí dev.

Is féidir úsáideoirí Kubernetes a roinnt ina dhá ghrúpa. Úsáideann roinnt daoine Oibreoirí Kubernetes go díreach - is úsáideoirí chun cinn iad seo den chuid is mó a bhfuil tuiscint mhaith acu ar conas a oibríonn an teicneolaíocht. Ritheann daoine eile é ar an inneall - tá suim ag úsáideoirí den sórt sin i rud éigin cosúil le Bunachar Sonraí mar Sheirbhís, níl siad ag iarraidh dul isteach i nuances Kubernetes. Don dara grúpa úsáideoirí, tá réiteach foinse oscailte eile againn - Percona DBaaS CLI Tool. Is réiteach turgnamhach é seo dóibh siúd ar mian leo foinse oscailte DBaaS a fháil bunaithe ar Kubernetes gan tuiscint dhomhain ar an teicneolaíocht.

Conas DBaaS Percona a rith ar Inneall Kubernetes Google

Is é Google Kubernetes Engine, i mo thuairim, ceann de na feidhmiúcháin is feidhmiúla de theicneolaíocht Kubernetes. Tá sé ar fáil i go leor réigiún ar fud an domhain agus tá Uirlis Líne Ordú (SDK) simplí agus áisiúil ann, a ligeann duit scripteanna a chruthú seachas an t-ardán a bhainistiú de láimh.

Ionas go n-oibreoidh ár DBaaS, ní mór dúinn na comhpháirteanna seo a leanas:

  1. Cubectl.
  2. Google Cloud SDK.
  3. Percona DBaaS CLI.

Suiteáil kubectl

Suiteáil muid an pacáiste do do chóras oibriúcháin, féachfaimid ar shampla Ubuntu. Tuilleadh sonraí anseo.

sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

Suiteáil Google Cloud SDK

Suiteáilimid an pacáiste bogearraí ar an mbealach céanna. Tuilleadh sonraí anseo.

# 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

Suiteáil Percona DBaaS CLI

Suiteáil ó stórtha Percona. Is táirge turgnamhach fós é Percona DBaaS CLI Tool, mar sin tá sé suite sa stór turgnamhach, a chaithfear a chumasú ar leithligh, fiú má tá stórtha Percona suiteáilte agat cheana féin.

Níos mó anseo.

Algartam suiteála:

  1. Socraigh stórtha Percona ag baint úsáide as an uirlis percona-scaoileadh. Ar dtús is gá duit an pacáiste oifigiúil percona-scaoileadh ó Percona a íoslódáil agus a shuiteáil:
    wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
    sudo dpkg -i percona-release_latest.generic_all.deb
  2. Cumasaigh comhpháirt stórtha na huirlise turgnamhaí mar seo a leanas:
    sudo percona-release enable tools experimental
    
  3. Suiteáil pacáiste percona-dbaas-cli:
    sudo apt-get update
    sudo apt-get install percona-dbaas-cli

Oibriú na gcomhpháirteanna a shocrú

Tuilleadh faoi shocruithe anseo.

Ar dtús ní mór duit logáil isteach i do Chuntas Google. Ina theannta sin, ceadaíonn Google Cloud d’úsáideoir amháin go leor tionscadal neamhspleách a bheith aige, mar sin ní mór duit tionscadal oibre a shonrú ag baint úsáide as an gcód don tionscadal seo:

gcloud auth login
gcloud config set project hidden-brace-236921

Ansin, cruthaímid braisle. Don taispeántas, chruthaigh mé braisle Kubernetes de thrí nód amháin - is é seo an t-íosmhéid a theastaíonn le haghaidh infhaighteacht ard:

gcloud container clusters create --zone us-central1-a your-cluster-name --cluster-version 1.15 --num-nodes=3

Tugann an t-ordú kubectl seo a leanas na pribhléidí atá ag teastáil don úsáideoir reatha:

kubectl create clusterrolebinding cluster-admin-binding-$USER 
--clusterrole=cluster-admin --user=$(gcloud config get-value core/account)

Ansin cruthaímid ainmspás agus déanaimid gníomhach é. Is cosúil, go garbh, le hainmspás le tionscadal nó le timpeallacht, ach cheana féin taobh istigh de bhraisle Kubernetes. Tá sé neamhspleách ar thionscadail Google Cloud:

kubectl create namespace my-namespace
kubectl config set-context --current --namespace=my-namespace

Ag tosú an bhraisle

Nuair a bheidh na céimeanna seo againn, is féidir linn cnuasach trí nód a thosú leis an ordú simplí 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

Conas a nascadh le braisle

De réir réamhshocraithe, níl sé ar fáil ach taobh istigh de Kubernetes. Is é sin, níl sé inrochtana ón bhfreastalaí seo ónar rith tú an t-ordú “Cruthaigh”. Chun é a chur ar fáil, mar shampla, le haghaidh tástálacha le cliant, ní mór duit an calafort a chur ar aghaidh trí Mhapáil Port:

kubectl port-forward svc/example-proxysql 3306:3306 $

Ansin nascann muid do chliant MySQL:

mysql -h 127.0.0.1 -P 3306 -uroot -pNt9YZquajW7nfVXTTrP

Ard-orduithe bainistíochta braisle

Bunachar sonraí ar IP poiblí saor in aisce,

Más mian leat réiteach níos buaine maidir le hinfhaighteacht braisle, is féidir leat seoladh IP seachtrach a fháil. Sa chás seo, beidh an bunachar sonraí inrochtana ó áit ar bith. Níl sé seo chomh slán, ach go minic níos áisiúla. Le haghaidh IP seachtrach úsáidimid an t-ordú seo 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

Socraigh an focal faire go soiléir

In ionad an chórais pasfhocal a ghiniúint go randamach, is féidir leat an focal faire a shocrú go sainráite:

# percona-dbaas mysql create-db withpw --password=mypassword
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     withpw
Resource Endpoint: withpw-proxysql.my-namespace.pxc.svc.local
Port:              3306
User:              root
Pass:              mypassword
Status:            ready

Tá aschur na scripteanna á thaispeáint agam i bhformáid atá inléite ag an duine, ach tacaítear le formáid JSON freisin.

Fáil ard a mhúchadh

Leis an ordú seo a leanas is féidir leat infhaighteacht ard a dhíchumasú chun nód amháin a imscaradh:

# percona-dbaas mysql create-db singlenode 
--options="proxysql.enabled=false, allowUnsafeConfigurations=true,pxc.size=1"
Starting ......................................... [done]
Database started successfully, connection details are below:
Provider:          k8s
Engine:            pxc
Resource Name:     singlenode
Resource Endpoint: singlenode-pxc.my-namespace.pxc.svc.local
Port:              3306
User:              root
Pass:              22VqFD96mvRnmPMGg
Status:            ready

Is réiteach é seo chun tascanna a thástáil chun MySQL a chur ar bun chomh tapa agus chomh héasca agus is féidir, é a thástáil, agus ansin é a dhúnadh nó é a úsáid le haghaidh forbartha.

Cuidíonn uirlis Percona DBaaS CLI leat réiteach cosúil le DBaaS a bhaint amach ar Kubernetes. Ag an am céanna, leanaimid orainn ag obair ar a fheidhmiúlacht agus a inúsáidteacht.

Cuireadh an tuarascáil seo i láthair den chéad uair ag @Bunachair Shonraí Meetup le Mail.ru Cloud Solutions&Tarantool. Féach físeán léirithe eile agus liostáil d'fhógraí imeachtaí ar Telegram Timpeall Kubernetes ag Mail.ru Ghrúpa.

Cad eile atá le léamh ar an ábhar:

  1. Bunachair shonraí in ardán IIoT nua-aimseartha.
  2. Conas bunachar sonraí a roghnú le haghaidh tionscadail ionas nach mbeidh ort a roghnú arís.

Foinse: will.com

Add a comment