VM uku na kulawar sarrafawa suna kama da dama uku na tsira daga dare mara kyau. Ba haka ba ne, kuma nisan da ke tsakanin waɗannan imani biyu shine abin da ke mai da tsarin kyakkyawan nodes uku ya zama kungiyar da ta daina karɓar rubuce-rubuce lokacin da gini ɗaya ya rasa wutar lantarki. Hanyar VPN tsakanin wuraren tana sa injuna su isa juna kuma tana ɓoye matsalar maimakon gyara ta. Ana kirga kuri'u ga kowane memba na etcd, kuma biyu daga cikin waɗannan membobin na iya zama a bayan maɓalli ɗaya, UPS ɗaya da layi ɗaya.

Nodes uku na kulawar sarrafawa, yanki ɗaya na gazawa

Kuna gudanar da kubectl get nodes, kuna ganin shigarwar kulawar sarrafawa uku kuma kuna rubuta kungiyar a matsayin mai samuwa sosai. Wannan adadin yana bayyana iyawar da za a iya tsarawa, ba tsira ba. A cikin kubeadm da aka ajiye ba tare da etcd na waje ba, kowane node na kulawar sarrafawa yana kuma ɗaukar memba, don haka nodes uku suna ba ku masu jefa kuri'a uku da gaske. Ko waɗannan masu jefa kuri'a suna gazawa da kansu, tambaya ce daban da jerin nodes ba zai iya amsawa ba.

VM biyu a kan hypervisor ɗaya, racks biyu a kan wutar lantarki ɗaya, layukan hawa biyu daga ISP ɗaya: kowane biyu yanki ɗaya ne sanye da sunayen mai masaukai biyu. Rubuta jeri kuma nuna abin da kowane mai jefa kuri'a ke rabawa — hypervisor, PDU, maɓallin saman rack, ajiyar ajiya, na'urar NAT, mai tattara VPN. Sannan cire kowane abu da aka raba a kan takarda kuma sake kirga kuri'un da suka rage. Kungiyar da ta rasa masu jefa kuri'a biyu saboda mai masauki ɗaya da ya gaza, ta kasance kungiyar mai jefa kuri'a ɗaya koyaushe; babu wanda ya taɓa yi mata wannan tambayar.

Abin da rabuwar wurare biyu za ta iya jurewa da abin da ba za ta iya ba

Lokacin da aka sanya masu jefa kuri'a uku biyu da ɗaya a kan wurare biyu, babban gefen yana riƙe kwaro lokacin da ɗayan wurin ya ɓace kuma gefen mai jefa kuri'a ɗaya ba ya taɓa. Wannan rashin daidaito lissafi ne, ba daidaitawa ba. Duk wata kungiyar etcd da ta dogara da mafi rinjaye kuma aka watsa ta a kan wurare biyu masu zaman kansu daidai, ta kasa gwajin "rasa kowane wuri kuma ci gaba da tabbatarwa", domin dole ne bangarorin biyu su riƙe fiye da rabin kuri'u a lokaci ɗaya.

Teburin da ke ƙasa ita ce hanya mafi sauri ta ganin irin gazawar da kuka saya da gaske. Karanta kowane layi haka: idan duk wannan layin ya ɓace yau da dare, shin waɗanda suka tsira za su iya tabbatar da rubutu har yanzu?

What disappearsVoters leftWrites still commit
Site B, holding voter 32 of 3Yes
Site A, holding voters 1 and 21 of 3No
One hypervisor carrying any two voters1 of 3No
The inter-site VPN only2 of 3 on one sideOnly on the majority side

Me ya sa ramin ba ya ƙara kuri'a

VPN jigilar kaya ne, ba memba ba. Zai iya sa mai jefa kuri'a mai nisa ya isa, kuma zai iya mai da rabuwa wani abu da ya yi kama da jinkiri a hankali, kuma wannan shine dukan gudummawarsa ga kwaro. Abin da yake ƙarawa shine tsada, domin kowace tabbaci dole ta tsallake hanyar kuma etcd yana biyan wannan tafiya a rubuce-rubucen da suka taɓa raft log. Hanyar da ke girgiza tana mai da kwafin zuwa sake gwadawa da zaɓe.

Rabuwa ita ce wurin da mutane suke tsammanin sihiri, don haka ku kasance daidai game da su. Idan hanyar ta faɗi yayin da tsohon jagora ke zaune a gefen mai jefa kuri'a ɗaya, wannan gefen ba zai iya tabbatarwa ba kuma jagora ya sauka da zarar lokacin zaɓe ya ƙare, yayin da gefen masu jefa kuri'a biyu ke zaɓar wanda zai maye gurbinsa. Jagorar etcd akan yanayin gazawa tana bayyana halin a sarari: ci gaba da sabis a gefen mafi rinjaye, babu wata kungiya ta biyu da za a iya rubutawa a gefen da aka ware.

Yanke shawara wace katsewa kuke saya

Biyu da ɗaya ingantaccen tsari ne lokacin da Wuri A shine na farko kuma kun yarda cewa rasa shi yana nufin rasa rubuce-rubucen kulawar sarrafawa har sai wani ya ɗauki mataki. Abin da ke mai da shi lahani shine barin wannan shawarar a ɓoye. Saka shi cikin runbook: wane wuri ne kulawar sarrafawar ku ke tsira daga gare shi, da abin da ma'aikaci ke yi lokacin da ɗayan wurin ya mutu da ƙarfe 03:00.

Idan buƙatar ita ce maimakon haka "kowane wuri na iya gazawa", jeri dole ya riƙe mafi rinjaye a kowane wuri, kuma masu jefa kuri'a uku a kan wurare biyu ba za su iya yin haka ba. Ko dai kun ƙara yanki na uku mai zaman kansa na gaske — ƙaramin yanki a wani mai bayarwa yana aiki idan hanyar zuwa gare shi ta tsaya tsayin daka — ko kuma kun rabu zuwa kungiyoyi biyu da etcd daban kuma kun yarda da kuɗin aiki na wannan rabuwa. Babu wata gajeriyar hanya ta shaida da ke guje wa wannan: etcd ba shi da memba mai sasantawa mara nauyi, don haka mai jefa kuri'a na uku cikakken memba ne da bukatunsa na faifai, ƙwaƙwalwar ajiya da cibiya. Zana akwati mai alamar shaida a kan zane ba ya haifar da shaida.

Kwaro ba daidai yake da sabis ba

Kwaro na etcd yana kiyaye uwar garken API yana iya karɓar rubuce-rubuce, kuma shine duk abin da yake kiyayewa. Dubawa lafiyar mai daidaita nauyi, ingress, isar CNI ta ramin, yankunan haɗa ƙara da kwafin aikace-aikace kowanne yana bukatar amsarsa. Kungiya na iya riƙe mafi rinjaye mai tsabta kuma har yanzu ba ta ba masu amfani wani abu mai amfani ba.

Sannan tabbatar da membanci da kuke tsammanin kuna da shi, domin zane-zane suna motsi:

kubectl -n kube-system get pods -l component=etcd -o wide
kubectl get endpoints kube-apiserver -n default
etcdctl member list -w table

Kwatanta jerin membobi da zanen jeri. Idan membobi biyu sun warware zuwa mai masauki ɗaya ko rack ɗaya, zanen ne ba daidai ba, ba kungiyar ba, kuma canza girma a kusa da tsarin da ba daidai ba yana saya kawai sigar da ta fi tsada na wannan katsewa.

Kafin amincewa da duk wani tsari na masu jefa kuri'a uku, amsa tambayoyi huɗu: masu jefa kuri'a nawa ne ke rasa wutar lantarki tare, wane asarar wuri har yanzu ya bar mafi rinjaye, a ina jagora yake zaune idan ramin ya faɗi, da me wurin da ya tsira zai iya yi har yanzu. "Ban tabbata ba" a kan ɗayansu yana nufin kungiyar ba ta da samuwa sosai har yanzu. Injina uku ne da suka yi sa'a.

Labarai masu alaƙa