සයිට් දෙකක Kubernetes පොකුරට etcd ඡන්දදායකයන් තිදෙනෙකු අවශ්යද?
VPN සයිට් දෙකක් හරහා කන්ට්රෝල්-තල නෝඩ් තුනක් විශාල සයිටය නිවී යන විට තවමත් කෝරම් අහිමි කරයි. සැබෑ etcd ඡන්දදායකයන් ගණන් කර ඔබ ජීවත් වන පාඩුව තෝරන්න.
කන්ට්රෝල්-තල VM තුනක් නරක රාත්රියකින් ජීවත් වීමට ඇති අවස්ථා තුනක් ලෙස පෙනේ. නමුත් එසේ නොවේ, මෙම විශ්වාස දෙක අතර ඇති දුර ප්රමාණය විසින් පිළිවෙළැති නෝඩ් තුනේ නිර්මාණයක්, එක් ගොඩනැගිල්ලක් විදුලිය අහිමි වූ විට ලේඛන පිළිගැනීම නවත්වන පොකුරක් බවට පත් කරයි. සයිට් අතර VPN සබැඳිය මැෂින් එකිනෙකට ළඟා විය හැකි කරන අතර ගැටලුව විසඳීම වෙනුවට සඟවයි. ඡන්ද etcd සාමාජිකයෙකුට ගණන් කරනු ලබන අතර, එම සාමාජිකයන්ගෙන් දෙදෙනෙකුට තවමත් එක් ස්විචයක්, එක් UPS එකක් සහ එක් සම්බන්ධතාවයක් පිටුපස වාඩි විය හැක.
කන්ට්රෝල්-තල නෝඩ් තුනක්, එක් අසාර්ථක වසමක්
ඔබ kubectl get nodes ධාවනය කරයි, කන්ට්රෝල්-තල සටහන් තුනක් දකින අතර පොකුර ඉහළ ලබා ගැනීමේ හැකියාව ලෙස සටහන් කරයි. එම සංඛ්යාව සැලසුම් කළ හැකි ධාරිතාව විස්තර කරයි, ජීවත් වීම නොවේ. බාහිර etcd රහිතව තබා ගන්නා kubeadm තුළ, සෑම කන්ට්රෝල්-තල නෝඩයක්ම සාමාජිකයෙකු ද ධාරක කරයි, එබැවින් නෝඩ් තුනක් ඇත්ත වශයෙන්ම ඡන්දදායකයන් තිදෙනෙකු ලබා දෙයි. එම ඡන්දදායකයන් ස්වාධීනව අසාර්ථක වන්නේද යන්න නෝඩ් ලැයිස්තුවට පිළිතුරු දිය නොහැකි වෙනම ප්රශ්නයකි.
එක් හයිපර්වයිසර් එකක VM දෙකක්, එක් බල සැපයුමක රැක් දෙකක්, එක් ISP එකකින් සබැඳි දෙකක්: සෑම යුගලයක්ම ධාරක නම් දෙකක් පැළඳගත් එක් වසමකි. ස්ථානගත කිරීම ලියා සෑම ඡන්දදායකයෙක් බෙදා ගන්නා දේ සලකුණු කරන්න — හයිපර්වයිසර්, PDU, රැක් මුදුනේ ස්විචය, ගබඩා අරාව, NAT උපාංගය, VPN සාන්ද්රකය. පසුව කඩදාසි මත සෑම හවුල් වස්තුවක්ම ඉවත් කර ඉතිරි ඡන්ද නැවත ගණන් කරන්න. එක් අසාර්ථක ධාරකයක් නිසා ඡන්දදායකයන් දෙදෙනෙකු අහිමි වන පොකුරක් මුල සිටම එක්-ඡන්දදායක පොකුරක් විය; කිසිවෙකු එයින් එම ප්රශ්නය තවම අසා නැත.
සයිට් දෙකේ බෙදීමක් ඉවසිය හැකි දේ සහ නොහැකි දේ
ඡන්දදායකයන් තිදෙනෙකු සයිට් දෙකක් හරහා දෙකක් සහ එකක් ලෙස තැබූ විට, අනෙක් සයිටය අතුරුදහන් වන විට විශාල පැත්ත කෝරම් රඳවා ගනී, එක්-ඡන්දදායක පැත්ත කිසි විටෙකත් රඳවා නොගනී. එම අසමමිතිය අංක ගණිතයකි, සැකසීමක් නොවේ. හරියටම ස්වාධීන සයිට් දෙකක් හරහා පැතිරුණු බහුතර පදනම් etcd පොකුරක් "ඕනෑම සයිටයක් අහිමි කර කැපවීම දිගටම කරගෙන යන්න" පරීක්ෂණයෙන් අසාර්ථක වේ, මන්ද දෙපැත්තටම එකම වේලාවේ ඡන්දවලින් අඩකට වඩා තිබිය යුතුය.
පහත වගුව ඔබ සැබවින්ම මිලදී ගත් අසාර්ථකතා මොනවාදැයි බැලීමට ඇති වේගවත්ම මාර්ගයයි. සෑම පේළියක්ම මෙසේ කියවන්න: අද රාත්රියේ මෙම මුළු පේළියම අතුරුදහන් වුවහොත්, ජීවත් වූවන්ට තවමත් ලේඛනයක් කැපවීම කළ හැකිද?
| 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 |
උමග කිසි විටෙකත් ඡන්දයක් එකතු නොකරන්නේ ඇයි
VPN යනු ප්රවාහනයකි, සාමාජිකයෙකු නොවේ. එය දුරස්ථ ඡන්දදායකයෙකු ළඟා විය හැකි කර ගත හැකි අතර, බෙදීමක් මන්දගාමී කාල සීමාවක් ලෙස පෙනෙන දෙයක් බවට පත් කළ හැක, සහ කෝරම් සඳහා එහි සම්පූර්ණ දායකත්වය එයයි. එය එකතු කරන දේ පිරිවැයයි, මන්ද සෑම කැපවීමක්ම සබැඳිය හරහා යා යුතු අතර raft ලොගය ස්පර්ශ කරන ලේඛනවල එම යාම-ඒම etcd ගෙවයි. සෙලවෙන මාර්ගයක් ප්රතිනිර්මාණය නැවත උත්සාහ සහ මැතිවරණ බවට පත් කරයි.
බෙදීම් යනු මිනිසුන් මායාව අපේක්ෂා කරන තැනය, එබැවින් ඒවා ගැන නිශ්චිත වන්න. පැරණි නායකයා එක්-ඡන්දදායක පැත්තේ වාඩි වී සිටියදී සබැඳිය වැටුණහොත්, එම පැත්තට කැපවීම කළ නොහැකි අතර මැතිවරණ කාල සීමාව ඉවර වූ පසු නායකයා ඉවත් වේ, එමෙන්ම දෙක්-ඡන්දදායක පැත්ත ආදේශකයෙකු තෝරයි. etcd හි අසාර්ථක ක්රම මාර්ගෝපදේශය හැසිරීම සරලව විස්තර කරයි: බහුතර පැත්තේ අඛණ්ඩ සේවාව, හුදකලා පැත්තේ දෙවන ලිවිය හැකි පොකුරක් නැත.
ඔබ මිලදී ගන්නා බාධාව තීරණය කරන්න
සයිට් A ප්රාථමික වන අතර, එය අහිමි වීම යනු යමෙකු ක්රියා කරන තෙක් කන්ට්රෝල්-තල ලේඛන අහිමි වීම බව ඔබ පිළිගන්නා විට දෙකක් සහ එකක් වලංගු නිර්මාණයකි. එය දෝෂයක් බවට පත් කරන්නේ එම තීරණය ව්යංගව තැබීමයි. එය runbook තුළ ලියන්න: ඔබේ කන්ට්රෝල් තලය කුමන සයිටයකින් ජීවත් වේද, සහ අනෙක් සයිටය 03:00 ට නිවී යන විට ක්රියාකරු කුමක් කරයිද.
අවශ්යතාව ඒ වෙනුවට "ඕනෑම සයිටයක් අසාර්ථක විය හැක" නම්, ස්ථානගත කිරීම සෑම සයිටයකම බහුතරයක් තබා ගත යුතු අතර, සයිට් දෙකක් මත ඡන්දදායකයන් තිදෙනෙකුට එය කළ නොහැක. ඔබ ඇත්තෙන්ම ස්වාධීන තුන්වන වසමක් එකතු කරයි — වෙනත් සපයන්නෙකුගේ කුඩා කලාපයක් එහි මාර්ගය ස්ථාවර නම් ක්රියා කරයි — නැතහොත් වෙනම etcd සහිත පොකුරු දෙකකට බෙදී එම බෙදීමේ මෙහෙයුම් පිරිවැය පිළිගනී. කිසිදු සාක්ෂිකරු කෙටි මාර්ගයක් මෙය මඟ හරින්නේ නැත: etcd හට සැහැල්ලු මැදිහත් සාමාජිකයෙකු නැත, එබැවින් තුන්වන ඡන්දදායකයා තමන්ගේම තැටි, මතකය සහ ජාල අවශ්යතා සහිත සම්පූර්ණ සාමාජිකයෙකි. රූප සටහනේ "සාක්ෂිකරු" ලෙස ලියූ පෙට්ටියක් ඇඳීමෙන් සාක්ෂිකරුවෙකු නිර්මාණය නොවේ.
කෝරම් සේවාවට සමාන නොවේ
etcd කෝරම් API සේවාදායකයට ලේඛන පිළිගැනීමට හැකියාව ඇතිව තබා ගනී, තබා ගන්නා දේ එපමණයි. භාර තුලනකරුගේ සෞඛ්ය පරීක්ෂණ, ingress, උමග හරහා CNI ළඟා වීම, පරිමා සම්බන්ධ කිරීමේ කලාප සහ යෙදුම් ප්රතිනිර්මාණය එක් එක්කට තමන්ගේම පිළිතුරක් අවශ්යයි. පොකුරකට පිරිසිදු බහුතරයක් තිබිය හැකි අතර තවමත් පරිශීලකයන්ට ප්රයෝජනවත් කිසිවක් ලබා නොදිය හැක.
පසුව ඔබ සිතන සාමාජිකත්වය තහවුරු කරන්න, මන්ද රූප සටහන් ලිස්සා යයි:
kubectl -n kube-system get pods -l component=etcd -o wide
kubectl get endpoints kube-apiserver -n default
etcdctl member list -w table
සාමාජික ලැයිස්තුව ස්ථානගත කිරීමේ චිත්රය සමඟ සසඳන්න. සාමාජිකයන් දෙදෙනෙකු එකම ධාරකයට හෝ එකම රැක් එකට විසඳෙන්නේ නම්, වැරැද්ද පොකුරේ නොව චිත්රයේ ය, සහ වැරදි භූ සැකැස්මක් වටා ප්රමාණය වෙනස් කිරීම එම බාධාවේ මිල අධික අනුවාදයක් පමණක් මිලදී ගනී.
ඕනෑම ත්රි-ඡන්දදායක නිර්මාණයක් අනුමත කිරීමට පෙර ප්රශ්න හතරකට පිළිතුරු දෙන්න: කීදෙනෙකු එකට විදුලිය අහිමි කරයිද, කුමන සයිටයේ අහිමි වීමකින් තවමත් බහුතරයක් ඉතිරි වේද, උමග වැටෙන විට නායකයා කොහේ වාඩි වී සිටීද, ජීවත් වූ සයිටයට තවමත් කුමක් කළ හැකිද. ඒවායින් ඕනෑම එකකට "විශ්වාස නැත" යන්නෙන් අදහස් වන්නේ පොකුර තවමත් ඉහළ ලබා ගැනීමේ හැකියාව නොමැති බවයි. ඒවා වාසනාවන්ත යන්ත්ර තුනකි.