Kusamuka kosasunthika kwa RabbitMQ kupita ku Kubernetes
RabbitMQ ndi meseji broker yolembedwa ku Erlang yomwe imakupatsani mwayi wopanga gulu la failover lomwe lili ndi kubwereza kwathunthu kwa data pama node angapo, pomwe node iliyonse imatha kuwerenga ndikulemba zopempha. Pokhala ndi magulu ambiri a Kubernetes pantchito yopanga, timathandizira kuchuluka kwa kukhazikitsa kwa RabbitMQ ndipo tidayang'anizana ndi kufunikira kwa kusamutsa deta kuchokera kugulu lina kupita ku lina popanda kutsika.
Tidafunikira opareshoni iyi pazochitika ziwiri:
Kusamutsa deta kuchokera ku gulu la RabbitMQ lomwe silikupezeka ku Kubernetes kupita ku chatsopano - "kubernetized" (i.e. kugwira ntchito mu ma K8s pods) - gulu.
Kusamuka kwa RabbitMQ mkati mwa Kubernetes kuchokera kumalo ena a mayina kupita ku ena (mwachitsanzo, ngati mabwalo agawidwa ndi malo a mayina, ndiye kuti kusamutsa zomangamanga kuchokera kudera lina kupita ku lina).
Maphikidwe omwe aperekedwa m'nkhaniyi angoyang'ana pazochitika (koma sizimangokhala kwa iwo) momwe muli gulu lakale la RabbitMQ (mwachitsanzo, la node 3), lomwe lili kale mu K8s kapena pa ma seva akale. Pulogalamu yomwe idakhazikitsidwa pa Kubernetes (idalipo kale kapena mtsogolomo) imagwira ntchito nayo:
... ndipo tikukumana ndi ntchito yosamukira kumalo atsopano ku Kubernetes.
Choyamba, njira yowonjezereka ya kusamuka komweko idzafotokozedwa, ndipo pambuyo pake tsatanetsatane waukadaulo wa kukhazikitsidwa kwake adzafotokozedwa.
Migration algorithm
Gawo loyamba, loyambirira, musanayambe kuchitapo kanthu ndikuwonetsetsa kuti kupezeka kwapamwamba kumayatsidwa pakuyika kwakale kwa RabbitMQ (HA). Chifukwa chake ndi chodziwikiratu - sitikufuna kutaya deta. Kuti muchite izi, mukhoza kupita ku gulu la RabbitMQ admin ndipo mu Admin β Tabu ya Ndondomeko onetsetsani kuti mtengo wakhazikitsidwa. ha-mode: all:
Chotsatira ndikukweza gulu latsopano la RabbitMQ mu Kubernetes pods (mwa ife, mwachitsanzo, opangidwa ndi mfundo za 3, koma chiwerengero chawo chingakhale chosiyana).
Pambuyo pake, timaphatikiza magulu akale ndi atsopano a RabbitMQ, kupeza gulu limodzi (la 6 node):
Njira yolumikizira deta pakati pamagulu akale ndi atsopano a RabbitMQ imayambitsidwa. Deta yonse ikalumikizidwa pakati pa ma node onse pagulu, titha kusintha pulogalamuyo kuti tigwiritse ntchito gulu latsopanoli:
Pambuyo pakuchita izi, ndikokwanira kuchotsa ma node akale ku gulu la RabbitMQ, ndipo kusunthaku kungaganizidwe kokwanira:
Gulu la RabbitMQ (litha kuyikidwa pazitsulo zopanda kanthu, ndikupangidwa ngati gulu lokhazikika ku Kubernetes kuchokera pa tchati chovomerezeka cha Helm).
Mwachitsanzo pansipa, ndidatumiza RMQ ku Kubernetes ndikuyitcha rmq-old.
Kuyimirira kukonzekera
1. Tsitsani tchati cha Helm ndikusintha pang'ono:
helm fetch --untar stable/rabbitmq-ha
Kuti zitheke, timayika password, ErlangCookie ndi kupanga ndale ha-allkotero kuti mwachisawawa mizere imalumikizidwa pakati pa node zonse za gulu la RMQ:
Chiwembu chofotokozedwacho ndi choyenera pafupifupi nthawi zonse tikafunika kusamuka RabbitMQ kapena kungosamukira ku gulu latsopano.
Kwa ife, zovuta zinayamba kamodzi kokha, pamene RMQ inafikiridwa kuchokera kumalo ambiri, ndipo tinalibe mwayi wosintha adiresi ya RMQ kukhala yatsopano kulikonse. Kenako tinayambitsa RMQ yatsopano m'malo omwewo omwe ali ndi zilembo zomwezo kuti igwere pansi pa mautumiki omwe alipo ndi Ingresses, ndipo poyambitsa pod tidasokoneza zolembazo ndi dzanja, kuzichotsa pachiyambi kuti zopempha zisakhale pa RMQ yopanda kanthu, ndikuwonjezeranso mauthengawo atalumikizidwa.
Tidagwiritsa ntchito njira yomweyi posinthira RabbitMQ ku mtundu watsopano wokhala ndi masinthidwe osinthidwa - chilichonse chimagwira ngati wotchi.
PS
Monga kupitiliza koyenera kwa nkhaniyi, tikukonzekera zolemba za MongoDB (kusamuka kuchokera ku seva ya hardware kupita ku Kubernetes) ndi MySQL (momwe timakonzekera DBMS iyi mkati mwa Kubernetes). Zidzasindikizidwa m'miyezi ikubwerayi.