Kubernetes පොකුරක් තුළ දත්ත ගබඩා කිරීම

Kubernetes පොකුරක් මත ධාවනය වන යෙදුම් සඳහා දත්ත ගබඩාව වින්‍යාස කිරීමට ක්‍රම කිහිපයක් තිබේ. ඒවායින් සමහරක් දැනටමත් යල්පැන ඇති අතර අනෙක් ඒවා මෑතකදී දර්ශනය විය. මෙම ලිපියෙන්, අපි නවතම එක ඇතුළුව ගබඩා පද්ධති සම්බන්ධ කිරීම සඳහා විකල්ප තුනක සංකල්පය දෙස බලමු - බහාලුම් ගබඩා අතුරුමුහුණත හරහා සම්බන්ධ කිරීම.

Kubernetes පොකුරක් තුළ දත්ත ගබඩා කිරීම

ක්රමය 1: පොඩ් මැනිෆෙස්ටයේ PV සඳහන් කරන්න

Kubernetes පොකුරක් තුළ ඇති කරල් විස්තර කරන සාමාන්‍ය මැනිෆෙස්ටයක්:

Kubernetes පොකුරක් තුළ දත්ත ගබඩා කිරීම

කුමන පරිමාව සම්බන්ධ කර ඇත්ද සහ වර්ණයෙන් උද්දීපනය කර ඇති ස්ථානය විස්තර කරන මැනිෆෙස්ටයේ කොටස්.

කොටස volumeMounts සවිකරන ස්ථාන (මවුන්ට්පාත්) දක්වන්න - බහාලුම තුළ ස්ථිර පරිමාවක් සවිකර ඇති බහලුමෙහි මෙන්ම පරිමාවේ නමද සඳහන් කරන්න.

කොටස x පොඩ් එකේ භාවිතා කරන සියලුම වෙළුම් ලැයිස්තුගත කරයි. එක් එක් වෙළුමේ නම මෙන්ම වර්ගය (අපගේ නඩුවේ: awsElasticBlockStore) සහ සම්බන්ධතා පරාමිතීන් සඳහන් කරන්න. මැනිෆෙස්ටයේ ලැයිස්තුගත කර ඇති පරාමිතියන් පරිමාව වර්ගය මත රඳා පවතී.

එකම පරිමාව බහු පෝඩ් බහාලුම්වල එකවර සවි කළ හැකිය. මේ ආකාරයෙන්, විවිධ යෙදුම් ක්‍රියාවලීන් එකම දත්ත වෙත ප්‍රවේශ විය හැක.

මෙම සම්බන්ධතා ක්‍රමය ආරම්භයේදීම සොයා ගන්නා ලද අතර, කුබර්නෙටස් එහි ළදරු අවධියේ සිටියදී, අද ක්‍රමය යල් පැන ගොස් ඇත.

එය භාවිතා කිරීමේදී ගැටළු කිහිපයක් තිබේ:

  1. සියලුම වෙළුම් අතින් නිර්මාණය කළ යුතුය; Kubernetes අප වෙනුවෙන් කිසිවක් නිර්මාණය කළ නොහැක;
  2. එක් එක් වෙළුම සඳහා ප්‍රවේශ පරාමිතීන් අද්විතීය වන අතර, ඒවා පරිමාව භාවිතා කරන සියලුම කරල්වල ප්‍රකාශනවල සඳහන් කළ යුතුය;
  3. ගබඩා පද්ධතිය වෙනස් කිරීමට (උදාහරණයක් ලෙස, AWS සිට Google ක්ලවුඩ් වෙත යන්න), ඔබ සියලු මැනිෆෙස්ට් වල සිටුවම් සහ සවිකර ඇති වෙළුම් වර්ගය වෙනස් කළ යුතුය.

මේ සියල්ල ඉතා අපහසු ය, එබැවින් යථාර්ථයේ දී මෙම ක්‍රමය භාවිතා කරනුයේ විශේෂිත වෙළුම් කිහිපයක් පමණක් සම්බන්ධ කිරීමට ය: configMap, secret, emptyDir, hostPath:

  • configMap සහ secret යනු කන්ටේනරය තුළ ඇති Kubernetes මැනිෆෙස්ට් වෙතින් ගොනු සමඟ පරිමාවක් නිර්මාණය කිරීමට ඔබට ඉඩ සලසන සේවා වෙළුම් වේ.

  • හිස් ඩීර් යනු තාවකාලික පරිමාවකි, එය පෝඩ්ගේ ජීවිත කාලය සඳහා පමණක් නිර්මාණය කර ඇත. තාවකාලික දත්ත පරීක්ෂා කිරීම හෝ ගබඩා කිරීම සඳහා භාවිතා කිරීමට පහසු වේ. Pod එකක් මකා දැමූ විට, emptyDir පරිමාව ද මකා දමන අතර සියලු දත්ත නැති වී යයි.

  • hostPath - /etc/kubernetes ඇතුළුව යෙදුම සමඟ බහාලුම තුළ යෙදුම ක්‍රියාත්මක වන සේවාදායකයේ දේශීය තැටියේ ඕනෑම නාමාවලියක් සවි කිරීමට ඔබට ඉඩ සලසයි. මෙය අනාරක්ෂිත විශේෂාංගයකි, එබැවින් ආරක්ෂක ප්‍රතිපත්ති සාමාන්‍යයෙන් මෙම වර්ගයේ වෙළුම් භාවිතය තහනම් කරයි. එසේ නොමැතිනම්, ප්‍රහාරකයෙකුගේ යෙදුමට HTC Kubernetes නාමාවලිය එහි බහාලුම තුළ සවි කිරීමට සහ සියලු පොකුරු සහතික සොරකම් කිරීමට හැකි වනු ඇත. සාමාන්‍යයෙන්, hostPath වෙළුම් භාවිතා කිරීමට අවසර ඇත්තේ kube-system namespace තුළ ක්‍රියාත්මක වන පද්ධති යෙදුම්වලට පමණි.

Kubernetes කොටුවෙන් පිටත ක්‍රියා කරන ගබඩා පද්ධති ලේඛනවල දක්වා ඇත.

ක්රමය 2. SC/PVC/PV උදුන් වෙත සම්බන්ධ කිරීම

විකල්ප සම්බන්ධතා ක්‍රමයක් නම් Storage class, PersistentVolumeClaim, PersistentVolume යන සංකල්පයයි.

ගබඩා පන්තිය දත්ත ගබඩා කිරීමේ පද්ධතියට සම්බන්ධතා පරාමිතීන් ගබඩා කරයි.

PersistentVolumeClaim යෙදුමට අවශ්‍ය දේ සඳහා අවශ්‍යතා විස්තර කරයි.
Persistent Volume ප්රවේශ පරාමිතීන් සහ පරිමාවේ තත්ත්වය ගබඩා කරයි.

අදහසෙහි සාරය: පොඩ් මැනිෆෙස්ටයේ ඔවුන් PersistentVolumeClaim වර්ගයේ පරිමාවක් දක්වන අතර claimName පරාමිතිය තුළ මෙම ආයතනයේ නම දක්වයි.

Kubernetes පොකුරක් තුළ දත්ත ගබඩා කිරීම

PersistentVolumeClaim මැනිෆෙස්ටය යෙදුමට අවශ්‍ය දත්ත පරිමාව සඳහා අවශ්‍යතා විස්තර කරයි. ඇතුළුව:

  • තැටි ප්රමාණය;
  • ප්රවේශ ක්රමය: ReadWriteOnce හෝ ReadWriteMany;
  • ගබඩා පන්තියට සබැඳිය - අපට පරිමාව නිර්මාණය කිරීමට අවශ්‍ය දත්ත ගබඩා පද්ධතිය තුළ.

Storage class මැනිෆෙස්ටය ගබඩා පද්ධතියට ඇති සම්බන්ධතාවයේ වර්ගය සහ පරාමිතීන් ගබඩා කරයි. එහි නෝඩය මත පරිමාව සවි කිරීමට ඝනකයට ඒවා අවශ්ය වේ.

PersistentVolume මැනිෆෙස්ටස් නිශ්චිත පරිමාවක් සඳහා ගබඩා පන්තිය සහ ප්‍රවේශ පරාමිතීන් දක්වයි (පරිමාව ID, මාර්ගය, ආදිය).

PVC නිර්මාණය කරන විට, Kubernetes කුමන ප්‍රමාණයේ පරිමාවක් සහ කුමන ගබඩා පන්තියක් අවශ්‍ය දැයි බලා, නොමිලේ PersistentVolume එකක් තෝරා ගනී.

එවැනි PVs නොමැති නම්, Kubernetes හට විශේෂ වැඩසටහනක් දියත් කළ හැකිය - Provisioner (එහි නම ගබඩා පන්තියේ දක්වා ඇත). මෙම වැඩසටහන ගබඩා පද්ධතියට සම්බන්ධ කරයි, අවශ්‍ය ප්‍රමාණයේ පරිමාවක් නිර්මාණය කරයි, හඳුනාගැනීමක් ලබා ගනී සහ PersistentVolumeClaim සමඟ සම්බන්ධ වන Kubernetes පොකුරේ PersistentVolume මැනිෆෙස්ටයක් නිර්මාණය කරයි.

යෙදුම් මැනිෆෙස්ට් මට්ටමේ සිට පරිපාලන මට්ටම දක්වා යෙදුම ක්‍රියා කරන්නේ කුමන ගබඩා පද්ධතිය සමඟද යන්න පිළිබඳ තොරතුරු ඉවත් කිරීමට මෙම සාරාංශ රාශියක් ඔබට ඉඩ සලසයි.

දත්ත ගබඩා පද්ධතියට සම්බන්ධ කිරීම සඳහා වන සියලුම පරාමිතීන් ගබඩා පන්තියේ පිහිටා ඇති අතර ඒ සඳහා පොකුරු පරිපාලකයින් වගකිව යුතුය. AWS සිට Google Cloud වෙත යන විට ඔබ කළ යුත්තේ යෙදුම් මැනිෆෙස්ටයේ ගබඩා පන්තියේ නම PVC ලෙස වෙනස් කිරීමයි. Provisioner වැඩසටහන භාවිතයෙන් දත්ත ගබඩා කිරීම සඳහා ස්ථීර පරිමාව ස්වයංක්‍රීයව පොකුර තුළ නිර්මාණය වේ.

ක්රමය 3: බහාලුම් ගබඩා අතුරුමුහුණත

විවිධ ගබඩා පද්ධති සමඟ අන්තර්ක්‍රියා කරන සියලුම කේතය Kubernetes හරයේ කොටසකි. දෝෂ නිවැරදි කිරීම් නිකුත් කිරීම හෝ නව ක්‍රියාකාරීත්වය නව නිකුතු සමඟ බැඳී ඇත; Kubernetes හි සහාය දක්වන සියලුම අනුවාද සඳහා කේතය වෙනස් කළ යුතුය. මේ සියල්ල නඩත්තු කිරීම හා නව ක්රියාකාරිත්වය එකතු කිරීම අපහසුය.

ගැටළුව විසඳීම සඳහා, Cloud Foundry, Kubernetes, Mesos සහ Docker හි සංවර්ධකයින් විසින් බහාලුම් ගබඩා අතුරුමුහුණත (CSI) නිර්මාණය කරන ලදී - බහාලුම් කළමනාකරණ පද්ධතියේ අන්තර්ක්‍රියාකාරිත්වය විස්තර කරන සරල ඒකාබද්ධ අතුරු මුහුණතක් සහ විශේෂිත ධාවකයක් සමඟ ක්‍රියා කරන විශේෂ ධාවකයක් (CSI Driver) ගබඩා පද්ධතිය. ගබඩා පද්ධති සමඟ අන්තර්ක්‍රියා කිරීම සඳහා වූ සියලුම කේත Kubernetes හරයෙන් වෙනම පද්ධතියකට ගෙන යන ලදී.

බහාලුම් ගබඩා අතුරුමුහුණත ලේඛනගත කිරීම.

සාමාන්‍යයෙන්, CSI Driver සංරචක දෙකකින් සමන්විත වේ: Node Plugin සහ Controller ප්ලගිනය.

නෝඩ් ප්ලගිනය එක් එක් නෝඩය මත ක්‍රියාත්මක වන අතර වෙළුම් සවි කිරීම සහ ඒවා මත මෙහෙයුම් සිදු කිරීම සඳහා වගකිව යුතුය. පාලක ප්ලගිනය ගබඩා පද්ධතිය සමඟ අන්තර්ක්‍රියා කරයි: වෙළුම් නිර්මාණය කිරීම හෝ මකා දැමීම, ප්‍රවේශ හිමිකම් පැවරීම යනාදිය.

දැනට, පැරණි ධාවක Kubernetes කර්නලය තුළ පවතී, නමුත් ඒවා තවදුරටත් භාවිතා කිරීම නිර්දේශ කර නොමැති අතර ඔවුන් ක්‍රියා කරන පද්ධතිය සඳහා විශේෂයෙන් CSI Driver ස්ථාපනය කරන ලෙස සැමට උපදෙස් දෙනු ලැබේ.

නවෝත්පාදනය දැනටමත් ගබඩා පන්තිය හරහා දත්ත ගබඩාව සැකසීමට පුරුදු වී සිටින අයව බිය ගැන්විය හැකිය, නමුත් ඇත්ත වශයෙන්ම භයානක කිසිවක් සිදුවී නොමැත. ක්‍රමලේඛකයින් සඳහා, ඇත්ත වශයෙන්ම කිසිවක් වෙනස් නොවේ - ඔවුන් වැඩ කර ඇත්තේ ගබඩා පන්තිය යන නම සමඟ පමණක් වන අතර එය දිගටම කරගෙන යනු ඇත. පරිපාලකයින් සඳහා, හෙල්ම් ප්‍රස්ථාර ස්ථාපනය එකතු කර ඇති අතර සැකසුම් වල ව්‍යුහය වෙනස් වී ඇත. මීට පෙර සිටුවම් කෙලින්ම ගබඩා පන්තියට ඇතුළත් කර ඇත්නම්, දැන් ඒවා පළමුව හෙල්ම් ප්‍රස්ථාරයේ සහ පසුව ගබඩා පන්තියේ සැකසිය යුතුය. ඔබ එය සොයා බැලුවහොත්, නරක කිසිවක් සිදුවී නැත.

CSI ධාවකය භාවිතයෙන් Ceph ගබඩා පද්ධති සම්බන්ධ කිරීම වෙත මාරු වීමෙන් ඔබට ලබාගත හැකි ප්‍රතිලාභ දෙස බැලීමට උදාහරණයක් ගනිමු.

Ceph සමඟ වැඩ කරන විට, CSI ප්ලගිනය ගොඩනඟන ලද ධාවකයන්ට වඩා ගබඩා පද්ධති සමඟ වැඩ කිරීම සඳහා වැඩි විකල්ප සපයයි.

  1. ගතික තැටි නිර්මාණය. සාමාන්යයෙන් RBD තැටි RWO මාදිලියේ පමණක් භාවිතා වේ, නමුත් Ceph සඳහා CSI ඒවා RWX මාදිලියේ භාවිතා කිරීමට ඉඩ සලසයි. විවිධ නෝඩ් වල ඇති කරල් කිහිපයකට ඔවුන්ගේ නෝඩ් මත එකම RDB තැටිය සවි කළ හැකි අතර ඒවා සමඟ සමාන්තරව වැඩ කළ හැකිය. සාධාරණ වීමට නම්, සෑම දෙයක්ම එතරම් දීප්තිමත් නොවේ - මෙම තැටිය සම්බන්ධ කළ හැක්කේ බ්ලොක් උපාංගයක් ලෙස පමණි, එයින් අදහස් කරන්නේ ඔබට බහු ප්‍රවේශ මාදිලියකින් එය සමඟ වැඩ කිරීමට යෙදුම අනුවර්තනය වීමට සිදුවනු ඇති බවයි.
  2. ස්නැප්ෂොට් නිර්මාණය කිරීම. Kubernetes පොකුරක් තුළ, ඔබට ස්නැප්ෂොට් එකක් සෑදීමේ අවශ්‍යතාවය සහිත මැනිෆෙස්ට් එකක් සෑදිය හැක. CSI ප්ලගිනය එය දකින අතර තැටියෙන් ඡායාරූපයක් ගනී. එය මත පදනම්ව, ඔබට PersistentVolume හි උපස්ථයක් හෝ පිටපතක් සෑදිය හැකිය.
  3. තැටි ප්රමාණය වැඩි කිරීම Kubernetes පොකුරක් තුළ ගබඩා කිරීම සහ PersistentVolume මත.
  4. කෝටා. Kubernetes තුළ ගොඩනගා ඇති CephFS ධාවක කෝටා සඳහා සහය නොදක්වයි, නමුත් නවතම Ceph Nautilus සමඟ නැවුම් CSI ප්ලගීන CephFS කොටස් මත කෝටා සක්‍රීය කළ හැක.
  5. මෙට්රික්ස්. CSI ප්ලගිනය මගින් Prometheus හට කුමන වෙළුම් සම්බන්ධ වී තිබේද, කුමන සන්නිවේදනයන් සිදු වන්නේද, යනාදී විවිධ මිනුම් දණ්ඩ ලබා දිය හැක.
  6. ස්ථල විද්‍යාව දැනුවත්. පොකුර භූගෝලීය වශයෙන් බෙදා හරින ආකාරය මැනිෆෙස්ට් වල සඳහන් කිරීමට සහ ඇම්ස්ටර්ඩෑම් හි පිහිටි ගබඩා පද්ධතියක් ලන්ඩනයේ ධාවනය වන කරල් වලට සම්බන්ධ කිරීමෙන් වළකින්න.

CSI හරහා Ceph Kubernetes පොකුරකට සම්බන්ධ කරන්නේ කෙසේද, බලන්න Slurm සවස පාසල් දේශනයේ ප්‍රායෝගික කොටසේදී. ඔබට දායක විය හැක Ceph වීඩියෝ පාඨමාලාව, එය ඔක්තෝබර් 15 වන දින දියත් කෙරේ.

ලිපියේ කර්තෘ: සර්ජි බොන්ඩරෙව්, සවුත්බ්‍රිජ් හි ගෘහ නිර්මාණ ශිල්පියෙකු ලෙස සේවය කරයි, කුබෙස්ප්‍රේ හි සංවර්ධකයින්ගෙන් කෙනෙකු වන සහතික කළ කුබර්නෙට්ස් පරිපාලක.

කුඩා පෝස්ට් ස්ක්‍රිප්ටම් ප්‍රචාරණය සඳහා නොව ප්‍රයෝජනය සඳහා...

PS Sergey Bondarev දැඩි පාඨමාලා දෙකක් මෙහෙයවයි: යාවත්කාලීන කුබර්නෙට්ස් පදනම සැප්තැම්බර් 28-30 සහ උසස් කුබර්නෙටස් මෙගා ඔක්තෝබර් 14-16.

Kubernetes පොකුරක් තුළ දත්ත ගබඩා කිරීම

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න