Ansible Kubernetes (K8s) சரக்கு மூல

Ansible Kubernetes K8s Carakku Mula



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

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







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



அன்சிபில் குபெர்னெட்ஸ் சரக்கு மூலத்தைப் பயன்படுத்துவதற்கான முன்நிபந்தனைகள்

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



  • Ansible சூழ்நிலையில் வேலை செய்ய, நாங்கள் முதலில் சர்வரில் Ansible கருவியை அமைத்து, உங்களிடம் Ansible பதிப்பு 2.11.7 இருப்பதை உறுதிசெய்து கொள்ளுங்கள், இதனால் நாங்கள் குபெர்னெட்ஸ் செருகுநிரலை எளிதாகப் பயன்படுத்தலாம்.
  • Kubernetes செருகுநிரலை மதிப்பிடுவதற்கு, Kubernetes க்ளஸ்டர் உள்ளமைக்கப்பட்ட தொலைநிலை சேவையக சாதனம் தேவை.
  • ரிமோட் ஹோஸ்ட் தற்போது அன்சிபிள் வழிமுறைகள் மற்றும் பிளேபுக்குகள் மற்றும் கட்டமைக்கப்பட்ட சரக்குக் கோப்பை இயக்க உள்ளமைக்கப்பட்டுள்ளது. இலக்கு தொலை சாதனத்தின் பெயர் K8s மாஸ்டர் நோட்.
  • பைத்தானின் பதிப்பு 3.6 அல்லது அதற்கு மேல் உள்ளது, இது அன்சிபிள் கன்ட்ரோலரின் சாதனத்தில் நிறுவப்பட வேண்டும். இது இலக்கு ரிமோட் ஹோஸ்ட் சாதனத்திலும் இருக்கலாம்.
  • Python இன் openshift தொகுதியின் பதிப்பு 0.6 அல்லது அதற்கு மேல் உள்ளது. எங்களுக்கு பதிப்பு 3.11 அல்லது அதற்கு மேற்பட்ட pyYAML தொகுதியும் தேவை. இரண்டு தொகுதிகளும் ரிமோட் சர்வர் சாதனத்திலும் கட்டுப்படுத்தி சாதனத்திலும் அமைக்கப்பட வேண்டும்.

உதாரணமாக:





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

  • அன்சிபில் K8s கிளஸ்டரில் புதிய பெயர்வெளியை செயல்படுத்துதல்.
  • அன்சிபிள் பிளேபுக்கைப் பயன்படுத்தி nginx பாட் உருவாக்கம்.
  • அன்சிபில் nginx வரிசைப்படுத்தலை உருவாக்குதல்.

கருத்துகளையும் செயல்படுத்தலையும் எளிமையாகப் புரிந்துகொள்ள, பல படிகளில் உதாரணத்தைச் செயல்படுத்துகிறோம்.



படி 1: K8s கிளஸ்டரில் புதிய பெயர்வெளியை அன்சிபில் செயல்படுத்தவும்

முதல் கட்டத்தில், நாங்கள் பிளேபுக்கை உருவாக்குகிறோம், இதன் மூலம் உள்ளடக்கத்தை “.yml” வடிவத்தில் அன்சிபில் எழுத முடியும். பிளேபுக்கை உருவாக்க, பின்வரும் கட்டளையைப் பயன்படுத்துகிறோம்:

[ வேர் @ மாஸ்டர் அன்சிபிள் ] # நானோ  nginx_pod.yml

இப்போது, ​​'pod.yml' பிளேபுக் உருவாக்கப்பட்டு, அன்சிபிலின் புதிய முனையத்தில் தொடங்கப்பட்டது. ஸ்கிரிப்ட் எழுத ஆரம்பிக்கிறோம். பிளேபுக்கில், 'v1' என்ற அன்சிபிள் பாடில் பயன்படுத்தும் API பதிப்பை முதலில் வரையறுக்கிறோம். நாம் வரையறுக்கும் பெயர்வெளி 'அன்சிபிள்-நேம்ஸ்பேஸ்'. பின்னர், அன்சிபிள்-நேம்ஸ்பேஸின் மெட்டாடேட்டாவை பட்டியலிடுகிறோம். மெட்டாடேட்டாவில், நாங்கள் nginx மென்பொருளையும், மதிப்பின் முன்பகுதியைக் கொண்ட லேபிளையும் பயன்படுத்துகிறோம். பிளேபுக்கின் விவரக்குறிப்பில், கொள்கலனில் சேமிக்கப்பட்டுள்ள பெயரையும் படத்தையும் பட்டியலிடுகிறோம்; இரண்டிலும் nginx உள்ளது.

படி 2: அன்சிபில் மேனிஃபெஸ்ட் ஆவணத்தை உருவாக்கவும்

இப்போது, ​​'.yml' வடிவமைப்பில் உள்ள வரிசைப்படுத்தல் ஆவணமான அன்சிபிலின் அதே கோப்பகத்தில் மற்றொரு ஆவணத்தை உருவாக்குகிறோம். மேனிஃபெஸ்ட் ஆவணத்தை உருவாக்க, அன்சிபிள் டெர்மினலில் பின்வரும் கட்டளையைப் பயன்படுத்தவும்:

[ வேர் @ மாஸ்டர் அன்சிபிள் ] # nano nginx_deployment.yml

மேனிஃபெஸ்ட் ஆவணத்தில், முதலில் 'app/v1' ஆப்ஸ் பதிப்பை மீண்டும் வரையறுக்கிறோம். பின்னர், அது எந்த வகையான கோப்பு, அது ஒரு வரிசைப்படுத்தல் கோப்பாக இருந்தாலும் சரி. பின்னர், நாம் பெயர்வெளியை வரையறுக்கிறோம், இது அன்சிபிள்-நேம்ஸ்பேஸ். செயல்படுத்தலை உருவாக்க, அன்சிபிள்-நேம்ஸ்பேஸில் உள்ள இரண்டு பிரதிகள் பாட்டின் எண்ணைக் காட்டுகின்றன. nginx படங்கள் 1.14.2 ஆகும், அவை பாடில் தொடங்கப்படுகின்றன. matchLabels அளவுருவானது காய்களுக்கான குறிச்சொற்களையும் அவற்றின் விவரக்குறிப்புகளையும் ஸ்பெக் அளவுருவின் கீழ் வழங்குகிறது. எப்படியாவது காய்களில் உள்ள குறிச்சொற்கள் உள்ளமைவுத் தகவலில் குறிப்பிடப்பட்ட குறிச்சொற்களுடன் பொருந்தினால், அன்சிபில் உள்ள மேனிஃபெஸ்ட் ஆவணத்தில் செயல்படுத்துதல் நிகழ்கிறது.

படி 3: அன்சிபிளில் குபெர்னெட்ஸ் செயல்படுத்தலுக்கான பிளேபுக்கை உருவாக்கவும்

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

[ வேர் @ மாஸ்டர் அன்சிபிள் ] # nano kubernetes_main.yml

முந்தைய பிளேபுக் மற்றும் மேனிஃபெஸ்ட் ஆவணம் அன்சிபில் சேமிக்கப்பட்டுள்ள அதே கோப்பகத்தில் பிளேபுக் உருவாக்கப்பட்டது. பிளேபுக்கில், நாம் செயல்படுத்த விரும்பும் பிளேபுக்கின் செயல்பாட்டை முதலில் வரையறுக்கிறோம். இணைப்பை உருவாக்க, நாங்கள் இலக்கு வைக்க விரும்பும் ரிமோட் ஹோஸ்ட்களை வழங்குகிறோம். இங்கே, நாங்கள் 'அனைத்து' ஹோஸ்ட்களையும் குறிவைக்கிறோம். அடுத்து, பைதான் மொழிபெயர்ப்பாளரை அன்சிபில் உள்ள பாதையைப் பயன்படுத்தி சரிபார்க்க மாறியை வரையறுக்கிறோம். இப்போது, ​​பிளேபுக்கில் உள்ள பணிகளை வரையறுக்கிறோம். முதலில், மினிகுப் சாதனத்தின் நிலையைச் சரிபார்க்கிறோம். அடுத்து, பிளேபுக்கில் புதிய குபெர்னெட்டஸ் பெயர்வெளியை உருவாக்குகிறோம். பின்னர், தொலை சாதனத்தில் nginx_pod.yml மற்றும் nginx_deployment .yml ஐ நகலெடுக்கவும்.

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

பிளேபுக் நிறுத்தப்பட்ட பிறகு, இப்போது சரக்குக் கோப்பை உருவாக்குகிறோம், இதன் மூலம் அன்சிபிள் கன்ட்ரோலருக்கும் இலக்கு ரிமோட் ஹோஸ்டுக்கும் இடையே இணைப்பை ஏற்படுத்துகிறோம்.

அனைத்தும்:
புரவலர்கள்:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ********
ansible_connection: ssh
ansible_port: 22

[ வேர் @ மாஸ்டர் அன்சிபிள் ] # ansible-playbook kubernates_main.yml

இலக்கு கணினியில் பணிகள் வெற்றிகரமாக வைக்கப்பட்டுள்ளதைக் காண விரும்பும் வெளியீடு இங்கே:

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

[ வேர் @ மாஸ்டர் அன்சிபிள் ] # kubectl பெயர்வெளி கிடைக்கும் | grep ansible-பெயர்வெளி

குபெர்னெட்ஸ் கிளஸ்டரின் பெயர்வெளியில் உருவாக்கப்பட்ட பாட் ஐ நீங்கள் சரிபார்க்க விரும்பினால், சரிபார்க்க பின்வரும் கட்டளையை எழுதவும்:

[ வேர் @ மாஸ்டர் அன்சிபிள் ] # kubectl காய்களைப் பெறுங்கள் --namespace ansible-namespace

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

[ வேர் @ மாஸ்டர் அன்சிபிள் ] # kubectl வரிசைப்படுத்தல்களைப் பெறவும் --namespace ansible-namespace

முடிவுரை

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