ProHoster > Blog > Pulega > Faʻafefea ona fausia se ao faʻapipiʻi e faʻaaoga ai Kubernetes e mafai ona sui le DBaaS
Faʻafefea ona fausia se ao faʻapipiʻi e faʻaaoga ai Kubernetes e mafai ona sui le DBaaS
O loʻu igoa o Petr Zaitsev, o aʻu o le Pule Sili, faʻavae percona ma ou te fia taʻu atu ia te oe:
pe na fa'afefea ona matou o mai mai faʻamatalaga tatala punaoa i Faʻamaumauga o se Auaunaga;
o a auala o loʻo i ai i le faʻapipiʻiina o faʻamaumauga i le ao;
auala e mafai ai e Kubernetes ona sui le DBaaS, faʻaumatia le faʻalagolago i tagata faʻatau ma tausia le faigofie o le DBMS o se tautua.
Na saunia le tusiga i luga o se lipoti i @Databases Meetup e Mail.ru Cloud Solutions & Tarantool. Afai e te le fia faitau, e mafai ona e matamata:
Na fa'afefea ona matou o mai mai le punaoa tatala i le Database o se Auaunaga i le ao
Sa ou galue i punaoa tatala talu mai le tuai o le 90s. I le luasefulu tausaga talu ai, o le faʻaaogaina o punaoa tatala, e pei o faʻamaumauga, e leʻi faigofie tele. Na manaʻomia le downloadina o le code source, faʻapipiʻi, tuʻufaʻatasia ona faʻaaogaina lea.
Open source ona alu lea i se faasologa o faʻafaigofie:
Tar.gz ma INSTALL punaoa e manaʻomia ona tuʻufaʻatasia;
afifi ma faʻalagolago e pei o le .deb ma le .rpm, lea e naʻo le faʻapipiʻiina o se seti o afifi;
fale teu oloa e pei o le APT ma le YUM, lea e otometi ai le faʻapipiʻiina;
fofo e pei o Docker ma Snap, lea e mafai ai ona e mauaina afifi e ala i le faʻapipiʻiina e aunoa ma se faʻalagolago i fafo.
O le i'uga, ua fa'afaigofie ai ona fa'aogaina polokalame tatala ma fa'aitiitia ai fo'i le pa e ulufale ai i le atina'eina o ia talosaga.
I le taimi lava e tasi, e le pei o le tulaga 20 tausaga talu ai, a o avea tagata uma ma tagata faʻapitoa faʻapotopotoga, o le taimi nei o le tele o tagata atinaʻe e le mafai ona fausia meafaigaluega latou te faʻaaogaina mai le punavai.
O le mea moni, e le leaga lenei mea, aua:
E mafai ona matou fa'aogaina polokalama sili atu ona lavelave ae sili atu ona fa'aoga-tagata. Mo se faʻataʻitaʻiga, o se suʻesuʻega e faigofie ona faʻaoga, ae e aofia ai le tele o mea e tatala ai punaoa ma e le faigofie ona fausia mai le sasa.
E tele tagata e mafai ona avea ma atinaʻe o punaoa tatala ma isi polokalama, sili atu polokalama e faʻaaogaina e pisinisi, ma e manaʻomia tele.
O le pito i lalo o le isi laasaga i le faʻafaigofie e fesoʻotaʻi ma le faʻaogaina o fofo o ao, ma o lenei mea e taʻitaʻia ai se faʻatau faʻatau loka-i totonu, o lona uiga, fusia i le tasi tagata faʻatau. Matou te faʻaogaina fofo faigofie ma faʻaogaina e le au faʻapipiʻi vaega o punaoa tatala, ae o le mea moni o loʻo fao i se tasi o ao tetele. O lona uiga, o le auala pito sili ona faigofie ma sili ona vave e faʻapipiʻi ai punaoa tatala (ma polokalama e fetaui ma ia) o loʻo i totonu o ao, e faʻaaoga ai se API faʻapitoa.
A oʻo mai i faʻamaumauga i le ao, e lua auala:
Faʻapipiʻi faʻamaumauga faʻamaumauga, pei o se nofoaga autu masani. O lona uiga, ave poloka faufale masani: faʻatautaia, teuina, ma isi, faʻapipiʻi Linux ma se faʻamaumauga i luga oi latou, ma faʻapipiʻi.
Fa'aaogā le Fa'amaumauga e fai ma Au'aunaga, lea e tu'uina atu ai e le 'au'aunaga se fa'amaumauga tu'ufa'atasia i totonu o le ao.
O le DBaaS o se maketi faʻavavevave i le taimi nei aua e mafai ai e le au atinaʻe ona galulue saʻo ma faʻamaumauga ma faʻaitiitia galuega masani. E fa'amoemoe le 'au'aunaga e fa'amautinoa le Avanoa Maualuga ma le fa'agofieina o le fa'avasegaina, fa'apipi'i fa'amaumauga, fa'amaumauga, ma le fa'atulagaina o fa'atinoga.
E lua ituaiga o Faʻamaumauga o se Auaunaga e faʻavae i luga o punaoa tatala ma se isi mea i foliga o Kubernetes
E lua ituaiga o Fa'amaumauga o se Au'aunaga mo fa'amaumauga tatala:
O se oloa fa'asalalau fa'asalalau fa'apipi'i i totonu o se fa'atonuga pito i tua mo le fa'atinoina faigofie ma le puleaina.
O se fofo fa'atau pisinisi fa'atasi ai ma fa'aopoopoga eseese, e fetaui ma fa'apogai matala.
O filifiliga uma e lua e faʻaitiitia ai le avanoa e femalagaʻi ai i le va o ao ma faʻaitiitia ai le feaveaʻi o faʻamatalaga ma talosaga. Mo se faʻataʻitaʻiga, e ui lava i le mea moni o ituaiga eseese o ao e lagolagoina le tulaga tutusa MySQL, o loʻo i ai eseesega taua i le va oi latou: i le gaioiga, faʻatinoga, faʻamaumauga, ma isi. O le faimalaga mai le tasi ao i le isi e mafai ona faigata, aemaise lava mo faʻaoga faigata.
Ma o iinei e tulaʻi mai ai le fesili - e mafai ona maua le faʻaogaina o le Database e avea o se Auʻaunaga, ae o se faʻamatalaga faigofie matala?
O le tala leaga e faapea, o le mea e leaga ai, e leai ni fofo faapena i luga o le maketi. O le tala fiafia o loʻo i ai Kubernetes, lea e mafai ai ona e faʻatinoina ia fofo.
Kubernetes ose faiga fa'aoga mo le ao po'o le nofoaga autu o fa'amatalaga e mafai ai e oe ona fa'apipi'i ma fa'atautaia se talosaga i luga o le tele o 'au'aunaga i totonu o se fuifui nai lo le 'au e tasi.
O le taimi nei o Kubernetes o le taʻitaʻi i le vaega o ia polokalama. E tele fofo eseese mo ia faafitauli, ae na avea ma tulaga masani. O le tele o kamupani sa masani ona taulaʻi i isi fofo o loʻo taulaʻi nei i le fetuunaʻi oa latou oloa e lagolago ai Kubernetes.
E le gata i lea, o Kubernetes o se fofo lautele lea e lagolagoina i ao tumaoti, lautele ma hybrid ao o le tele o tagata faʻatau, mo se faʻataʻitaʻiga: AWS, Google Cloud, Microsoft Azure, Mail.ru Cloud Solutions.
Fa'afefea ona galue Kubernetes ma fa'amaumauga
O Kubernetes na muai fuafuaina mo talosaga e leai ni setete e fa'agasolo ai fa'amaumauga ae le teuina se mea, e pei o microservices po'o talosaga i luga ole laiga. O fa'amaumauga o lo'o i le isi pito o le fusi o alaleo, o lona uiga, o lo'o fa'atatau i talosaga. Ma e le'i fuafuaina muamua Kubernetes mo ia talosaga.
Ae ui i lea, o loʻo i ai foliga na faʻaalia i Kubernetes talu ai nei e faʻatagaina ai le faʻaogaina o faʻamaumauga ma isi faʻamatalaga faʻamatalaga:
O le StatefulSet concept o se fa'asologa atoa o mea muamua mo le fa'agaioiina o mea tutupu e uiga i le taofia o le galuega a pods ma le fa'atinoina o le Graceful Shutdown (fa'ato'a fa'atonuina o le talosaga).
Fa'aauau Volumes o fa'amaumauga ia e feso'ota'i ma pods, mea fa'atonu Kubernetes.
Ta'iala Fa'atonu - o lona uiga, o le mafaia ona fai vaega mo le fa'afoeina o fa'amaumauga ma isi fa'amatalaga fa'atulafonoina o lo'o tufatufa atu i le tele o pona.
Ua i ai nei i ao lautele o loʻo i ai faʻamaumauga tetele o se Auaunaga, o lona pito i tua o Kubernetes, mo se faʻataʻitaʻiga: CockroachCloud, InfluxDB, PlanetScale. O lona uiga, o se faʻamaumauga i luga o Kubernetes e le gata o se mea e mafai ona fai, ae o se mea foi e galue i le faʻatinoga.
O Percona e lua fa'amatalaga avanoa mo Kubernetes:
Kubernetes Operator mo Percona Server mo MongoDB.
Kubernetes Operator mo XtraDB CLUSTER o se auaunaga e fetaui ma MySQL ma maua ai le avanoa maualuga ma le tumau. E mafai foi ona e fa'aogaina se node e tasi pe a le mana'omia le avanoa maualuga, mo se fa'ata'ita'iga mo se fa'amaumauga dev.
E mafai ona vaevaeina tagata fa'aoga Kubernetes i ni vaega se lua. O nisi tagata latou te fa'aoga sa'o le Kubernetes Operators - o nei tagata e masani lava o lo'o fa'aogaina le fa'aogaina o lo'o i ai se malamalamaga lelei i le fa'aogaina o tekinolosi. O isi e taʻavale i le pito i tua - o tagata faʻaoga e fiafia i se mea e pei o le Database as a Service, latou te le manaʻo e suʻesuʻe i nuances o Kubernetes. Mo le vaega lona lua o tagata faʻaoga, o loʻo i ai se isi fofo faʻamatalaga tatala - Percona DBaaS CLI Tool. Ole fofo faʻataʻitaʻi lea mo i latou e manaʻo e maua se faʻamatalaga tatala DBaaS faʻavae i luga ole Kubernetes e aunoa ma se malamalamaga loloto i tekinolosi.
E faʻafefea ona faʻatautaia le DBaaS a Percona ile Google Kubernetes Engine
Google Kubernetes Engine, i loʻu manatu, o se tasi o faʻatinoga sili ona aoga o tekinolosi Kubernetes. E maua i le tele o itulagi o le lalolagi ma o loʻo i ai se Meafaigaluega Laina Poloaiga faigofie ma faigofie (SDK), lea e mafai ai ona e faia ni tusitusiga nai lo le puleaina ma le lima o le tulaga.
Ina ia mafai ona galue a matou DBaaS, matou te manaʻomia vaega nei:
Kubectl.
Google Cloud SDK.
Percona DBaaS CLI.
Faʻapipiʻi kubectl
Matou te faʻapipiʻi le afifi mo lau faiga faʻaogaina, matou te vaʻavaʻai i le faʻataʻitaʻiga a Ubuntu. Fa'amatalaga atili iinei.
Matou te faʻapipiʻiina le pusa polokalama i le auala lava e tasi. Fa'amatalaga atili iinei.
# 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
Faʻapipiʻi Percona DBaaS CLI
Faʻapipiʻi mai le faleoloa Percona. O le Percona DBaaS CLI Tool o se oloa faʻataʻitaʻi, o lea o loʻo iai i totonu o le fale faʻataʻitaʻiga, lea e tatau ona faʻatagaina ese, e tusa lava pe ua uma ona faʻapipiʻi lau faleoloa Percona.
Seti faleteuoloa Percona e faʻaaoga ai le meafaigaluega faʻasao-percona. Muamua e te manaʻomia e sii mai ma faʻapipiʻi le pusa faʻasalalau aloaia mai Percona:
Muamua e tatau ona e ulufale i lau Google account. E le gata i lea, Google Cloud e faʻatagaina se tasi tagata faʻaoga e tele ni galuega tutoʻatasi, o lea e tatau ai ona e faʻamaonia se galuega galue e faʻaaoga ai le code mo lenei poloketi:
gcloud auth login
gcloud config set project hidden-brace-236921
Le isi, matou te faia se fuifui. Mo le demo, na ou faia se fuifui Kubernetes e na o le tolu nodes - o le laʻititi lea e manaʻomia mo avanoa maualuga:
Ona matou faia lea o se igoa avanoa ma fa'agaoioia. Igoa igoa, pe a tautala, e pei foi o se poloketi poʻo se siosiomaga, ae o loʻo i totonu o le Kubernetes cluster. E tutoatasi mai Google Cloud galuega faatino:
A maeʻa ona tatou uia nei laasaga, e mafai ona tatou amataina se fuifui tolu-node i lenei poloaiga faigofie:
# 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
Fa'afefea ona fa'afeso'ota'i i se fuifui
E le mafai, e na'o totonu lava o Kubernetes e maua. O lona uiga, e le mafai ona maua mai lenei 'auʻaunaga lea na e faʻatautaia ai le poloaiga "Fausia". Ina ia avanoa, mo se faʻataʻitaʻiga, mo suʻega ma se tagata o tausia, e tatau ona e tuʻuina atu le taulaga e ala i le Port Mapping:
mysql -h 127.0.0.1 -P 3306 -uroot -pNt9YZquajW7nfVXTTrP
Fa'atonuga pulega fa'aopoopo
Fa'amaumauga ile IP lautele
Afai e te manaʻo i se fofo tumau mo le avanoa faʻapipiʻi, e mafai ona e mauaina se tuatusi IP fafo. I lenei tulaga, o le database o le a mafai ona maua mai soʻo se mea. O lenei mea e itiiti le saogalemu, ae masani ona sili atu ona faigofie. Mo IP fafo matou te faʻaaogaina le poloaiga lenei:
# 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
Seti manino le upu faataga
Nai lo o le faiga fa'atupu fa'afuase'i se fa'aupuga, e mafai ona e setiina le fa'aupuga manino:
Ole vaifofo lea mo su'ega galuega e fa'agaoioi ai MySQL i le vave ma le faigofie, fa'ata'ita'i, ona tapuni lea pe fa'aoga mo le atina'e.
O le meafaigaluega a le Percona DBaaS CLI e fesoasoani ia te oe e ausia se fofo DBaaS-pei o Kubernetes. I le taimi lava e tasi, matou te faʻaauau pea ona galulue i luga o lona faʻaogaina ma le faʻaaogaina.