OpenShift க்கான GitOps அறிமுகம்

இன்று நாம் GitOps இன் கொள்கைகள் மற்றும் மாதிரிகள் மற்றும் இந்த மாதிரிகள் OpenShift இயங்குதளத்தில் எவ்வாறு செயல்படுத்தப்படுகின்றன என்பதைப் பற்றி பேசுவோம். இந்த தலைப்பில் ஒரு ஊடாடும் வழிகாட்டி உள்ளது இணைப்பு.

OpenShift க்கான GitOps அறிமுகம்

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

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

GitOps க்கு கல்விசார் வரையறை அல்லது அங்கீகரிக்கப்பட்ட விதிகள் எதுவும் இல்லை, இந்த நடைமுறை கட்டமைக்கப்பட்ட கொள்கைகளின் தொகுப்பு மட்டுமே:

  • கணினியின் அறிவிப்பு விளக்கம் Git களஞ்சியத்தில் சேமிக்கப்படுகிறது (கட்டமைப்புகள், கண்காணிப்பு, முதலியன).
  • மாநில மாற்றங்கள் இழுக்க கோரிக்கைகள் மூலம் செய்யப்படுகின்றன.
  • Git push கோரிக்கைகளைப் பயன்படுத்தி களஞ்சியத்தில் உள்ள தரவுகளுடன் இயங்கும் அமைப்புகளின் நிலை கொண்டுவரப்படுகிறது.

GitOps கோட்பாடுகள்

  • கணினி வரையறைகள் மூல குறியீடு என விவரிக்கப்படுகின்றன

சிஸ்டம்ஸ் உள்ளமைவு குறியீடாகக் கருதப்படுகிறது, எனவே இது ஒரு Git களஞ்சியத்தில் சேமிக்கப்பட்டு தானாகவே பதிப்பு செய்யப்படலாம், இது உண்மையின் ஒரு ஆதாரமாக செயல்படுகிறது. இந்த அணுகுமுறை அமைப்புகளில் மாற்றங்களைச் செயல்படுத்துவதையும் திரும்பப் பெறுவதையும் எளிதாக்குகிறது.

  • கணினிகளின் விரும்பிய நிலை மற்றும் உள்ளமைவு Git இல் அமைக்கப்பட்டு பதிப்பு செய்யப்படுகிறது

Git இல் கணினிகளின் விரும்பிய நிலையைச் சேமித்து, பதிப்பதன் மூலம், கணினிகள் மற்றும் பயன்பாடுகளில் மாற்றங்களை எளிதாக உருட்டவும் மாற்றவும் முடியும். குறியீடு உரிமையைக் கட்டுப்படுத்தவும் அதன் நம்பகத்தன்மையை சரிபார்க்கவும் Git இன் பாதுகாப்பு வழிமுறைகளைப் பயன்படுத்தலாம்.

  • இழுத்தல் கோரிக்கைகள் மூலம் உள்ளமைவு மாற்றங்கள் தானாகவே பயன்படுத்தப்படலாம்

Git pull கோரிக்கைகளைப் பயன்படுத்தி, களஞ்சியத்தில் உள்ள கட்டமைப்புகளில் மாற்றங்கள் எவ்வாறு பயன்படுத்தப்படுகின்றன என்பதை எளிதாகக் கட்டுப்படுத்தலாம். எடுத்துக்காட்டாக, அவை மற்ற குழு உறுப்பினர்களுக்கு மதிப்பாய்வு செய்ய வழங்கப்படலாம் அல்லது CI சோதனைகள் மூலம் இயக்கலாம்.

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

  • உள்ளமைவுகளின் கட்டுப்பாடற்ற சறுக்கல் சிக்கலை சரிசெய்தல்

கணினியின் விரும்பிய நிலை Git களஞ்சியத்தில் சேமிக்கப்பட்டவுடன், நாம் செய்ய வேண்டியதெல்லாம், கணினியின் தற்போதைய நிலை அதன் விரும்பிய நிலைக்கு பொருந்துவதை உறுதி செய்யும் மென்பொருளைக் கண்டுபிடிப்பதாகும். இது அவ்வாறு இல்லையென்றால், இந்த மென்பொருள் - அமைப்புகளைப் பொறுத்து - முரண்பாடுகளைத் தானே அகற்ற வேண்டும் அல்லது உள்ளமைவு சறுக்கல் பற்றி எங்களுக்குத் தெரிவிக்க வேண்டும்.

OpenShift க்கான GitOps மாதிரிகள்

ஆன்-கிளஸ்டர் வள மறுசீரமைப்பு

இந்த மாதிரியின்படி, கிளஸ்டரில் ஒரு கட்டுப்படுத்தி உள்ளது, இது Git களஞ்சியத்தில் உள்ள குபெர்னெட்ஸ் ஆதாரங்களை (YAML கோப்புகள்) கிளஸ்டரின் உண்மையான ஆதாரங்களுடன் ஒப்பிடுவதற்கு பொறுப்பாகும். முரண்பாடுகள் கண்டறியப்பட்டால், கட்டுப்படுத்தி அறிவிப்புகளை அனுப்புகிறது மற்றும் முரண்பாடுகளை சரிசெய்ய நடவடிக்கை எடுக்கலாம். இந்த GitOps மாதிரி Anthos Config Management மற்றும் Weaveworks Flux இல் பயன்படுத்தப்படுகிறது.

OpenShift க்கான GitOps அறிமுகம்

வெளிப்புற வள மறுசீரமைப்பு (புஷ்)

“Git repository - Kubernetes cluster” ஜோடிகளில் உள்ள வளங்களை ஒத்திசைப்பதற்குப் பொறுப்பான ஒன்று அல்லது அதற்கு மேற்பட்ட கட்டுப்படுத்திகள் எங்களிடம் இருக்கும்போது, ​​இந்த மாதிரி முந்தைய மாதிரியின் மாறுபாடாகக் கருதப்படலாம். இங்குள்ள வித்தியாசம் என்னவென்றால், நிர்வகிக்கப்படும் ஒவ்வொரு கிளஸ்டருக்கும் தனித்தனி கட்டுப்படுத்தி இருக்க வேண்டிய அவசியமில்லை. Git - k8s கிளஸ்டர் ஜோடிகள் பெரும்பாலும் CRDகள் (தனிப்பயன் வள வரையறைகள்) என வரையறுக்கப்படுகின்றன, இது கட்டுப்படுத்தி எவ்வாறு ஒத்திசைவைச் செய்ய வேண்டும் என்பதை விவரிக்கிறது. இந்த மாதிரிக்குள், CRD இல் குறிப்பிடப்பட்டுள்ள Git களஞ்சியத்தை CRDயில் குறிப்பிடப்பட்டுள்ள குபெர்னெட்ஸ் கிளஸ்டர் ஆதாரங்களுடன் கட்டுப்படுத்திகள் ஒப்பிட்டு, ஒப்பீட்டின் முடிவுகளின் அடிப்படையில் பொருத்தமான செயல்களைச் செய்கின்றன. குறிப்பாக, இந்த GitOps மாதிரி ArgoCD இல் பயன்படுத்தப்படுகிறது.

OpenShift க்கான GitOps அறிமுகம்

OpenShift இயங்குதளத்தில் GitOps

பல கிளஸ்டர் குபெர்னெட்ஸ் உள்கட்டமைப்பின் நிர்வாகம்

குபெர்னெட்டஸின் பரவல் மற்றும் பல கிளவுட் உத்திகள் மற்றும் எட்ஜ் கம்ப்யூட்டிங்கின் பிரபலமடைந்து வருவதால், ஒரு வாடிக்கையாளருக்கு சராசரியாக OpenShift கிளஸ்டர்களின் எண்ணிக்கை அதிகரித்து வருகிறது.

எடுத்துக்காட்டாக, எட்ஜ் கம்ப்யூட்டிங்கைப் பயன்படுத்தும் போது, ​​ஒரு வாடிக்கையாளரின் கிளஸ்டர்கள் நூற்றுக்கணக்கான அல்லது ஆயிரக்கணக்கில் பயன்படுத்தப்படலாம். இதன் விளைவாக, பொது மேகம் மற்றும் வளாகத்தில் பல சுயாதீனமான அல்லது ஒருங்கிணைந்த OpenShift கிளஸ்டர்களை நிர்வகிக்க வேண்டிய கட்டாயத்தில் உள்ளார்.

இந்த வழக்கில், பல சிக்கல்கள் தீர்க்கப்பட வேண்டும், குறிப்பாக:

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

பயன்பாட்டு கட்டமைப்புகள்

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

இந்த வழக்கில், பின்வரும் பணிகள் தீர்க்கப்பட வேண்டும்:

  • கிளஸ்டர்களுக்கு இடையே (தேவ், ஸ்டேஜ், முதலியன) பயன்பாடுகளின் (பைனரிகள், கட்டமைப்புகள், முதலியன) இயக்கத்தை உறுதி செய்யவும்.
  • பல OpenShift கிளஸ்டர்களில் பயன்பாடுகளில் (பைனரிகள், கட்டமைப்புகள், முதலியன) மாற்றங்களை உருவாக்கவும்.
  • பயன்பாடுகளுக்கான மாற்றங்களை முந்தைய அறியப்பட்ட நிலைக்கு மாற்றவும்.

OpenShift GitOps பயன்பாடு வழக்குகள்

1. Git களஞ்சியத்திலிருந்து மாற்றங்களைப் பயன்படுத்துதல்

ஒரு கிளஸ்டர் நிர்வாகி OpenShift கிளஸ்டர் உள்ளமைவுகளை Git களஞ்சியத்தில் சேமித்து, புதிய கிளஸ்டர்களை சிரமமின்றி உருவாக்கி, அவற்றை Git களஞ்சியத்தில் சேமிக்கப்பட்டுள்ள நிலைக்கு ஒத்த நிலைக்கு கொண்டு வர அவற்றை தானாகவே பயன்படுத்தலாம்.

2. இரகசிய மேலாளருடன் ஒத்திசைவு

இதற்காக பிரத்யேகமாக உருவாக்கப்பட்ட கருவிகளைப் பயன்படுத்தி நிர்வகிக்கும் பொருட்டு, வால்ட் போன்ற பொருத்தமான மென்பொருளுடன் OpenShift இரகசிய பொருட்களை ஒத்திசைக்கும் திறனிலிருந்து நிர்வாகி பயனடைவார்.

3. சறுக்கல் கட்டமைப்புகளின் கட்டுப்பாடு

OpenShift GitOps ஆனது உண்மையான உள்ளமைவுகள் மற்றும் களஞ்சியத்தில் குறிப்பிடப்பட்டுள்ளவற்றுக்கு இடையே உள்ள முரண்பாடுகளை கண்டறிந்து எச்சரித்தால் மட்டுமே நிர்வாகி ஆதரவாக இருப்பார், இதனால் அவர்கள் சறுக்கலுக்கு விரைவாக பதிலளிக்க முடியும்.

4. கட்டமைப்பு சறுக்கல் பற்றிய அறிவிப்புகள்

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

5. டிரிஃப்டிங் செய்யும் போது உள்ளமைவுகளின் கையேடு ஒத்திசைவு

உள்ளமைவு சறுக்கல் ஏற்பட்டால், க்ளஸ்டரை முந்தைய அறியப்பட்ட நிலைக்கு விரைவாகத் திருப்ப, OpenShift கிளஸ்டரை Git களஞ்சியத்துடன் ஒத்திசைக்க நிர்வாகியை அனுமதிக்கிறது.

6. டிரிஃப்டிங் செய்யும் போது உள்ளமைவுகளின் தானியங்கி ஒத்திசைவு

நிர்வாகியால் OpenShift கிளஸ்டரை உள்ளமைக்க முடியும், இது ஒரு சறுக்கல் கண்டறியப்படும்போது தானாகவே களஞ்சியத்துடன் ஒத்திசைக்கப்படும், இதனால் கிளஸ்டர் உள்ளமைவு எப்போதும் Git இல் உள்ள கட்டமைப்புகளுடன் பொருந்தும்.

7. பல கொத்துகள் - ஒரு களஞ்சியம்

நிர்வாகி பல்வேறு OpenShift கிளஸ்டர்களின் உள்ளமைவுகளை ஒரு Git களஞ்சியத்தில் சேமித்து, தேவைக்கேற்ப அவற்றைத் தேர்ந்தெடுத்துப் பயன்படுத்தலாம்.

8. கிளஸ்டர் உள்ளமைவுகளின் படிநிலை (பரம்பரை)

களஞ்சியத்தில் கிளஸ்டர் உள்ளமைவுகளின் படிநிலையை நிர்வாகி அமைக்கலாம் (நிலை, தயாரிப்பு, பயன்பாட்டு போர்ட்ஃபோலியோ போன்றவை. பரம்பரையுடன்). வேறு வார்த்தைகளில் கூறுவதானால், ஒன்று அல்லது அதற்கு மேற்பட்ட கிளஸ்டர்களுக்கு உள்ளமைவுகள் பயன்படுத்தப்பட வேண்டுமா என்பதை தீர்மானிக்க முடியும்.

எடுத்துக்காட்டாக, ஒரு நிர்வாகி Git களஞ்சியத்தில் “தயாரிப்பு கிளஸ்டர்கள் (தயாரிப்பு) → சிஸ்டம் எக்ஸ் கிளஸ்டர்கள் → சிஸ்டம் எக்ஸ் உற்பத்தி கிளஸ்டர்கள்” என்ற படிநிலையை அமைத்தால், பின்வரும் கட்டமைப்புகளின் கலவையானது கணினி X இன் உற்பத்தி கிளஸ்டர்களுக்குப் பயன்படுத்தப்படும்:

  • அனைத்து உற்பத்தி கிளஸ்டர்களுக்கும் பொதுவான கட்டமைப்புகள்.
  • சிஸ்டம் எக்ஸ் கிளஸ்டருக்கான கட்டமைப்புகள்.
  • எக்ஸ் சிஸ்டம் உற்பத்தி கிளஸ்டருக்கான கட்டமைப்புகள்.

9. டெம்ப்ளேட்கள் மற்றும் கட்டமைப்பு மேலெழுகிறது

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

10. உள்ளமைவுகள், பயன்பாட்டு உள்ளமைவுகளுக்கு தேர்ந்தெடுக்கப்பட்டவை மற்றும் விலக்கு

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

11. டெம்ப்ளேட் ஆதரவு

ஒவ்வொரு குறிப்பிட்ட பயன்பாட்டிற்கும் மிகவும் பொருத்தமான வடிவமைப்பைப் பயன்படுத்த, டெவலப்பர்கள் பயன்பாட்டு ஆதாரங்கள் எவ்வாறு வரையறுக்கப்பட வேண்டும் என்பதைத் தேர்ந்தெடுக்கும் திறனிலிருந்து பயனடைவார்கள் (ஹெல்ம் சார்ட், தூய குபெர்னெட்ஸ் யாம்ல், முதலியன).

OpenShift இயங்குதளத்தில் GitOps கருவிகள்

ஆர்கோசிடி

ArgoCD வெளிப்புற வள மறுசீரமைப்பு மாதிரியை செயல்படுத்துகிறது மற்றும் கிளஸ்டர்கள் மற்றும் Git களஞ்சியங்களுக்கு இடையில் ஒன்று முதல் பல உறவுகளை ஒழுங்கமைக்க ஒரு மையப்படுத்தப்பட்ட UI ஐ வழங்குகிறது. இந்த திட்டத்தின் தீமைகள் ArgoCD வேலை செய்யாத போது பயன்பாடுகளை நிர்வகிக்க இயலாமை அடங்கும்.

அதிகாரப்பூர்வ இணையதளம்

ஓட்டம்

ஃப்ளக்ஸ் ஆன்-கிளஸ்டர் ரிசோர்ஸ் ரீகன்சைல் மாதிரியை செயல்படுத்துகிறது, இதன் விளைவாக, வரையறை களஞ்சியத்தின் மையப்படுத்தப்பட்ட மேலாண்மை இல்லை, இது பலவீனமான புள்ளியாகும். மறுபுறம், துல்லியமாக மையப்படுத்தல் இல்லாததால், ஒரு கிளஸ்டர் தோல்வியடைந்தாலும் பயன்பாடுகளை நிர்வகிக்கும் திறன் இருக்கும்.

அதிகாரப்பூர்வ இணையதளம்

OpenShift இல் ArgoCD ஐ நிறுவுகிறது

ArgoCD ஒரு சிறந்த கட்டளை வரி இடைமுகம் மற்றும் வலை கன்சோலை வழங்குகிறது, எனவே நாங்கள் இங்கே ஃப்ளக்ஸ் மற்றும் பிற மாற்றுகளை மறைக்க மாட்டோம்.

OpenShift 4 இயங்குதளத்தில் ArgoCD ஐப் பயன்படுத்த, ஒரு கிளஸ்டர் நிர்வாகியாக இந்தப் படிகளைப் பின்பற்றவும்:

OpenShift இயங்குதளத்தில் ArgoCD கூறுகளை வரிசைப்படுத்துதல்

# Create a new namespace for ArgoCD components
oc create namespace argocd
# Apply the ArgoCD Install Manifest
oc -n argocd apply -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.2.2/manifests/install.yaml
# Get the ArgoCD Server password
ARGOCD_SERVER_PASSWORD=$(oc -n argocd get pod -l "app.kubernetes.io/name=argocd-server" -o jsonpath='{.items[*].metadata.name}')

ArgoCD சேவையகத்தை மேம்படுத்துதல், அதை OpenShift Route மூலம் பார்க்க முடியும்

# Patch ArgoCD Server so no TLS is configured on the server (--insecure)
PATCH='{"spec":{"template":{"spec":{"$setElementOrder/containers":[{"name":"argocd-server"}],"containers":[{"command":["argocd-server","--insecure","--staticassets","/shared/app"],"name":"argocd-server"}]}}}}'
oc -n argocd patch deployment argocd-server -p $PATCH
# Expose the ArgoCD Server using an Edge OpenShift Route so TLS is used for incoming connections
oc -n argocd create route edge argocd-server --service=argocd-server --port=http --insecure-policy=Redirect

ArgoCD Cli கருவியைப் பயன்படுத்துகிறது

# Download the argocd binary, place it under /usr/local/bin and give it execution permissions
curl -L https://github.com/argoproj/argo-cd/releases/download/v1.2.2/argocd-linux-amd64 -o /usr/local/bin/argocd
chmod +x /usr/local/bin/argocd

ArgoCD சர்வர் நிர்வாக கடவுச்சொல்லை மாற்றுகிறது

# Get ArgoCD Server Route Hostname
ARGOCD_ROUTE=$(oc -n argocd get route argocd-server -o jsonpath='{.spec.host}')
# Login with the current admin password
argocd --insecure --grpc-web login ${ARGOCD_ROUTE}:443 --username admin --password ${ARGOCD_SERVER_PASSWORD}
# Update admin's password
argocd --insecure --grpc-web --server ${ARGOCD_ROUTE}:443 account update-password --current-password ${ARGOCD_SERVER_PASSWORD} --new-password

இந்த படிகளை முடித்த பிறகு, நீங்கள் ArgoCD WebUI வலை கன்சோல் அல்லது ArgoCD Cli கட்டளை வரி கருவி மூலம் ArgoCD சேவையகத்துடன் வேலை செய்யலாம்.
https://blog.openshift.com/is-it-too-late-to-integrate-gitops/

GitOps - இது ஒருபோதும் தாமதமாகாது

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

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

oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/namespace.yaml
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/deployment.yaml
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/service.yaml
oc expose svc/httpd -n simple-app

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

  • குறியீட்டிற்கான Git களஞ்சியத்தை உருவாக்கவும்.
  • எங்களின் தற்போதைய பொருட்களை ஏற்றுமதி செய்து அவற்றை Git களஞ்சியத்தில் பதிவேற்றுகிறோம்.
  • GitOps கருவிகளைத் தேர்ந்தெடுத்து பயன்படுத்துதல்.
  • இந்த கருவித்தொகுப்பில் எங்கள் களஞ்சியத்தைச் சேர்க்கிறோம்.
  • எங்கள் GitOps கருவித்தொகுப்பில் பயன்பாட்டை வரையறுக்கிறோம்.
  • GitOps கருவித்தொகுப்பைப் பயன்படுத்தி பயன்பாட்டின் சோதனை ஓட்டத்தை நாங்கள் செய்கிறோம்.
  • GitOps கருவித்தொகுப்பைப் பயன்படுத்தி பொருட்களை ஒத்திசைக்கிறோம்.
  • பொருள்களின் சீரமைப்பு மற்றும் தானாக ஒத்திசைவை இயக்கவும்.

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

எங்கள் எடுத்துக்காட்டில், GitHub இல் ஒரு புதிய பொது களஞ்சியத்தை உருவாக்குவோம். நீங்கள் விரும்பியதை நீங்கள் அழைக்கலாம், நாங்கள் blogpost என்ற பெயரைப் பயன்படுத்துகிறோம்.

YAML ஆப்ஜெக்ட் கோப்புகள் உள்நாட்டில் அல்லது Git இல் சேமிக்கப்படவில்லை என்றால், நீங்கள் oc அல்லது kubectl பைனரிகளைப் பயன்படுத்த வேண்டும். கீழே உள்ள ஸ்கிரீன்ஷாட்டில் எங்கள் பெயர்வெளி, வரிசைப்படுத்தல், சேவை மற்றும் வழிக்கு YAML ஐக் கோருகிறோம். இதற்கு முன், புதிதாக உருவாக்கப்பட்ட களஞ்சியத்தையும் சிடியையும் குளோன் செய்தோம்.

oc get namespace simple-app -o yaml --export > namespace.yaml
oc get deployment httpd -o yaml -n simple-app --export > deployment.yaml
oc get service httpd -o yaml -n simple-app --export > service.yaml
oc get route httpd -o yaml -n simple-app --export > route.yaml

இப்போது ஆர்கோ சிடியால் ஒத்திசைக்க முடியாத புலத்தை அகற்ற deployment.yaml கோப்பைத் திருத்தலாம்.

sed -i '/sgeneration: .*/d' deployment.yaml

மேலும், பாதையை மாற்ற வேண்டும். நாம் முதலில் ஒரு மல்டிலைன் மாறியை அமைப்போம், பின்னர் நுழைவை மாற்றுவோம்: அந்த மாறியின் உள்ளடக்கத்துடன் null.

export ROUTE="  ingress:                                                            
    - conditions:
        - status: 'True'
          type: Admitted"

sed -i "s/  ingress: null/$ROUTE/g" route.yaml

எனவே, நாங்கள் கோப்புகளை வரிசைப்படுத்தியுள்ளோம், அவற்றை Git களஞ்சியத்தில் சேமிப்பது மட்டுமே மீதமுள்ளது. அதன் பிறகு, இந்த களஞ்சியமானது தகவல்களின் ஒரே ஆதாரமாக மாறும், மேலும் பொருள்களில் எந்தவொரு கைமுறை மாற்றங்களும் கண்டிப்பாக தடை செய்யப்பட வேண்டும்.

git commit -am ‘initial commit of objects’
git push origin master

நீங்கள் ஏற்கனவே ArgoCD ஐப் பயன்படுத்தியுள்ளீர்கள் என்பதிலிருந்து நாங்கள் தொடர்கிறோம் (இதை எப்படி செய்வது - முந்தையதைப் பார்க்கவும் பதவியை) எனவே, நாங்கள் உருவாக்கிய களஞ்சியத்தை ஆர்கோ சிடியில் சேர்ப்போம், எங்கள் உதாரணத்திலிருந்து பயன்பாட்டுக் குறியீடு உள்ளது. நீங்கள் முன்பு உருவாக்கிய சரியான களஞ்சியத்தைக் குறிப்பிடுவதை உறுதிசெய்யவும்.

argocd repo add https://github.com/cooktheryan/blogpost

இப்போது பயன்பாட்டை உருவாக்குவோம். பயன்பாடு மதிப்புகளை அமைக்கிறது, இதன் மூலம் GitOps கருவித்தொகுப்பு எந்த களஞ்சியத்தையும் பாதைகளையும் பயன்படுத்த வேண்டும், பொருட்களை நிர்வகிக்க எந்த OpenShift தேவை, களஞ்சியத்தின் குறிப்பிட்ட கிளை தேவை, மற்றும் வளங்கள் தானாக ஒத்திசைக்க வேண்டுமா என்பதைப் புரிந்துகொள்ளும்.

argocd app create --project default 
--name simple-app --repo https://github.com/cooktheryan/blogpost.git 
--path . --dest-server https://kubernetes.default.svc 
--dest-namespace simple-app --revision master --sync-policy none

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

இப்போது நம் கோப்புகளில் பிழைகள் இல்லை என்பதை உறுதிப்படுத்த ஒரு சோதனை ஓட்டம் செய்யலாம்.

argocd app sync simple-app --dry-run

பிழைகள் எதுவும் இல்லை என்றால், நீங்கள் ஒத்திசைக்க தொடரலாம்.

argocd app sync simple-app

எங்கள் பயன்பாட்டில் argocd get கட்டளையை இயக்கிய பிறகு, பயன்பாட்டின் நிலை ஆரோக்கியமான அல்லது ஒத்திசைக்கப்பட்டதாக மாறியிருப்பதைப் பார்க்க வேண்டும். Git களஞ்சியத்தில் உள்ள அனைத்து ஆதாரங்களும் ஏற்கனவே பயன்படுத்தப்பட்ட ஆதாரங்களுடன் ஒத்துப்போகின்றன என்பதை இது குறிக்கும்.

argocd app get simple-app
Name:               simple-app
Project:            default
Server:             https://kubernetes.default.svc
Namespace:          simple-app
URL:                https://argocd-server-route-argocd.apps.example.com/applications/simple-app
Repo:               https://github.com/cooktheryan/blogpost.git
Target:             master
Path:               .
Sync Policy:        <none>
Sync Status:        Synced to master (60e1678)
Health Status:      Healthy
...   

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

argocd app set simple-app --sync-policy automated --auto-prune

எனவே, ஆரம்பத்தில் GitOps எந்த வகையிலும் பயன்படுத்தாத ஒரு பயன்பாட்டை GitOps கட்டுப்பாட்டின் கீழ் வெற்றிகரமாக கொண்டு வந்துள்ளோம்.

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

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