ProHoster > ΠΠ»ΠΎΠ³ > Kev tswj hwm > Yuav ua li cas los tsim ib tug hybrid huab siv Kubernetes uas tuaj yeem hloov DBaaS
Yuav ua li cas los tsim ib tug hybrid huab siv Kubernetes uas tuaj yeem hloov DBaaS
Kuv lub npe yog Petr Zaitsev, Kuv yog CEO, tus tsim percona thiab kuv xav qhia rau koj:
yuav ua li cas peb tuaj ntawm qhib qhov kev daws teeb meem rau Database raws li Kev Pabcuam;
dab tsi mus kom ze muaj nyob rau deploying databases nyob rau hauv huab;
Yuav ua li cas Kubernetes tuaj yeem hloov DBaaS, tshem tawm cov neeg muag khoom kev vam khom thiab tswj qhov yooj yim ntawm DBMS raws li kev pabcuam.
Tsab ntawv tau npaj los ntawm tsab ntawv ceeb toom ntawm @Databases Meetup los ntawm Mail.ru Huab Solutions & Tarantool. Yog tias koj tsis xav nyeem, koj tuaj yeem saib:
Yuav ua li cas peb tuaj ntawm qhib qhov chaw rau Database raws li Kev Pabcuam hauv huab
Kuv tau ua haujlwm hauv qhov chaw qhib txij li xyoo 90s lig. Nees nkaum xyoo dhau los, siv qhov chaw qhib, xws li databases, tsis yooj yim li. Nws yog tsim nyog mus download tau qhov chaws code, patch nws, compile nws thiab tsuas yog ces siv nws.
Qhib qhov chaw ces mus los ntawm ib tug series ntawm simplifications:
Tar.gz thiab INSTALL qhov chaw uas yuav tsum tau muab tso ua ke;
tej pob khoom nrog dependencies zoo li .deb thiab .rpm, qhov twg koj tsuas yog yuav tsum tau nruab ib txheej ntawm pob khoom;
pob repositories zoo li APT thiab YUM, nrog rau qhov kev teeb tsa tsis siv neeg;
cov kev daws teeb meem xws li Docker thiab Snap, uas tso cai rau koj kom tau txais cov pob khoom los ntawm kev teeb tsa yam tsis muaj kev cuam tshuam sab nraud.
Yog li ntawd, nws yooj yim dua los siv qhib qhov software thiab tseem txo qis qhov cuam tshuam rau kev nkag mus rau hauv kev tsim cov ntawv thov.
Tib lub sijhawm, tsis zoo li qhov xwm txheej 20 xyoo dhau los, thaum txhua tus yog tus kws tshaj lij kev sib dhos, tam sim no cov neeg tsim khoom feem ntau tsis tuaj yeem tsim cov cuab yeej uas lawv siv los ntawm qhov chaw.
Ntau tus neeg tuaj yeem dhau los ua tus tsim tawm ntawm qhov qhib thiab lwm yam software, ntau software yog siv los ntawm cov lag luam, thiab kev xav tau ntau dua.
Lub downside yog tias cov kauj ruam tom ntej hauv kev yooj yim yog txuam nrog kev siv huab kev daws teeb meem, thiab qhov no ua rau qee tus neeg muag khoom kaw-hauv, uas yog, khi rau ib tus neeg muag khoom. Peb siv cov kev daws teeb meem yooj yim thiab cov neeg muab kev pabcuam siv cov khoom siv qhib, tab sis qhov tseeb lawv raug ntsia rau ib qho ntawm cov huab loj. Ntawd yog, txoj hauv kev yooj yim tshaj plaws thiab ceev tshaj plaws los siv qhib qhov chaw (thiab software sib xws nrog nws) yog nyob rau hauv huab, siv tus tswv API.
Thaum nws los txog rau databases hauv huab, muaj ob txoj hauv kev:
Sib sau cov database infrastructure, xws li nyob rau hauv ib tug niaj hnub data center. Ntawd yog, coj cov qauv tsev thaiv: suav, khaws cia, thiab lwm yam, nruab Linux thiab database rau lawv, thiab teeb tsa lawv.
Siv Database ua Kev Pabcuam, qhov twg tus kws kho mob muab cov ntaub ntawv npaj ua tiav hauv huab.
DBaaS yog kev lag luam loj hlob sai tam sim no vim nws tso cai rau cov neeg tsim khoom ua haujlwm ncaj qha nrog cov ntaub ntawv thiab txo qis kev ua haujlwm niaj hnub. Tus kws zov me nyuam tau ua los xyuas kom ntseeg tau tias muaj peev xwm txaus thiab yooj yim me me, database posting, thaub qab, thiab kho kom zoo.
Ob hom Database ua Kev Pabcuam raws li qhib qhov chaw thiab lwm txoj hauv kev ntawm Kubernetes
Muaj ob hom Database ua Kev Pabcuam rau qhib databases:
Tus qauv qhib qhov khoom ntim rau hauv kev tswj hwm backend kom yooj yim xa mus thiab tswj.
Thiab ntawm no cov lus nug tshwm sim - nws puas tuaj yeem tau txais kev yooj yim ntawm Database raws li Kev Pabcuam, tab sis raws li qhov yooj yim qhib qhov kev daws teeb meem?
Cov xov xwm phem yog tias, hmoov tsis, tsis muaj cov kev daws teeb meem zoo li no hauv kev ua lag luam. Qhov xwm zoo yog tias muaj Kubernetes, uas tso cai rau koj los siv cov kev daws teeb meem zoo li no.
Kubernetes yog ib qho kev khiav hauj lwm rau huab lossis cov chaw zov me nyuam uas tso cai rau koj siv thiab tswj cov ntawv thov thoob plaws ntau lub servers hauv pawg ntau dua li ntawm ib tus tswv tsev.
Tam sim no Kubernetes yog tus thawj coj hauv qeb ntawm cov software zoo li no. Muaj ntau ntau yam kev daws teeb meem rau cov teeb meem zoo li no, tab sis nws tau dhau los ua tus qauv. Ntau lub tuam txhab uas siv los tsom rau lwm txoj kev daws teeb meem tam sim no tsom rau kev hloov kho lawv cov khoom los txhawb Kubernetes.
Tsis tas li ntawd, Kubernetes yog ib qho kev daws teeb meem thoob ntiaj teb uas tau txais kev txhawb nqa hauv cov huab ntiag tug, pej xeem thiab huab cua sib xyaw ntawm ntau tus neeg muag khoom, piv txwv li: AWS, Google Huab, Microsoft Azure, Mail.ru Huab Solutions.
Kubernetes ua haujlwm li cas nrog databases
Kubernetes yog tsim los rau cov ntawv thov tsis muaj lub xeev uas ua cov ntaub ntawv tab sis tsis khaws ib yam dab tsi, xws li microservices lossis web applications. Databases yog nyob rau lwm qhov kawg ntawm lub spectrum, uas yog, lawv yog cov ntaub ntawv siv tau. Thiab Kubernetes tsis yog thawj zaug npaj rau cov ntawv thov no.
Txawm li cas los xij, muaj cov yam ntxwv uas tau tshwm sim hauv Kubernetes tsis ntev los no uas tso cai rau siv cov ntaub ntawv thiab lwm yam kev siv hauv xeev:
Lub tswv yim StatefulSet yog tag nrho cov txheej txheem tseem ceeb rau kev ua cov txheej xwm hais txog kev txwv kev ua haujlwm ntawm cov pods thiab siv Graceful Shutdown (kwv yees kaw ntawm daim ntawv thov).
Peb nruab lub software pob nyob rau hauv tib txoj kev. Paub meej ntxiv S, SΡS,.
# 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
Teeb tsa Percona repositories siv lub cuab yeej percona-tso. Ua ntej koj yuav tsum rub tawm thiab nruab lub official percona-tso pob los ntawm Percona:
Ua ntej koj yuav tsum nkag mus rau hauv koj tus account Google. Tsis tas li ntawd, Google Cloud tso cai rau ib tus neeg siv kom muaj ntau txoj haujlwm ywj pheej, yog li koj yuav tsum tau qhia txog kev ua haujlwm uas siv cov cai rau txoj haujlwm no:
gcloud auth login
gcloud config set project hidden-brace-236921
Tom ntej no, peb tsim ib pawg. Rau qhov demo, kuv tsim Kubernetes pawg ntawm tsuas yog peb lub nodes - qhov no yog qhov tsawg kawg nkaus uas yuav tsum tau muaj rau siab:
Tom qab ntawd peb tsim lub namespace thiab ua kom nws nquag. Namespace yog, kwv yees hais lus, kuj zoo li qhov project lossis ib puag ncig, tab sis twb nyob hauv Kubernetes pawg. Nws yog ywj siab los ntawm Google Cloud tej yaam num:
mysql -h 127.0.0.1 -P 3306 -uroot -pNt9YZquajW7nfVXTTrP
Advanced cluster tswj commands
Database ntawm pej xeem IP
Yog tias koj xav tau kev daws teeb meem ntau dua rau kev muaj nyob hauv pawg, koj tuaj yeem tau txais qhov chaw nyob IP sab nraud. Hauv qhov no, lub database yuav nkag tau los ntawm txhua qhov chaw. Qhov no tsis tshua muaj kev ruaj ntseg, tab sis feem ntau yooj yim dua. Rau sab nraud IP peb siv cov lus txib hauv qab no:
# 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
Qhia meej tus password
Es tsis txhob lub kaw lus random tsim tus password, koj tuaj yeem teeb tus password kom meej:
Qhov no yog kev daws teeb meem rau kev sim ua haujlwm kom tau txais MySQL nce thiab khiav sai thiab yooj yim li sai tau, sim nws, thiab tom qab ntawd quav nws lossis siv nws rau kev txhim kho.
Cov cuab yeej Percona DBaaS CLI pab koj ua tiav DBaaS zoo li kev daws teeb meem ntawm Kubernetes. Nyob rau tib lub sijhawm, peb txuas ntxiv ua haujlwm ntawm nws txoj haujlwm thiab kev siv tau.