áľá ááľá ááá´á áĽáŁááá, áĽá áá áĽáŤ á áľááá, ááľáŤá˝ áá
- á¨áááľ ááá áááľááá˝ áá° áłáłá¤á áĽáá° á áááááľ áĽáá´áľ áĽáá°ááŁá;
- á¨ááἠááłáá˝á á á°áá ááľáĽ ááááááľ áá á áááľ á ááŤá¨áŚá˝ á á;
- Kubernetes DBaaSá áĽáá´áľ áĽáá°áá°áŤáŁ á¨á á áŤá˘ áĽááááľá á ááľáááľ áĽá á¨á˛á˘á¤áá¤áľá áááááľ áĽáá° á áááááľ ááľá á á á˘
á˝áá á¨á°áááá @Databases Meetup á Mail.ru Cloud Solutions & Tarantool á áá¨á á ááᣠáá°á¨áľ ááᢠááá ἠáŤááááá áááá¨áľ áľá˝ááá áĄ-
á¨áááľ ááá áá° áłáłá¤á áĽáá° á áááááľ á á°áá ááľáĽ áĽáá´áľ áĽáá°ááŁáá˘
á¨90ááš áááŁá°á ááᎠá áááľ ááá áĽá¨á°áŤá ááᢠá¨á፠áááłáľ á ááľ áĽáá° áłáłá¤á áŤá áááľ áááŽá˝á áá áá á áŁá ááá á ááá á¨áᢠá¨ááá áŽáąá ááá¨áľáŁ ááá áᣠáá ááá áĽá á¨á፠áĽáť áá áá á áľááá áá áá˘
áááľ ááá á¨á፠á°á¨áłáłá ááááŤáá˝á á ááááĄ-
- Tar.gz áĽá áá á áá áŤááŁá¸á áááŽá˝á INSTALL;
- áĽáá° .deb áĽá .rpm áŤá áĽááá˝ áŤááľ ááŹáá˝áŁá¨áĽá áá˝á áľáĽáľáĽ áĽáť ááŤá á¨ááŤáľááááá˘
- áĽáá° APT áĽá YUM áŤá á¨áĽá á áá¨ááťáá˝áŁ ááŤá á ááśáá˛á á¨ááá áľáŁ
- áĽáá° Docker áĽá Snap áŤá áááľááá˝ áŤá ááŤá áĽááá˝ á ááŤá áĽá áá˝á áĽáá˛áá á áŤáľá˝áááłáá˘
á áá¤áąáᣠáááľ ááá áśááľááá ááá áá ááá ááááᣠáĽá áĽáá°áá áŤá áá°áá áŞáŤáá˝á áááľáŤáľ á¨áááŁáľ áĽáá ááľáá ááááłáá˘
á á°ááłáłá áá, ᨠ20 áááłáľ á ááľ á¨áá á¨á áááł á á°áá¨, ááá á°á á¨áá°áĽá°á˘áŤ áŁáá፠á áá á¨á áľ áá, á áá á áĽááááš ááá˘áá˝ á¨áá áááŁá¸áá ááłáŞáŤáá˝ á¨ááአááááŁáľ á áá˝áá.
á áĽáááą, áá ááĽá á áá°áá, ááááŤáąá:
- á¨á áá ááľáĽáľáĽ ááá áá áá°á áá ááš á¨áá áśááľááŽá˝á áá áá áĽáá˝áááᢠáááłá, á áłá˝ ááá áá ááš áá, ááá áá áĽá áááľ ááá áááá˝á áŤáŤáľáłá áĽá á¨áŁáś áááááŁáľ á¨áááá˝ áá.
- áĽá á°áá˝ á¨áááľ ááá áĽá ááá˝ áśááľááŽá˝ ááá˘áá˝ ááá áá˝ááᣠáĽá áśááľááŽá˝ á áááľ áľáŤ áá ááá áĽá á¨áą ááááľ á¨á áá ááá˘
ááłáą á¨áááĽáá á¨áá áá á°á¨á á¨á°áá áááľááá˝ á á ááá áá á¨á°áŤáŤá áá, áĽá áá áá° á ááľ á¨á°áá°á á¨áťá áááá, áááľá á¨á ááľ á á áŤá˘ áá á¨á°áŤáŤá áá. ááá áááľááá˝á áĽáá áááá áĽá á á áŤá˘áá˝ áááľ ááá áááá˝á áá ááá, áá á áĽáááą áĽááą á¨áľáá á°áááá˝ á á ááą áá á°á¸ááá¨áá. áááľá áááľ áááá (áĽá á¨áĽáą áá á°áłáá á¨áá áśááľááŽá˝á) ááá°ááŤáľ ááá áĽá ááŁá ááááľ á¨áŁáá¤áľááľ á¤áá áá á áá áá á á°áá ááľáĽ ááá˘
áá° á°ááá á¨ááἠááł áľáááŁáŁ áááľ á ááŤá¨áŚá˝ á ááĄ-
- á áá°á á á¨áá¨á ááĽá¨á ááľáĽ áĽáá°ááłá¨á á¨áá¨á ááąá áá á¨á° áááľ áŤá°áŁáľáĄá˘ áŤá áááľ á°á¨ááá á¨á á á á¨áááŁáł áĽááŽá˝á ááá°áąáĄ áľááľáŁ áá¨ááť áĽá á¨ááłá°ááľá á ááŤá¸á áá ááááľá áĽá áłáłá¤á ááŤá áĽá áŤáá áŻá¸áá˘
- á á áŤá˘á ááá á¨áá á¨ááἠááł á á°áá ááľáĽ á¨ááŤáááĽá áľ áłáłá¤á áĽáá° á áááááľ áá ááá˘
DBaaS á á áá áá á ááĽááľ áĽáŤá°á áŤá áá ፠áá ááááŤáąá ááá˘áá˝ á¨áá¨á ááśá˝ áá á ááĽáł áĽáá˛á°áŠ áĽá áá°á á áľáŤá áľáááááľá˘ á á áŤá˘á á¨áá°á á°ááááľ áĽá ááá ááŹáľáŁ á¨ááἠááł áá áááᣠááľáŹáá˝á áĽá á¨á ááťá¸á ááľá°áŤá¨áŤá ááá¨ááἠááľááá˘
á áááľ ááá áá á¨á°áá°á¨áą áááľ á áááľ á¨ááἠááł áĽáá° á áááááľ áĽá á ááŤá á áŠá áááľáľ ááá
ááááľ á¨ááἠááłáá˝ áĽáá° á áááááľ áááľ ááááľ á¨ááἠááłáá˝ á ááĄ
- áááá áá°ááŤáľ áĽá á áľá°áłá°á á á áľá°áłá°á ááᣠá¨áłá¸á áá°á á áááľ ááá áááľá˘
- á¨áá á¨áááľ áááľá á¨á°ááŤáŠ á°á¨ááŞáá˝ ááᣠá¨áááľ ááá áá á°áłááá˘
áááąá á ááŤáŽá˝ á á°áá ááŤá¨á á¨áá°á°áľ áĽáľáá ááááłá áĽá á¨ááἠáĽá á¨áá°áá áŞáŤáá˝á á°áááłáá˝ááľ ááááłá. áááłá ᣠááá áĽááłá á¨á°ááŤáŠ á¨á°áá ááááśá˝ á áá á¨áą á°ááłáłá áá°á á MySQL á¨áá°áá á˘ááá á ááŤá¨áá¸á ááá ááŠááśá˝ á á-á á á áŤá ᣠá á áááá ᣠá áá áŁá á፠ᣠááá°. á¨á ááą á°áá áá° áá áá¸ááá ááłá ááá áá˝áááŁá á°áá áá°ááłá°áĄ á áááŹá˝áá˝á˘
áĽá áĽáá áĽáŤáá á¨áááłá - ââá¨ááἠááłáá áĽáá° á áááááľ, áá áĽáá° ááá áááľ ááá áááľá ááááľ ááťáá?
ááĽá ááá, á ááŤáłáá áááł, á áá ፠áá áĽáľáŤáá áĽáá°áá á áááľ áááľááá˝ á¨áá. áĽáŠ ááá áĽáá°áá á áááľ áááľááá˝á á°ááŁáŤá áááľá¨á á¨ááŤáľá˝á áŠá áááľáľ á á.
Kubernetes á á ááľ á áľá°ááá áá áłááá á á ááľ áááľá°á ááľáĽ á á ááŤáł á ááááŽá˝ áá á áááŹá˝áá ááá°ááŤáľ áĽá áááľá°áłá°á á¨ááŤáľá˝á á¨ááááľ ááá á¨ááἠááá¨á áŚááŹá˛áá á˛áľá°á ááá˘
á áá áŠá áááľáľ á áĽáá°áá á áááľ áśááľáá ááľáĽ ááľáĽ á᪠áá. ááĽáá°áá á áááľ á˝ááŽá˝ áĽá á¨á°ááŤáŠ áááľááá˝ áá áŠ, ááá áá á°á¨áá áá. á á ááŤá áááľááá˝ áá áŤá°áŽáŠ áĽá áŠáŁááŤáá˝ á áá áŠá áááľáľá ááá°áá áááśáťá¸áá á ááááľ áá áŤá°áŠáŤá.
á á°á¨ááŞá áŠá áááľáľ á áĽá á á
áŤá˘áá˝ á áá ᣠá á á°áŁáŁá áĽá á áľáĽáá
á°áááá˝ á¨áá°áá áááá°áá áááľá áá ᣠáááłá AWS ᣠGoogle Cloud ᣠMicrosoft Azure áŁ
Kubernetes á¨áá¨á ááśá˝ áá áĽáá´áľ áĽáá°áá°áŤ
áŠá áááľáľ á ááááŞáŤ á¨á°áá°áá ááá áááá¸á á áááŹá˝áá˝ áá áá¨áá áááŤáľáŹáą ááá áá ááá ááá á áŤá¨áá˝á áááłá áááᎠá°ááŞáľ ááá á¨áľá áá°áá áŞáŤáá˝á˘ á¨áá¨á ááśá˝ á áááá á¨áľáááľá¨á áŤá áá ááááᣠáŤá áááľ áááłá á áááŹá˝áá˝ áá¸áᢠáĽá áŠá áááľáľ á ááááŞáŤ ááĽáá°áá á áááľ áá°áá áŞáŤáá˝ á¨áłá°á á ááá á¨áá˘
ááá ááᣠá á áἠáá á Kubernetes ááľáĽ á¨ááἠááłáá˝á áĽá ááá˝ áľáááá á áááŹá˝áá˝á áá áá á¨ááá áą áŁá áŞáŤáľ á áá˘
- á¨StatefulSet á áá°-ááłáĽ á¨ááľ áľáŤáá˝á áľáááá áĽá á¨ááŤceful ááááľá (á¨áááá°áá á¨áá°áá áŞáŤáá ááááľ) áľááá°áá á ááľá°áśá˝á áááľáŹáľ áá á°á¨áłáłá á áľá áááłáá˝ ááá˘
- áá áĽáŤáá˝ á¨ááľáśá˝, á¨áŠá áááľáľ á áľá°áłá°á áĽááá˝ áá á¨á°ááŤá á¨ááἠáá¨ááťáá˝ áá¸á.
- áŚááŹá°á áááá - áááľá ᣠá¨ááἠááłáá˝á áĽá ááá˝ á áĽá á áááá˝ áá á¨á°á¨ááá ááááľáłá á áááŹá˝áá˝á áááľá°áłá°á áááá˝á á¨ááá á á˝ááłá˘
ááľááá á ááἠá°áá ááľáĽ áĽáá° á áááááľ áľáá áłáłá¤á á á ᣠá¨áááá áŠá áááľáľ áá ᣠáááłá CockroachCloud ᣠInfluxDB ᣠPlanetScaleᢠáŤá áááľ á Kubernetes áá áŤáá á¨ááἠááł á ááľá ááłáĽ á°á¨á áĽáť áłááá á á°ááŁáá á¨áá°áŤ ááá áá.
áááŽá ááŠá áááľáľ áááľ áááľ ááá áááľááá˝ á ááľá˘
- áŠá áááľáľ áŚááŹá°á ááááŽá á áááá ááááá˛á˘á˘
- Kubernetes áŚááŹá°á á XtraDB CLUSTER ᨠMySQL áá á°áłáá á¨áá áĽá á¨áá°á á°ááááľ áĽá ááĽááľ áŤáá á áááááľ ááᢠáĽáá˛áá á¨áá°á á°ááááľ á¨ááŤáľááá á¨áá á ááľ áá á ááľááá ááááľ áá áá áá˝áá, áááłá áá´á áłáłá¤á.
á¨áŠá áááľáľ á°á áááá˝ á áááľ áĄáľá áá¨áá áá˝ááᢠá ááłááľ á°áá˝ á¨áŠá áááľáľ áŚááŹá°áŽá˝á á ááĽáł áá ááá - áĽááá á áááááľ á¨áá á°á áááá˝ áá¸á á´ááááá áĽáá´áľ áĽáá°áá°áŤ áĽáŠ áááᤠáŤáá¸áᢠááá˝ á áááŁá áá áŤáŤááłá - áĽáá°áá áŤá á°á áááá˝ áĽáá° áłáłá¤á áĽáá° á áááááľ ááááľ á áá¸á ᣠáá° á¨áŠá áááľáľ ááŠááśá˝ ááľáĽ ááá°á˝ á áááááᢠáááá°áá á¨á°á áááá˝ áĄáľá áá áááľ ááá áááľá á áá - Percona DBaaS CLI Toolᢠáá á¨á´áááááá áĽáá áááᤠáłáŤáá á Kubernetes áá á¨á°áá á¨á° áááľ ááá DBaaS ááááľ ááááá á°áá˝ á¨áá¨áŤ áááľá ááá˘
á Google Kubernetes áá°á áá á¨áááŽá DBaaSá áĽáá´áľ áááľ áĽáá°ááťá
ááá áŠá áááľáľ áá°á á áĽá á áľá°áŤá¨áľ á¨áŠá áááľáľ á´áááá á áŁá á°ááŁáŤá á¨áááľ ááľáĽ á ááą ááᢠá áĽá á¨á áá áááá˝ á¨ááá áĽá ááá áĽá ááš á¨áá á¨áľááá ááľáá ááłáŞáŤ (á¤áľá˛áŹ) áŤáá á˛áá áá á ááľá¨áá á áĽá á¨ááľá°áłá°á ááá áľááŞááśá˝á áĽáá˛ááĽáŠ áŤáľá˝áááłáá˘
á¨áĽá DbaaS áĽáá˛á°áŤáŁ á¨áá¨á°ááľá áááá˝ áĽááááááá˘
- áŠá¤ááľá
- ááá ááááľ á¤áľá˛áŹá˘
- Percona DbaaS CLI.
kubectl á áŤá
ááľááá° áááá ááŹáá áĽáááááá, á¨áĄáĄááąá ááłá áĽáááá¨áłáá. á°á¨á᪠ááááŽá˝
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
ááá ááááľ á¤áľá˛áŹá á ááŤá áá
á¨áśááľáá ááŹáá á á°ááłáłá ááááľ áĽáááááá. á°á¨á᪠ááááŽá˝
# 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
Percona DBaaS CLI á á ááŤá áá
á¨áááŽá áá¨ááťáá˝ áŤáᢠá¨áááŽá DBaaS CLI ááŁáŞáŤ á ááá á¨áá¨áŤ áááľ ááᣠáľááá á áá¨áŤ áá¨ááť ááľáĽ ááááᣠáĽáąá á á°áá á ááááľ á áá áľáŁ ááá áĽááłá á áľááľáá á¨áááŽá áá¨ááťáá˝ á¨á°áŤá á˘áááá˘
áá ááĽ
á¨ááŤá áľáá° ááááĄ
- á¨áááŽá-áááá
ááŁáŞáŤá á áá áá á¨áááŽá áá¨ááťáá˝á áŤáá
áŠá˘ á ááááŞáŤ á¨áááŽá áŚáá´áááá á¨áááŽá-áááá
áĽá
á ááá¨áľ áĽá ááŤá áŤáľáááááłááĄ-
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb sudo dpkg -i percona-release_latest.generic_all.deb
- á¨áá¨áŤ ááŁáŞáŤ áá¨ááť áááá áĽáá°áá¨á°áá áŤáááĄ-
sudo percona-release enable tools experimental
- á¨percona-dbaas-cli áĽá
áá áŤááĄ-
sudo apt-get update sudo apt-get install percona-dbaas-cli
á¨áááá˝á á á áŤá á áááááľ áá
áľá á
ááĽáŽá˝ á°á¨ááŞ
á ááááŞáŤ áá° ááá áááŤá áááŁáľ á ááĽá ᢠá á°á¨ááŞáᣠGoogle ááááľ á ááľ á°á áá áĽá áááá°á ááŽáááśá˝á áĽáá˛áá ááá áľááłáᣠáľááá ááá ááŽáááľ áŽáľ á áá áá á¨áá°áŤ ááŽáááľ áááá˝ áŤáľáááááłááĄ-
gcloud auth login
gcloud config set project hidden-brace-236921
á ááá á áááľá°á áĽáááĽáŤáá. áá ááś ááłáŤáᣠá¨áŠá áááľáľ áááľá°á áśáľáľ á áááá˝á áĽáť áá áአ- áá áá¨áá°á á°ááááľ á¨ááŤáľáááá áá á°áá ááá˘
gcloud container clusters create --zone us-central1-a your-cluster-name --cluster-version 1.15 --num-nodes=3
á¨áá¨á°áá ᨠkubectl áľááá áá áá á°á ááá˝á á¨áááááľá áአááĽáśá˝á áá°áŁááĄ-
kubectl create clusterrolebinding cluster-admin-binding-$USER
--clusterrole=cluster-admin --user=$(gcloud config get-value core/account)
á¨á፠á¨áľá áŚáłá áĽáááĽáŤáá áĽá áá áĽáá˛áá áĽáá°áááá. á¨áľá áŚáł á áááľ áĽáá° á ááľ ááŽáááľ ááá á áŤáŁá˘ ááᣠááá áá á áľááľá á áŠá áááľáľ áááľá°á ááľáĽ ááᢠá¨Google ááááľ ááŽáááśá˝ ááť áááĄ-
kubectl create namespace my-namespace
kubectl config set-context --current --namespace=my-namespace
áááľá°á á áááá áá
áĽááá á áĽááľ á°á¨ááá˝ áŤááá á ááᣠáŁá áśáľáľ ááľááá ááááľ áááľá°á á áá ááá áľááá áááá áĽáá˝ááááĄ-
# 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
á¨áľáĽáľáĽ áá áĽáá´áľ áĽáá°áááá
á ááŁáŞáŁ á Kubernetes ááľáĽ áĽáť ááááᢠáááľá âáá áâ á¨áááá áľááá á¨áŽáĄá áľ á¨áá á áááá ááááľ á ááťááᢠáĽáá˛áá áááľá¨áᣠáááłá á¨á°áá á áá ááá°á¨á áá¨áŤáá˝áŁ áá°áĄá á áááľ áŤááł ááľá°ááá áŤáľáááááłááĄ-
kubectl port-forward svc/example-proxysql 3306:3306 $
á¨á፠á¨áĽááľáá MySQL á°áá á áĽááááááááĄ
mysql -h 127.0.0.1 -P 3306 -uroot -pNt9YZquajW7nfVXTTrP
á¨áá á¨áááľá°á á áľá°áłá°á áľáááá˝
á¨ááἠááł á ááá á áá
ááááľá°á á°ááááľ á¨á áá ááá áááľá á¨ááá ááŤá á¨á áá á áľáŤáť ááááľ áá˝ááᢠá áá á ááŁá á¨ááἠááłá á¨á¨áľááá áŚáł á°á°áŤá˝ áááá. áá á°á áááą áŤáá° áá, áá áĽá áá á¨á áá ááš áá. áááŤá IP á¨áá¨á°ááá áľááá áĽáá áááá:
# 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
á¨ááá ááá á ááá áŤááá
áľáááą á áááá° á¨ááá áá á¨áááá¨áľ ááá á¨ááá ááá á ááá áááááľ áá˝áááĄ-
# 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
á¨áľááŞááśášá áá¤áľ á á°á ááá ἠá áá˝á á áá¸áľ áĽáŤáłá¨á ááᣠááá áá á¨JSON á áá¸áľá áá°áááá˘
á¨áá°á á°ááááľá á ááĽááľ áá
á áá¨á°áá áľáĽáá áá á ááľááá ááááľá ááá°ááŤáľ á¨áá°á á°ááááľá áá°áá¨á áá˝áááĄ
# 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
MySQL á á°áťá ááĽááľ áĽá á ááá áááľáŹáľ ᣠáááá°á˝ áĽá á¨á፠áááááľ ááá ááááľ áááá á°ááŁáŽá˝á áááá°á˝ áá áááľá ááá˘
á¨áááŽá DBaaS CLI ááłáŞáŤ á Kubernetes áá áĽáá° DBaaS á áááľ áááľá áĽáá˛áŤáá áŤááááłáᢠá á°ááłáłá áá, á á°ááŁáŤáááą áĽá á á á ááá áá ááľáŤáłá˝áá áĽáááĽááá.
áá
áŞáááľ á ááááŞáŤ á¨áá¨á á á
á áááą áá áá áá ááá ἠá ááĽááľ:
á áááá IIoT ááľá¨á ááľáĽ áŤá á¨ááἠááłáá˝á˘ áĽáá°áá ááááá¨áĽ áááŽáááľ á¨ááἠááł áĽáá´áľ áĽáá°ááá¨áĽá˘
ááá: hab.com