குபெர்னெட்ஸ் கிளஸ்டரில் தரவைச் சேமித்தல்

குபெர்னெட்ஸ் கிளஸ்டரில் இயங்கும் பயன்பாடுகளுக்கான தரவு சேமிப்பகத்தை உள்ளமைக்க பல வழிகள் உள்ளன. அவற்றில் சில ஏற்கனவே காலாவதியானவை, மற்றவை மிக சமீபத்தில் தோன்றின. இந்தக் கட்டுரையில், சேமிப்பக அமைப்புகளை இணைப்பதற்கான மூன்று விருப்பங்களின் கருத்தைப் பார்ப்போம், இதில் மிகச் சமீபத்திய ஒன்று - கொள்கலன் சேமிப்பக இடைமுகம் வழியாக இணைப்பது உட்பட.

குபெர்னெட்ஸ் கிளஸ்டரில் தரவைச் சேமித்தல்

முறை 1: பாட் மேனிஃபெஸ்டில் PV ஐக் குறிப்பிடவும்

குபெர்னெட்டஸ் கிளஸ்டரில் உள்ள பாட் ஒன்றை விவரிக்கும் ஒரு பொதுவான மேனிஃபெஸ்ட்:

குபெர்னெட்ஸ் கிளஸ்டரில் தரவைச் சேமித்தல்

எந்த வால்யூம் இணைக்கப்பட்டுள்ளது மற்றும் எங்கு நிறத்தில் சிறப்பிக்கப்படுகிறது என்பதை விவரிக்கும் மேனிஃபெஸ்ட்டின் பகுதிகள்.

பிரிவில் தொகுதி ஏற்றங்கள் மவுண்ட் பாயின்ட்களைக் குறிப்பிடவும் (மவுண்ட்பாத்) - கொள்கலனுக்குள் இருக்கும் அடைவில் நிரந்தர வால்யூம் ஏற்றப்படும், அதே போல் தொகுதியின் பெயரும்.

பிரிவில் x பாட்டில் பயன்படுத்தப்படும் அனைத்து தொகுதிகளையும் பட்டியலிடுகிறது. ஒவ்வொரு தொகுதியின் பெயரையும், வகை (எங்கள் விஷயத்தில்: awsElasticBlockStore) மற்றும் இணைப்பு அளவுருக்களையும் குறிப்பிடவும். மேனிஃபெஸ்டில் எந்த அளவுருக்கள் பட்டியலிடப்பட்டுள்ளன என்பது தொகுதி வகையைப் பொறுத்தது.

ஒரே அளவை பல பாட் கொள்கலன்களில் ஒரே நேரத்தில் ஏற்றலாம். இந்த வழியில், வெவ்வேறு பயன்பாட்டு செயல்முறைகள் ஒரே தரவை அணுகலாம்.

குபெர்னெட்டஸ் ஆரம்ப நிலையில் இருந்தபோது இந்த இணைப்பு முறை ஆரம்பத்தில் கண்டுபிடிக்கப்பட்டது, இன்று இந்த முறை காலாவதியானது.

அதைப் பயன்படுத்தும் போது பல சிக்கல்கள் உள்ளன:

  1. அனைத்து தொகுதிகளும் கைமுறையாக உருவாக்கப்பட வேண்டும்; குபர்னெட்டால் நமக்காக எதையும் உருவாக்க முடியாது;
  2. ஒவ்வொரு தொகுதிக்கான அணுகல் அளவுருக்கள் தனித்துவமானது, மேலும் அவை தொகுதியைப் பயன்படுத்தும் அனைத்து காய்களின் வெளிப்பாடுகளிலும் குறிப்பிடப்பட வேண்டும்;
  3. சேமிப்பக அமைப்பை மாற்ற (உதாரணமாக, AWS இலிருந்து Google Cloud க்கு செல்லவும்), நீங்கள் அனைத்து மேனிஃபெஸ்ட்களிலும் உள்ள மவுண்டட் தொகுதிகளின் அமைப்புகளையும் வகையையும் மாற்ற வேண்டும்.

இவை அனைத்தும் மிகவும் சிரமமாக உள்ளது, எனவே உண்மையில் இந்த முறை சில சிறப்பு வகை தொகுதிகளை மட்டுமே இணைக்கப் பயன்படுகிறது: configMap, secret, emptyDir, hostPath:

  • configMap மற்றும் இரகசியம் ஆகியவை சேவை தொகுதிகள் ஆகும், அவை கொள்கலனில் உள்ள குபெர்னெட்டஸ் மேனிஃபெஸ்ட்ஸில் இருந்து கோப்புகளுடன் ஒரு தொகுதியை உருவாக்க உங்களை அனுமதிக்கின்றன.

  • காலி டிர் என்பது ஒரு தற்காலிக தொகுதி, இது நெற்றுக்கு வாழ்நாள் முழுவதும் மட்டுமே உருவாக்கப்பட்டது. தற்காலிகத் தரவைச் சோதிக்க அல்லது சேமிப்பதற்காகப் பயன்படுத்த வசதியானது. ஒரு பாட் நீக்கப்படும் போது, ​​காலிDir தொகுதியும் நீக்கப்படும் மற்றும் எல்லா தரவும் இழக்கப்படும்.

  • hostPath - /etc/kubernetes உட்பட, பயன்பாட்டுடன் கண்டெய்னருக்குள் பயன்பாடு இயங்கும் சேவையகத்தின் உள்ளூர் வட்டில் எந்த கோப்பகத்தையும் ஏற்ற அனுமதிக்கிறது. இது பாதுகாப்பற்ற அம்சமாகும், எனவே பாதுகாப்புக் கொள்கைகள் பொதுவாக இந்த வகை தொகுதிகளைப் பயன்படுத்துவதைத் தடை செய்கின்றன. இல்லையெனில், தாக்குபவர்களின் பயன்பாடு HTC குபெர்னெட்ஸ் கோப்பகத்தை அதன் கொள்கலனுக்குள் ஏற்றி அனைத்து கிளஸ்டர் சான்றிதழ்களையும் திருட முடியும். பொதுவாக, ஹோஸ்ட்பாத் தொகுதிகள் kube-system namespace இல் இயங்கும் கணினி பயன்பாடுகளால் மட்டுமே பயன்படுத்த அனுமதிக்கப்படும்.

குபெர்னெட்டஸ் அவுட் ஆஃப் தி பாக்ஸ் மூலம் செயல்படும் சேமிப்பக அமைப்புகள் ஆவணத்தில் கொடுக்கப்பட்டுள்ளன.

முறை 2. SC/PVC/PV அடுப்புகளுக்கான இணைப்பு

ஒரு மாற்று இணைப்பு முறை என்பது சேமிப்பக வகுப்பு, PersistentVolumeClaim, PersistentVolume என்ற கருத்து.

சேமிப்பு வகுப்பு தரவு சேமிப்பக அமைப்பில் இணைப்பு அளவுருக்களை சேமிக்கிறது.

நிலையான தொகுதி உரிமைகோரல் பயன்பாட்டிற்கு என்ன தேவை என்பதை விவரிக்கிறது.
நிலையான தொகுதி அணுகல் அளவுருக்கள் மற்றும் தொகுதி நிலையை சேமிக்கிறது.

யோசனையின் சாராம்சம்: பாட் மேனிஃபெஸ்டில் அவை PersistentVolumeClaim வகையின் அளவைக் குறிக்கின்றன மற்றும் claimName அளவுருவில் இந்த நிறுவனத்தின் பெயரைக் குறிக்கின்றன.

குபெர்னெட்ஸ் கிளஸ்டரில் தரவைச் சேமித்தல்

PersistentVolumeClaim மேனிஃபெஸ்டு, பயன்பாட்டிற்குத் தேவைப்படும் தரவின் அளவிற்கான தேவைகளை விவரிக்கிறது. உட்பட:

  • வட்டு அளவு;
  • அணுகல் முறை: ReadWriteOnce அல்லது ReadWriteMany;
  • சேமிப்பக வகுப்பிற்கான இணைப்பு - எந்த தரவு சேமிப்பக அமைப்பில் நாம் தொகுதியை உருவாக்க விரும்புகிறோம்.

ஸ்டோரேஜ் கிளாஸ் மேனிஃபெஸ்ட் சேமிப்பக அமைப்பிற்கான இணைப்பின் வகை மற்றும் அளவுருக்களை சேமிக்கிறது. க்யூப்லெட்டுக்கு அதன் முனையில் ஒலியளவை ஏற்றுவதற்கு அவை தேவை.

PersistentVolume மேனிஃபெஸ்டுகள் ஒரு குறிப்பிட்ட தொகுதிக்கான சேமிப்பக வகுப்பு மற்றும் அணுகல் அளவுருக்களைக் குறிப்பிடுகின்றன (தொகுதி ஐடி, பாதை போன்றவை).

ஒரு PVC ஐ உருவாக்கும் போது, ​​Kubernetes எந்த அளவு வால்யூம் மற்றும் என்ன ஸ்டோரேஜ் கிளாஸ் தேவை என்று பார்த்து, இலவச PersistentVolume ஐ தேர்ந்தெடுக்கிறார்.

அத்தகைய PVகள் கிடைக்கவில்லை என்றால், Kubernetes ஒரு சிறப்பு திட்டத்தை தொடங்கலாம் - Provisioner (அதன் பெயர் சேமிப்பக வகுப்பில் குறிப்பிடப்பட்டுள்ளது). இந்த நிரல் சேமிப்பக அமைப்புடன் இணைக்கிறது, தேவையான அளவு அளவை உருவாக்குகிறது, ஒரு அடையாளங்காட்டியைப் பெறுகிறது மற்றும் PersistentVolumeClaim உடன் தொடர்புடைய Kubernetes கிளஸ்டரில் PersistentVolume மேனிஃபெஸ்டை உருவாக்குகிறது.

இந்த அனைத்து சுருக்கங்களின் தொகுப்பு பயன்பாடு மேனிஃபெஸ்ட் மட்டத்திலிருந்து நிர்வாக நிலை வரை பயன்பாடு எந்த சேமிப்பக அமைப்புடன் செயல்படுகிறது என்பது பற்றிய தகவலை அகற்ற உங்களை அனுமதிக்கிறது.

தரவு சேமிப்பக அமைப்புடன் இணைப்பதற்கான அனைத்து அளவுருக்கள் சேமிப்பக வகுப்பில் அமைந்துள்ளன, இதற்கு கிளஸ்டர் நிர்வாகிகள் பொறுப்பு. AWS இலிருந்து Google Cloud க்கு நகரும் போது நீங்கள் செய்ய வேண்டியது, பயன்பாட்டு மேனிஃபெஸ்ட்டில் உள்ள சேமிப்பக வகுப்பின் பெயரை PVC ஆக மாற்றுவதுதான். ப்ரொவிஷனர் நிரலைப் பயன்படுத்தி தரவு சேமிப்பிற்கான நிலைத்தன்மை தொகுதி தானாகவே கிளஸ்டரில் உருவாக்கப்படும்.

முறை 3: கொள்கலன் சேமிப்பு இடைமுகம்

பல்வேறு சேமிப்பக அமைப்புகளுடன் தொடர்பு கொள்ளும் அனைத்து குறியீடுகளும் குபெர்னெட்ஸ் மையத்தின் ஒரு பகுதியாகும். பிழைத் திருத்தங்கள் அல்லது புதிய செயல்பாடுகளின் வெளியீடு புதிய வெளியீடுகளுடன் இணைக்கப்பட்டுள்ளது; Kubernetes இன் ஆதரிக்கப்படும் அனைத்து பதிப்புகளுக்கும் குறியீடு மாற்றப்பட வேண்டும். இவை அனைத்தையும் பராமரிப்பது மற்றும் புதிய செயல்பாட்டைச் சேர்ப்பது கடினம்.

சிக்கலைத் தீர்க்க, Cloud Foundry, Kubernetes, Mesos மற்றும் Docker இன் டெவலப்பர்கள் கன்டெய்னர் ஸ்டோரேஜ் இன்டர்ஃபேஸ் (CSI) - ஒரு எளிய ஒருங்கிணைந்த இடைமுகம், கொள்கலன் மேலாண்மை அமைப்பின் தொடர்பு மற்றும் ஒரு குறிப்பிட்ட இயக்கி (சிஎஸ்ஐ டிரைவர்) ஆகியவற்றின் தொடர்புகளை விவரிக்கிறது. சேமிப்பு அமைப்பு. சேமிப்பக அமைப்புகளுடனான தொடர்புக்கான அனைத்து குறியீடுகளும் குபெர்னெட்டஸ் மையத்திலிருந்து ஒரு தனி அமைப்புக்கு மாற்றப்பட்டது.

கொள்கலன் சேமிப்பு இடைமுக ஆவணம்.

பொதுவாக, CSI இயக்கி இரண்டு கூறுகளைக் கொண்டுள்ளது: முனை செருகுநிரல் மற்றும் கட்டுப்படுத்தி செருகுநிரல்.

நோட் செருகுநிரல் ஒவ்வொரு முனையிலும் இயங்குகிறது மற்றும் தொகுதிகளை ஏற்றுவதற்கும் அவற்றில் செயல்பாடுகளைச் செய்வதற்கும் பொறுப்பாகும். கன்ட்ரோலர் செருகுநிரல் சேமிப்பக அமைப்புடன் தொடர்பு கொள்கிறது: தொகுதிகளை உருவாக்குகிறது அல்லது நீக்குகிறது, அணுகல் உரிமைகளை வழங்குகிறது.

இப்போதைக்கு, பழைய இயக்கிகள் Kubernetes கர்னலில் உள்ளன, ஆனால் அவை இனி பயன்படுத்த பரிந்துரைக்கப்படவில்லை, மேலும் அவர்கள் செயல்படும் கணினிக்காக குறிப்பாக CSI இயக்கியை நிறுவுமாறு அனைவருக்கும் அறிவுறுத்தப்படுகிறது.

ஸ்டோரேஜ் கிளாஸ் மூலம் டேட்டா ஸ்டோரேஜ் அமைக்க ஏற்கனவே பழக்கப்பட்டவர்களை இந்த கண்டுபிடிப்பு பயமுறுத்தலாம், ஆனால் உண்மையில் பயங்கரமான எதுவும் நடக்கவில்லை. புரோகிராமர்களைப் பொறுத்தவரை, உண்மையில் எதுவும் மாறாது - அவர்கள் ஸ்டோரேஜ் கிளாஸ் என்ற பெயரில் மட்டுமே வேலை செய்திருக்கிறார்கள், மேலும் அதைத் தொடர்ந்து செய்வார்கள். நிர்வாகிகளுக்கு, ஹெல்ம் விளக்கப்படம் நிறுவல் சேர்க்கப்பட்டது மற்றும் அமைப்புகளின் அமைப்பு மாறிவிட்டது. முன்பு அமைப்புகள் நேரடியாக சேமிப்பக வகுப்பில் உள்ளிடப்பட்டிருந்தால், இப்போது அவை முதலில் ஹெல்ம் விளக்கப்படத்திலும், பின்னர் சேமிப்பக வகுப்பிலும் அமைக்கப்பட வேண்டும். ஆராய்ந்து பார்த்தால், அசம்பாவிதம் எதுவும் நடக்கவில்லை.

CSI இயக்கியைப் பயன்படுத்தி Ceph சேமிப்பக அமைப்புகளை இணைப்பதன் மூலம் நீங்கள் பெறக்கூடிய நன்மைகளைப் பார்க்க ஒரு உதாரணத்தை எடுத்துக் கொள்வோம்.

Ceph உடன் பணிபுரியும் போது, ​​CSI செருகுநிரல் உள்ளமைக்கப்பட்ட இயக்கிகளை விட சேமிப்பக அமைப்புகளுடன் வேலை செய்வதற்கான கூடுதல் விருப்பங்களை வழங்குகிறது.

  1. டைனமிக் வட்டு உருவாக்கம். பொதுவாக RBD வட்டுகள் RWO பயன்முறையில் மட்டுமே பயன்படுத்தப்படுகின்றன, ஆனால் Ceph க்கான CSI அவற்றை RWX பயன்முறையில் பயன்படுத்த அனுமதிக்கிறது. வெவ்வேறு முனைகளில் உள்ள பல காய்கள் ஒரே RDB வட்டை அவற்றின் முனைகளில் ஏற்றலாம் மற்றும் அவற்றுடன் இணையாக வேலை செய்யலாம். சரியாகச் சொல்வதானால், எல்லாமே மிகவும் பிரகாசமாக இல்லை - இந்த வட்டை ஒரு தொகுதி சாதனமாக மட்டுமே இணைக்க முடியும், அதாவது பல அணுகல் பயன்முறையில் வேலை செய்ய நீங்கள் பயன்பாட்டை மாற்றியமைக்க வேண்டும்.
  2. ஸ்னாப்ஷாட்களை உருவாக்குதல். குபெர்னெட்டஸ் கிளஸ்டரில், ஸ்னாப்ஷாட்டை உருவாக்குவதற்கான தேவையுடன் ஒரு மேனிஃபெஸ்ட்டை நீங்கள் உருவாக்கலாம். CSI செருகுநிரல் அதைப் பார்த்து வட்டில் இருந்து ஒரு ஸ்னாப்ஷாட்டை எடுக்கும். அதன் அடிப்படையில், நீங்கள் ஒரு காப்புப்பிரதி அல்லது PersistentVolume இன் நகலை உருவாக்கலாம்.
  3. வட்டு அளவு அதிகரிக்கிறது குபெர்னெட்ஸ் கிளஸ்டரில் சேமிப்பு மற்றும் பெர்சிஸ்டண்ட் வால்யூம்.
  4. ஒதுக்கீடுகள். Kubernetes இல் கட்டமைக்கப்பட்ட CephFS இயக்கிகள் ஒதுக்கீட்டை ஆதரிக்காது, ஆனால் சமீபத்திய Ceph Nautilus உடன் புதிய CSI செருகுநிரல்கள் CephFS பகிர்வுகளில் ஒதுக்கீட்டை இயக்கும்.
  5. அளவீடுகள். CSI செருகுநிரல் ப்ரோமிதியஸுக்கு எந்தெந்த தொகுதிகள் இணைக்கப்பட்டுள்ளன, என்ன தகவல்தொடர்புகள் நடைபெறுகின்றன போன்ற பல்வேறு அளவீடுகளை வழங்க முடியும்.
  6. டோபாலஜி தெரியும். கிளஸ்டர் புவியியல் ரீதியாக எவ்வாறு விநியோகிக்கப்படுகிறது என்பதை மேனிஃபெஸ்ட்டில் குறிப்பிடவும், ஆம்ஸ்டர்டாமில் அமைந்துள்ள சேமிப்பக அமைப்பை லண்டனில் இயங்கும் காய்களுடன் இணைப்பதைத் தவிர்க்கவும் உங்களை அனுமதிக்கிறது.

CSI வழியாக Ceph ஐ Kubernetes கிளஸ்டருடன் இணைப்பது எப்படி, பார்க்கவும் ஸ்லர்ம் மாலைப் பள்ளி விரிவுரையின் நடைமுறைப் பகுதியில். நீங்களும் குழுசேரலாம் Ceph வீடியோ பாடநெறி, இது அக்டோபர் 15 ஆம் தேதி தொடங்கும்.

கட்டுரையின் ஆசிரியர்: செர்ஜி பொண்டரேவ், சவுத்பிரிட்ஜில் கட்டிடக் கலைஞர், சான்றளிக்கப்பட்ட குபெர்னெட்ஸ் நிர்வாகி, kubespray டெவலப்பர்களில் ஒருவர்.

ஒரு சிறிய இடுகை ஸ்கிரிப்டம் விளம்பரத்திற்காக அல்ல, ஆனால் நன்மைக்காக...

PS Sergey Bondarev இரண்டு தீவிர படிப்புகளை வழிநடத்துகிறார்: புதுப்பிக்கப்பட்டது குபெர்னெட்டஸ் தளம் செப்டம்பர் 28-30 மற்றும் முன்னேறியது குபெர்னெட்டஸ் மெகா அக்டோபர் 14-16.

குபெர்னெட்ஸ் கிளஸ்டரில் தரவைச் சேமித்தல்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்