Jeħtieġ kluster Kubernetes f'żewġ siti tliet votanti etcd?
Tliet nodi tal-pjan ta' kontroll f'żewġ siti VPN xorta jitilfu l-kworum meta s-sit akbar jintefa. Għod l-votanti etcd veri u agħżel it-telf li tgħix minnu.
Tliet VM tal-pjan ta' kontroll iħossuhom bħal tliet ċansijiet li tgħix minn lejl ħażin. Mhumiex, u d-distanza bejn dawn iż-żewġ twemmin hija dik li tbiddel disinn nadif ta' tliet nodi fi kluster li jieqaf jaċċetta kitbiet meta bini wieħed jitlef l-enerġija. Rabta VPN bejn is-siti tagħmel il-magni aċċessibbli għal xulxin u taħbi l-problema minflok ma ssewwiha. Il-voti jingħaddu għal kull membru etcd, u tnejn minn dawk il-membri xorta jistgħu joqogħdu wara swiċċ wieħed, UPS wieħed u linja waħda.
Tliet nodi tal-pjan ta' kontroll, dominju wieħed ta' falliment
Inti tmexxi kubectl get nodes, tara tliet entrati tal-pjan ta' kontroll u tirreġistra l-kluster bħala disponibbli ħafna. Dak in-numru jiddeskrivi kapaċità li tista' tiġi skedata, mhux sopravivenza. F'kubeadm mingħajr etcd estern, kull nod tal-pjan ta' kontroll jospita wkoll membru, għalhekk tliet nodi verament jagħtuk tliet votanti. Jekk dawk il-votanti jonqsux b'mod indipendenti hija domanda separata li l-lista tan-nodi ma tistax twieġeb.
Żewġ VM fuq hypervisor wieħed, żewġ racks fuq provvista waħda tal-enerġija, żewġ linji minn ISP wieħed: kull par huwa dominju wieħed li jilbes żewġ ismijiet ta' host. Ikteb it-tqegħid u mmarka x'jaqsam kull votant — hypervisor, PDU, swiċċ ta' fuq ir-rack, array tal-ħażna, apparat NAT, konċentratur VPN. Imbagħad neħħi kull oġġett maqsum fuq il-karta u għodd mill-ġdid il-voti li jibqgħu. Kluster li jitlef żewġ votanti minħabba host wieħed li falla ilu kluster b'votant wieħed il-ħin kollu; ħadd ma kien għadu staqsieh dik id-domanda.
X'jista' u x'ma jistax jiflaħ qsim f'żewġ siti
Meta tliet votanti jitqiegħdu tnejn u wieħed fuq żewġ siti, in-naħa l-kbira żżomm il-kworum meta s-sit l-ieħor jinżel u n-naħa b'votant wieħed qatt. Dik l-asimmetrija hija aritmetika, mhux irfinar. Kwalunkwe kluster etcd ibbażat fuq il-maġġoranza mifrux eżatt fuq żewġ siti indipendenti jonqos fit-test "itlef kwalunkwe sit u kompli tikkommetti", għax iż-żewġ naħat ikollhom iżommu aktar minn nofs il-voti fl-istess ħin.
It-tabella hawn taħt hija l-aktar mod mgħaġġel biex tara liema fallimenti verament xtrajt. Aqra kull ringiela hekk: jekk illejla din ir-ringiela kollha tinżel, jistgħu dawk li jibqgħu ħajjin xorta jikkommettu kitba?
| What disappears | Voters left | Writes still commit |
|---|---|---|
| Site B, holding voter 3 | 2 of 3 | Yes |
| Site A, holding voters 1 and 2 | 1 of 3 | No |
| One hypervisor carrying any two voters | 1 of 3 | No |
| The inter-site VPN only | 2 of 3 on one side | Only on the majority side |
Għaliex il-mina qatt ma żżid vot
VPN hija trasport, mhux membru. Tista' tagħmel votant remot aċċessibbli u tista' tbiddel qsim f'xi ħaġa li tidher bħal timeout bil-mod, u dan huwa l-kontribut kollu tiegħu lill-kworum. Dak li żżid huwa spiża, għax kull kommissjoni trid taqsam ir-rabta u etcd iħallas dik il-vjaġġ 'il hemm u lura fil-kitbiet li jmissu l-log raft. Triq li ttirrex texref tbiddel ir-replikazzjoni fi provi mill-ġdid u elezzjonijiet.
Il-qsim huwa l-post fejn in-nies jistennew il-maġija, għalhekk kun preċiż dwarhom. Jekk ir-rabta taqa' waqt li l-mexxej il-qadim qiegħed fuq in-naħa b'votant wieħed, dik in-naħa ma tistax tikkommetti u l-mexxej jitlaq malli jiskadi t-timeout tal-elezzjoni, filwaqt li n-naħa b'żewġ votanti tagħżel sostitut. Il-gwida tal-etcd dwar il-modi ta' falliment tiddeskrivi l-imġiba b'mod ċar: servizz kontinwu fuq in-naħa tal-maġġoranza, l-ebda tieni kluster li jista' jinkiteb fuq in-naħa iżolata.
Iddeċiedi liema waqfa qed tixtri
Tnejn flimkien ma' wieħed huwa disinn leġittimu meta s-Sit A huwa l-prinċipali u taċċetta li t-telf tiegħu jfisser telf ta' kitbiet tal-pjan ta' kontroll sakemm xi ħadd jaġixxi. Dak li jagħmilha difett huwa li tħalli dik id-deċiżjoni impliċita. Iktebha fir-runbook: minn liema sit il-pjan ta' kontroll tiegħek jgħix, u x'jagħmel operatur meta s-sit l-ieħor jintefa fis-03:00.
Jekk il-ħtieġa hija minflok "kwalunkwe sit jista' jonqos", it-tqegħid irid iżomm maġġoranza f'kull sit, u tliet votanti fuq żewġ siti ma jistgħux jagħmlu dan. Inti jew iżżid tielet dominju verament indipendenti — reġjun żgħir f'fornitur ieħor jaħdem jekk it-triq lejh hija stabbli — jew tinqasam f'żewġ klusters b'etcd separat u taċċetta l-ispiża operattiva ta' dak il-qsim. L-ebda shortcut tax-xhud ma jevita dan: etcd m'għandux membru arbitru ħafif, għalhekk it-tielet votant huwa membru sħiħ bid-domandi tiegħu stess għad-diska, il-memorja u n-netwerk. Li tpinġi kaxxa bl-etikett xhud fuq id-dijagramma ma toħloqx wieħed.
Il-kworum mhuwiex l-istess bħas-servizz
Il-kworum tal-etcd iżomm lis-server API kapaċi jaċċetta kitbiet, u dan huwa kollu li jżomm. Il-verifiki tas-saħħa tal-load balancer, l-ingress, l-aċċessibbiltà tas-CNI minn ġol-mina, iż-żoni tat-twaħħil tal-volumi u r-replikazzjoni tal-applikazzjonijiet kollha jeħtieġu t-tweġiba tagħhom stess. Kluster jista' jżomm maġġoranza nadifa u xorta ma joffri xejn utli lill-utenti.
Imbagħad ikkonferma l-membru li taħseb li għandek, għax id-dijagrammi jidderivaw:
kubectl -n kube-system get pods -l component=etcd -o wide
kubectl get endpoints kube-apiserver -n default
etcdctl member list -w table
Qabbel il-lista tal-membri mat-tpinġija tat-tqegħid. Jekk żewġ membri jsolvu għall-istess host jew għall-istess rack, it-tpinġija hija ħażina u mhux il-kluster, u li tbiddel id-daqs madwar topoloġija żbaljata jixtri biss verżjoni aktar għalja tal-istess waqfa.
Qabel ma tapprova kwalunkwe disinn ta' tliet votanti, wieġeb erba' domandi: kemm votanti jitilfu l-enerġija flimkien, liema telf ta' sit xorta jħalli maġġoranza, fejn joqgħod il-mexxej meta l-mina taqa', u x'jista' għadu jagħmel is-sit li jibqa' ħaj. "Mhux ċert" fuq waħda minnhom tfisser li l-kluster għadu mhux disponibbli ħafna. Huma tliet magni li kellhom ix-xorti.