Selectel உடன் பணிபுரிய அதிகாரப்பூர்வ Terraform வழங்குநரைத் தொடங்கியுள்ளோம். உள்கட்டமைப்பு-குறியீடு முறை மூலம் வள நிர்வாகத்தை முழுமையாகச் செயல்படுத்த இந்தத் தயாரிப்பு பயனர்களை அனுமதிக்கிறது.
வழங்குநர் தற்போது சேவை வள நிர்வாகத்தை ஆதரிக்கிறார் "மெய்நிகர் தனியார் மேகம்" (இனிமேல் VPC என குறிப்பிடப்படுகிறது). எதிர்காலத்தில், Selectel வழங்கும் பிற சேவைகளுக்கு வள நிர்வாகத்தைச் சேர்க்க திட்டமிட்டுள்ளோம்.
உங்களுக்கு ஏற்கனவே தெரியும், VPC சேவை OpenStack இல் கட்டமைக்கப்பட்டுள்ளது. இருப்பினும், பொது மேகக்கணிக்கு சேவை செய்வதற்கான சொந்த கருவிகளை OpenStack வழங்கவில்லை என்ற உண்மையின் காரணமாக, சிக்கலான கலப்பு பொருட்களின் நிர்வாகத்தை எளிதாக்கும் மற்றும் வேலையை மிகவும் வசதியாக்கும் கூடுதல் APIகளின் தொகுப்பில் விடுபட்ட செயல்பாட்டைச் செயல்படுத்தினோம். OpenStack இல் கிடைக்கும் சில செயல்பாடுகள் நேரடி பயன்பாட்டிலிருந்து மூடப்பட்டுள்ளன, ஆனால் அவை மூலம் கிடைக்கும் எங்கள் API.
Selectel Terraform வழங்குநர் இப்போது பின்வரும் VPC ஆதாரங்களை நிர்வகிக்கும் திறனைக் கொண்டுள்ளது:
திட்டங்கள் மற்றும் அவற்றின் ஒதுக்கீடுகள்;
பயனர்கள், அவர்களின் பாத்திரங்கள் மற்றும் டோக்கன்கள்;
குறுக்கு பிராந்திய மற்றும் VRRP உட்பட பொது சப்நெட்கள்;
மென்பொருள் உரிமங்கள்.
VPC API உடன் பணிபுரிய, வழங்குநர் எங்கள் பொது Go நூலகத்தைப் பயன்படுத்துகிறார். நூலகம் மற்றும் வழங்குநர் ஆகிய இரண்டும் திறந்த மூலமாகும், அவற்றின் வளர்ச்சி கிதுப்பில் மேற்கொள்ளப்படுகிறது:
மெய்நிகர் இயந்திரங்கள், வட்டுகள், குபெர்னெட்ஸ் கிளஸ்டர்கள் போன்ற பிற கிளவுட் ஆதாரங்களை நிர்வகிக்க, நீங்கள் OpenStack Terraform வழங்குநரைப் பயன்படுத்தலாம். இரண்டு வழங்குநர்களுக்கான அதிகாரப்பூர்வ ஆவணங்கள் பின்வரும் இணைப்புகளில் கிடைக்கின்றன:
Selectel உடன் பணிபுரிவதற்கான மேனிஃபெஸ்ட்கள் Terraform பயன்படுத்தி அல்லது எங்கள் Github களஞ்சியத்தில் கிடைக்கும் ஆயத்த உதாரணங்களின் தொகுப்பைப் பயன்படுத்தி உருவாக்கப்படுகின்றன: நிலப்பரப்பு-உதாரணங்கள்.
எடுத்துக்காட்டுகளுடன் கூடிய களஞ்சியம் இரண்டு கோப்பகங்களாக பிரிக்கப்பட்டுள்ளது:
தொகுதிகள், அளவுருக்களின் தொகுப்பை உள்ளீடாக எடுத்து சிறிய அளவிலான வளங்களை நிர்வகிக்கும் சிறிய மறுபயன்படுத்தக்கூடிய தொகுதிகள் உள்ளன;
உதாரணங்கள், ஒன்றோடொன்று இணைக்கப்பட்ட தொகுதிகளின் முழுமையான தொகுப்பின் எடுத்துக்காட்டுகள் உள்ளன.
டெர்ராஃபார்மை நிறுவிய பின், ஒரு Selectel API விசையை உருவாக்கி, உதாரணங்களுடன் உங்களைப் பழக்கப்படுத்திய பிறகு, நடைமுறை எடுத்துக்காட்டுகளுக்குச் செல்லலாம்.
உள்ளூர் வட்டுடன் சேவையகத்தை உருவாக்குவதற்கான எடுத்துக்காட்டு
கோப்பில் vars.tf தொகுதிகளை அழைக்கும் போது பயன்படுத்தப்படும் அனைத்து அளவுருக்கள் விவரிக்கப்பட்டுள்ளன. அவற்றில் சில இயல்புநிலை மதிப்புகளைக் கொண்டுள்ளன, எடுத்துக்காட்டாக, சேவையகம் மண்டலத்தில் உருவாக்கப்படும் ru-3a பின்வரும் உள்ளமைவுடன்:
வாதம் புறக்கணிப்பு_மாற்றங்கள் பண்பு மாற்றங்களை புறக்கணிக்க உங்களை அனுமதிக்கிறது id மெய்நிகர் இயந்திரத்தை உருவாக்கப் பயன்படுத்தப்படும் படத்திற்கு. VPC சேவையில், பெரும்பாலான பொது படங்கள் வாரத்திற்கு ஒருமுறை தானாகவே புதுப்பிக்கப்படும் அதே நேரத்தில் அவற்றின் id மாறுகிறது. இது ஓபன்ஸ்டாக் கூறுகளின் தனித்தன்மையின் காரணமாகும் - க்லான்ஸ், இதில் படங்கள் மாறாத நிறுவனங்களாகக் கருதப்படுகின்றன.
நீங்கள் ஏற்கனவே உள்ள சர்வர் அல்லது டிஸ்க்கை உருவாக்கினால் அல்லது மாற்றினால் அது ஒரு வாதமாக உள்ளது image_id பயன்படுத்தப்படுகிறது id பொது படம், பின்னர் அந்த படம் புதுப்பிக்கப்பட்ட பிறகு, Terraform மெனிஃபெஸ்டை மீண்டும் இயக்குவது சர்வர் அல்லது டிஸ்க்கை மீண்டும் உருவாக்கும். ஒரு வாதத்தைப் பயன்படுத்துதல் புறக்கணிப்பு_மாற்றங்கள் அத்தகைய சூழ்நிலையைத் தவிர்க்க உங்களை அனுமதிக்கிறது.
குறிப்பு: வாதம் புறக்கணிப்பு_மாற்றங்கள் மிக நீண்ட காலத்திற்கு முன்பு Terraform இல் தோன்றியது: இழு#2525.
வாதம் புறக்கணிப்பு_அளவு_உறுதிப்படுத்தல் உள்ளூர் வட்டு, கோர்கள் அல்லது சர்வர் நினைவகத்தை வெற்றிகரமாக மறுஅளவிட வேண்டும். கோரிக்கையைப் பயன்படுத்தி OpenStack Nova கூறு மூலம் இத்தகைய மாற்றங்கள் செய்யப்படுகின்றன அளவை. கோரிக்கைக்குப் பிறகு இயல்புநிலை Nova அளவை சேவையகத்தை நிலைக்கு வைக்கிறது verify_resize மேலும் பயனரின் கூடுதல் உறுதிப்படுத்தலுக்காக காத்திருக்கிறது. இருப்பினும், இந்த நடத்தை மாற்றப்படலாம், இதனால் பயனரின் கூடுதல் செயல்களுக்காக நோவா காத்திருக்காது.
டெர்ராஃபார்ம் நிலைக்காக காத்திருக்காமல் இருக்க குறிப்பிட்ட வாதம் அனுமதிக்கிறது verify_resize சேவையகத்திற்கு மற்றும் அதன் அளவுருக்களை மாற்றிய பின் சேவையகம் செயலில் இருக்கும் நிலையில் இருக்க தயாராக இருக்க வேண்டும். OpenStack Terraform வழங்குநரின் பதிப்பு 1.10.0 இலிருந்து வாதம் கிடைக்கிறது: இழு#422.
வளங்களை உருவாக்குதல்
மேனிஃபெஸ்ட்டை இயக்கும் முன், எங்கள் எடுத்துக்காட்டில், இரண்டு வெவ்வேறு வழங்குநர்கள் தொடங்கப்பட்டுள்ளனர் என்பதை நினைவில் கொள்ளவும், மேலும் OpenStack வழங்குநர் செலக்டெல் வழங்குநரின் வளங்களைப் பொறுத்தது, ஏனெனில் திட்டத்தில் ஒரு பயனரை உருவாக்காமல், அதற்குச் சொந்தமான பொருட்களை நிர்வகிக்க முடியாது. . துரதிர்ஷ்டவசமாக, அதே காரணத்திற்காக நாம் கட்டளையை இயக்க முடியாது டெராஃபார்ம் பொருந்தும் எங்கள் உதாரணத்தின் உள்ளே. முதலில் நாம் செய்ய வேண்டும் விண்ணப்பிக்க தொகுதிக்கு திட்டம்_பயனர் அதன் பிறகு மற்ற எல்லாவற்றுக்கும்.
குறிப்பு: இந்தச் சிக்கல் Terraform இல் இன்னும் தீர்க்கப்படவில்லை, Github இல் உள்ள விவாதத்தைப் பின்தொடரலாம் வெளியீடு#2430 и வெளியீடு#4149.
டெர்ராஃபார்ம் அது பயன்படுத்தும் வழங்குநர்களின் சமீபத்திய பதிப்புகளைப் பதிவிறக்குகிறது மற்றும் எடுத்துக்காட்டில் விவரிக்கப்பட்டுள்ள அனைத்து தொகுதிக்கூறுகளையும் சரிபார்க்கிறது என்பதை வெளியீடு காட்டுகிறது.
முதலில் தொகுதியைப் பயன்படுத்துவோம் திட்டம்_பயனர். இதற்கு அமைக்கப்படாத மாறிகளுக்கான மதிப்புகளை கைமுறையாக அனுப்ப வேண்டும்:
கட்டளையை இயக்கிய பிறகு, டெர்ராஃபார்ம் எந்த ஆதாரங்களை உருவாக்க விரும்புகிறது என்பதைக் காண்பிக்கும் மற்றும் உறுதிப்படுத்தலைக் கேட்கும்:
Plan: 3 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
திட்டம், பயனர் மற்றும் பங்கு உருவாக்கப்பட்டவுடன், நீங்கள் மீதமுள்ள ஆதாரங்களை உருவாக்கத் தொடங்கலாம்:
குறிப்பிட்ட IP ஐப் பயன்படுத்தி SSH வழியாக உருவாக்கப்பட்ட மெய்நிகர் இயந்திரத்துடன் நீங்கள் வேலை செய்யலாம்.
வளங்களைத் திருத்துதல்
டெர்ராஃபார்ம் மூலம் வளங்களை உருவாக்குவதுடன், அவை மாற்றியமைக்கப்படலாம்.
எடுத்துக்காட்டாக, அளவுருக்களுக்கான மதிப்புகளை மாற்றுவதன் மூலம் எங்கள் சேவையகத்திற்கான கோர்கள் மற்றும் நினைவகங்களின் எண்ணிக்கையை அதிகரிக்கலாம் சர்வர்_விசிபஸ் и சர்வர்_ராம்_எம்பி கோப்பில் உதாரணங்கள்/vpc/server_local_root_disk/main.tf:
எங்கள் எடுத்துக்காட்டு களஞ்சியங்கள் நெட்வொர்க் டிரைவ்களுடன் மெய்நிகர் இயந்திரங்களை உருவாக்குவதற்கான மேனிஃபெஸ்டுகளையும் நீங்கள் பார்க்கலாம்.
குபெர்னெட்ஸ் கிளஸ்டரை உருவாக்குவதற்கான எடுத்துக்காட்டு
அடுத்த உதாரணத்திற்குச் செல்வதற்கு முன், நாங்கள் முன்பு உருவாக்கிய ஆதாரங்களை சுத்தம் செய்வோம். திட்டத்தின் மூலத்தில் இதைச் செய்ய terraform-examples/examles/vpc/server_local_root_disk OpenStack பொருட்களை நீக்க கட்டளையை இயக்குவோம்:
இரண்டு சந்தர்ப்பங்களிலும், நீங்கள் அனைத்து பொருட்களையும் நீக்குவதை உறுதிப்படுத்த வேண்டும்:
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
இந்த உதாரணம் ஒரு திட்டத்தை உருவாக்குகிறது, திட்டத்தில் ஒரு பங்கைக் கொண்ட ஒரு பயனர், மேலும் ஒரு குபெர்னெட்ஸ் கிளஸ்டரை எழுப்புகிறது. கோப்பில் vars.tf முனைகளின் எண்ணிக்கை, அவற்றின் பண்புகள், குபெர்னெட்ஸ் பதிப்பு போன்ற இயல்புநிலை மதிப்புகளை நீங்கள் பார்க்கலாம்.
முதல் உதாரணத்திற்கு ஒத்த ஆதாரங்களை உருவாக்க, முதலில் நாம் தொகுதிகளை துவக்கி தொகுதி ஆதாரங்களை உருவாக்குவோம் திட்டம்_பயனர்பின்னர் எல்லாவற்றையும் உருவாக்குதல்:
ஓபன்ஸ்டாக் மேக்னம் கூறு மூலம் குபெர்னெட்ஸ் கிளஸ்டர்களின் உருவாக்கம் மற்றும் நிர்வாகத்தை மாற்றுவோம். எங்களில் ஒன்றில் ஒரு கிளஸ்டருடன் எவ்வாறு வேலை செய்வது என்பது பற்றி மேலும் அறியலாம் முந்தைய கட்டுரைகள்அத்துடன் அறிவு சார்ந்த.
கிளஸ்டரைத் தயாரிக்கும் போது, வட்டுகள் மற்றும் மெய்நிகர் இயந்திரங்கள் உருவாக்கப்பட்டு தேவையான அனைத்து கூறுகளும் நிறுவப்படும். தயாரிப்பு சுமார் 4 நிமிடங்கள் ஆகும், அந்த நேரத்தில் Terraform போன்ற செய்திகளைக் காண்பிக்கும்:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)
நிறுவல் முடிந்ததும், டெர்ராஃபார்ம் கிளஸ்டர் தயாராக இருப்பதைக் குறிக்கும் மற்றும் அதன் ஐடியைக் காண்பிக்கும்:
உருவாக்கப்பட்ட Kubernetes கிளஸ்டரை பயன்பாட்டின் மூலம் நிர்வகிக்க kubectl நீங்கள் கிளஸ்டர் அணுகல் கோப்பைப் பெற வேண்டும். இதைச் செய்ய, உங்கள் கணக்கில் உள்ள திட்டங்களின் பட்டியலில் Terraform மூலம் உருவாக்கப்பட்ட திட்டத்திற்குச் செல்லவும்:
அடுத்து, போன்ற இணைப்பைப் பின்தொடரவும் xxxxxx.selvpc.ruதிட்டத்தின் பெயருக்கு கீழே தோன்றும்:
உள்நுழைவுத் தகவலுக்கு, Terraform மூலம் நீங்கள் உருவாக்கிய பயனர்பெயர் மற்றும் கடவுச்சொல்லைப் பயன்படுத்தவும். நீங்கள் ஏமாற்றவில்லை என்றால் vars.tf அல்லது main.tf எங்கள் உதாரணத்திற்கு, பயனருக்கு பெயர் இருக்கும் tf_user. நீங்கள் மாறியின் மதிப்பை கடவுச்சொல்லாகப் பயன்படுத்த வேண்டும் TF_VAR_user_password, இது தொடக்கத்தில் குறிப்பிடப்பட்டது டெராஃபார்ம் பொருந்தும் முந்தைய.
திட்டத்தின் உள்ளே நீங்கள் தாவலுக்குச் செல்ல வேண்டும் Kubernetes:
டெர்ராஃபார்ம் மூலம் உருவாக்கப்பட்ட கிளஸ்டர் இங்குதான் அமைந்துள்ளது. இதற்கான கோப்பைப் பதிவிறக்கவும் kubectl "அணுகல்" தாவலில் நீங்கள் செய்யலாம்:
நிறுவல் வழிமுறைகள் அதே தாவலில் அமைந்துள்ளன. kubectl மற்றும் பதிவிறக்கம் செய்யப்பட்ட பயன்பாடு config.yaml.
தொடங்கப்பட்ட பிறகு kubectl மற்றும் சுற்றுச்சூழல் மாறியை அமைக்கிறது குபெகான்ஃபிக் நீங்கள் Kubernetes ஐப் பயன்படுத்தலாம்:
முனைகளின் எண்ணிக்கை மாறும்போது, க்ளஸ்டர் தொடர்ந்து கிடைக்கும். Terraform வழியாக ஒரு முனையைச் சேர்த்த பிறகு, கூடுதல் உள்ளமைவு இல்லாமல் அதைப் பயன்படுத்தலாம்:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
tf-cluster-rz6nggvs4va7-master-0 Ready,SchedulingDisabled master 8m v1.12.4
tf-cluster-rz6nggvs4va7-minion-0 Ready <none> 8m v1.12.4
tf-cluster-rz6nggvs4va7-minion-1 Ready <none> 8m v1.12.4
tf-cluster-rz6nggvs4va7-minion-2 Ready <none> 3m v1.12.4
முடிவுக்கு
இந்த கட்டுரையில் வேலை செய்வதற்கான முக்கிய வழிகளை நாங்கள் அறிந்தோம் "மெய்நிகர் தனியார் மேகம்" Terraform வழியாக. நீங்கள் அதிகாரப்பூர்வ Selectel Terraform வழங்குநரைப் பயன்படுத்தினால் நாங்கள் மகிழ்ச்சியடைவோம்.
Selectel Terraform வழங்குநரில் காணப்படும் ஏதேனும் பிழைகள் மூலம் புகாரளிக்கலாம் கிதுப் சிக்கல்கள்.