Kinokontrol ang Iyong Database sa Mga Operator ng Kubernetes

Nagpapatuloy pagkatapos ng advertising..

Ang pamamahala sa mga stateful na application tulad ng mga database sa Kubernetes ay maaaring maging mahirap. Pinagsasama-sama ng mga operator ang praktikal na kaalaman sa mga solusyon na nag-o-automate ng mga gawain sa pamamahala.

Ang paggamit ng MySQL operator ay pinapasimple ang deployment at pagpapalawak ng isang production-ready MySQL cluster. Nagbibigay din ito ng mataas na kakayahang magamit sa pamamagitan ng pagkopya ng mga pod na nagho-host ng database at nagbibigay-daan sa mga backup at pagbawi.

InnoDB Cluster

Nagpapatuloy pagkatapos ng advertising..

Si Haroon Khan ay isang data professional na gumagawa at nagpapanatili ng mga database na sumusuporta sa mga application na may mataas na pagganap. Siya ay may higit sa isang dekada ng karanasan sa magkakaibang mga teknolohiya, kabilang ang MySQL, Microsoft SQL Server, DB2, at mga open source na tool.

Siya ay madamdamin tungkol sa pagtulong sa mga kumpanya na magpatibay ng isang modernong arkitektura ng data na maaaring humawak ng malawak na mga kinakailangan sa data. Ang InnoDB Cluster ay isang kritikal na bahagi sa pagsisikap na ito, na nag-aalok ng pinahusay na kakayahang sumulat. Gayunpaman, ang pagpapatupad nito ay maaaring maging mahirap kung kailangan mong maging pamilyar sa iba't ibang bahagi nito.

Nagpapatuloy pagkatapos ng advertising..

Bukod pa rito, maaaring mangailangan ito ng maraming tool upang pamahalaan ang topology. Ang solusyon na ito ay maaaring hindi angkop para sa iyong aplikasyon kung ayaw mong mamuhunan sa pagbuo/pagsasama/panahon ng pagsubok para sa bawat teknolohiya. Dito nagniningning ang Kubernetes compass ni Haroon.

Naniniwala siya na ang pag-scale ng iyong MySQL gamit ang InnoDB Cluster ay dapat na hiwalay sa pag-scale sa pagiging kumplikado nito. Iyon ang dahilan kung bakit itinataguyod niya ang pagsasama sa MySQL Operator Kubernetes. Pinagsasama ng makapangyarihang kumbinasyong ito ang kapangyarihan ng InnoDB Cluster sa kagandahan ng Kubernetes, na nagpapasimple sa pamamahala at orkestra sa isang pagkakataon.

Anunsyo

Kung na-restart ang isang instance, aalis ito sa grupo at kailangang sumali muli sa grupo upang maidagdag pabalik sa default na set ng replica. Upang muling sumali sa isang halimbawa, maaari mong gamitin ang cluster.rejoinInstance() command, na kumukuha ng URI bilang parameter. Tinitiyak ng command na ito na ang instance ay ONLINE at maaaring idagdag sa grupo.

Sinusuri din nito na hindi ka isang Split Brain (paghahambing ng iyong mga na-execute na GTID sa mga na-execute/purged na GTID ng ibang mga miyembro ng ONLINE). Maaaring mabigo ang command kung hindi maabot ang isang instance, ngunit maaari mong subukang muli sa ibang pagkakataon.

PodDisruptionBudget

Nagpapatuloy pagkatapos ng advertising..

Tinutukoy ng pod outage budget (PDB) ang minimum na bilang o porsyento ng mga pod sa isang koleksyon na dapat palaging aktibo. Ito ay isang mahalagang tool kapag nakikitungo sa mga application na nangangailangan ng mataas na kakayahang magamit, tulad ng mga application na nakabatay sa korum o mga web front end.

Nakakatulong ang mga badyet ng pod outage na matiyak na mababawasan lang ng mga operasyon ng node ang iyong serbisyo sa pamamagitan ng sabay-sabay na pag-drain ng ilang mga pagkakataon sa pod. Nagtutulungan sila kasama ang Horizontal Pod Autoscaler upang maprotektahan laban sa hindi kinakailangang deployment downtime.

Upang gumamit ng PDB, kailangan mong lumikha ng YAML file na tumutukoy sa nais na kakayahang magamit para sa iyong aplikasyon. Maaari ka ring tumukoy ng object ng PodDisruptionBudgetStatus para subaybayan ang kasalukuyang status ng iyong PDB. Maaari itong maging kapaki-pakinabang kapag nakikitungo sa pagbabago ng mga sitwasyon, dahil ang katayuan ng iyong PDB ay maaaring mahuli sa aktwal na estado.

Ang mga badyet ng pod outage ay kapaki-pakinabang para sa mga application na kailangang panatilihin ang kanilang availability habang nagaganap ang mga pag-upgrade ng cluster. Halimbawa, maaaring gusto ng isang kumpanya ng telekomunikasyon na matiyak na ang mga serbisyo ng VoIP nito ay mananatiling available sa panahon ng pagpapanatili o pag-patch ng system.

Nagbibigay-daan ito sa mga telcos na magpatupad ng mga feature na maaaring mapabuti ang karanasan ng end-user nang hindi isinasakripisyo ang availability. Kapaki-pakinabang din ang PodDisruptionBudget para sa mga provider ng software-as-a-service (SaaS) na dapat balansehin ang availability sa mga upgrade at maintenance ng system. Ito ay totoo lalo na kapag ang isang SaaS provider ay kailangang mapanatili ang availability habang naglalabas ng bagong feature o nagde-deploy ng mga update sa kanilang serbisyo.

Mga Replica Set

Ang ReplicationSets ay mga Kubernetes control object na mayroong tinukoy na bilang ng mga pod replicas. Ang mga ito ay mahusay sa paghawak ng mga simpleng pangangailangan sa scalability at makakatulong na matiyak ang mataas na kakayahang magamit at katatagan.

Maaari ding pangasiwaan ng ReplicaSets ang mga pagbabago sa nais na estado, tulad ng isang pod na nabigo o manu-manong pagtanggal ng isang pod, paggawa ng mga bagong pod upang palitan ang mga ito, o pagwawakas ng labis na mga replika upang maibalik ang system sa nais na estado.

Ang ReplicaSets ay na-configure sa isang YAML na manifest file, kasama ang mga detalye para sa bilang ng mga replika at modelo ng pod. Sinusuportahan din nila ang paggamit ng mga pod label para matukoy at piliin ang mga pod na kanilang pinamamahalaan.

Halimbawa, maaaring makuha ng isang ReplicationSet ang lahat ng mga pod na may label na layer sa (frontend) at ang kapaligiran sa (prod). Maaari ding subaybayan ng ReplicationSet ang mga pagbabago sa nais na estado sa pamamagitan ng pagtingin sa oplog o primary write concern log.

Kapag nabigo ang isang primary sa isang replica set, ang pangalawa na pipili na maging bagong pangunahing pag-update mismo sa pamamagitan ng paglalapat ng mga naka-log na operasyon sa mga dataset nito. Bukod pa rito, maaaring paunang painitin ng isang ReplicaSet ang mga cache ng mga kwalipikadong pangalawang replika sa pamamagitan ng pag-mirror ng mga nabasang query.

Binabawasan nito ang epekto ng mga pangunahing halalan pagkatapos ng pangunahing pagkawala o sa panahon ng nakaplanong pagpapanatili. Maaari ding i-deploy ang ReplicaSets sa maraming node at availability zone para mapahusay ang redundancy.

Mga backup

Maraming solusyon para sa pagpapatakbo ng mga stateful na database sa Kubernetes, ngunit karamihan ay nangangailangan ng pangalawang araw na mga feature tulad ng mga backup at upgrade.

Tinutulungan ng mga Kubernetes Operator ang puwang na ito sa pamamagitan ng pag-automate at pagpapasimple ng mga kumplikadong operasyong partikular sa domain, kabilang ang pag-deploy, pag-scale, at pag-update ng mga database.

Ang pinakamahusay na mga operator ng MySQL ay idinisenyo upang maisama nang mahigpit sa umiiral na mga tool sa imprastraktura-bilang-code at mga pipeline ng CI/CD upang paganahin ang mga deployment ng database na nasusukat, secure, at handa sa produksyon.

Ang MySQL Operator ng Oracle ay isang self-healing solution na sumusuporta sa MySQL InnoDB clusters sa Kubernetes. Gumagamit ito ng Kubernetes StatefulSet upang pamahalaan ang mga instance ng MySQL server at italaga sa kanila ang isang PersistentVolumeChain para sa storage.

Nag-deploy din ang operator ng MySQL router pod upang iruta ang mga query sa cluster. Ang operator ay kasalukuyang magagamit at ipinamamahagi sa ilalim ng isang unibersal na pinahihintulutang lisensya na malapit sa lisensya ng MIT.

Ang Bitpoke MySQL Operator ay isang madaling gamitin, open-source na MySQL operator para sa Kubernetes na nag-i-install lamang ng Helm at Kubectl. Ito ay idinisenyo upang maging isang simple, matatag, at handa sa produksyon na solusyon para sa Kubernetes na nagbibigay ng pagsubaybay, pagtitiklop, pag-backup, pag-update, at iba pang mga tampok. Gumagamit ang operator ng deklaratibong YAML file upang i-deploy at sukatin ang mga cluster ng MySQL sa Kubernetes.

Hindi tulad ng isang tradisyonal na naka-imbak na pamamaraan, ang abstraction ng Nova-conductor ay pumipigil sa direktang pag-access sa database. Binabawasan nito ang panganib ng mga pag-atake ng data. Gayunpaman, posible pa ring atakehin ang database sa pamamagitan ng buffer overflows, memory leaks at malisyosong software program.

Rolar para cima