
సెలెక్టెల్తో పని చేయడానికి మేము అధికారిక టెర్రాఫార్మ్ ప్రొవైడర్ను ప్రారంభించాము. ఇన్ఫ్రాస్ట్రక్చర్-కోడ్ మెథడాలజీ (ఇన్ఫ్రాస్ట్రక్చర్ను కోడ్గా) ద్వారా వనరుల నిర్వహణను పూర్తిగా అమలు చేయడానికి ఈ ఉత్పత్తి వినియోగదారులను అనుమతిస్తుంది.
ప్రదాత ప్రస్తుతం సేవా వనరుల నిర్వహణకు మద్దతు ఇస్తున్నారు (ఇకపై VPC). భవిష్యత్తులో, సెలెక్టెల్ అందించే ఇతర సేవల వనరుల నిర్వహణను దానికి జోడించాలని మేము ప్లాన్ చేస్తున్నాము.
మీకు ఇప్పటికే తెలిసినట్లుగా, VPC సేవ OpenStack పైన నిర్మించబడింది. అయినప్పటికీ, ఓపెన్స్టాక్ పబ్లిక్ క్లౌడ్కు అందించడానికి స్థానిక సాధనాలను అందించనందున, సంక్లిష్ట మిశ్రమ వస్తువుల నిర్వహణను సులభతరం చేసే మరియు పనిని మరింత సౌకర్యవంతంగా చేసే అదనపు APIల సెట్లో మేము తప్పిపోయిన కార్యాచరణను అమలు చేసాము. ఓపెన్స్టాక్లో అందుబాటులో ఉన్న కార్యాచరణలో కొంత భాగం ప్రత్యక్ష వినియోగం నుండి మూసివేయబడింది, కానీ దీని ద్వారా అందుబాటులో ఉంటుంది .
Selectel Terraform ప్రొవైడర్ ఇప్పుడు క్రింది VPC వనరులను నిర్వహించగల సామర్థ్యాన్ని కలిగి ఉంది:
- ప్రాజెక్టులు మరియు వాటి కోటాలు;
- వినియోగదారులు, వారి పాత్రలు మరియు టోకెన్లు;
- క్రాస్-రీజినల్ మరియు VRRPతో సహా పబ్లిక్ సబ్నెట్లు;
- సాఫ్ట్వేర్ లైసెన్స్లు.
ప్రొవైడర్ VPC APIతో పని చేయడానికి మా పబ్లిక్ గో లైబ్రరీని ఉపయోగిస్తుంది. లైబ్రరీ మరియు ప్రొవైడర్ రెండూ ఓపెన్ సోర్స్, అవి గితుబ్లో అభివృద్ధి చేయబడుతున్నాయి:
- లైబ్రరీ రిపోజిటరీ ,
- ప్రొవైడర్ రిపోజిటరీ .
వర్చువల్ మిషన్లు, డిస్క్లు, కుబెర్నెట్స్ క్లస్టర్లు వంటి మిగిలిన క్లౌడ్ వనరులను నిర్వహించడానికి, మీరు OpenStack Terraform ప్రొవైడర్ని ఉపయోగించవచ్చు. రెండు ప్రొవైడర్ల కోసం అధికారిక డాక్యుమెంటేషన్ క్రింది లింక్లలో అందుబాటులో ఉంది:
- రిసోర్స్ డాక్యుమెంటేషన్ ఎంచుకోండి: ,
- OpenStack రిసోర్స్ డాక్యుమెంటేషన్: .
ప్రారంభ విధానం
ప్రారంభించడానికి, మీరు టెర్రాఫార్మ్ను ఇన్స్టాల్ చేయాలి (ఇన్స్టాలేషన్ ప్యాకేజీలకు సూచనలు మరియు లింక్లు ఇక్కడ చూడవచ్చు ).
పని చేయడానికి, ప్రొవైడర్కు సెలెక్టెల్ API కీ అవసరం, ఇది సృష్టించబడుతుంది .
సెలెక్టెల్తో పని చేయడానికి మానిఫెస్ట్లు టెర్రాఫార్మ్ ఉపయోగించి లేదా మా గితుబ్ రిపోజిటరీలో అందుబాటులో ఉన్న రెడీమేడ్ ఉదాహరణల సమితిని ఉపయోగించి సృష్టించబడతాయి: .
ఉదాహరణలతో కూడిన రిపోజిటరీ రెండు డైరెక్టరీలుగా విభజించబడింది:
- గుణకాలు, పారామితుల సమితిని ఇన్పుట్గా తీసుకుని, చిన్న వనరులను నిర్వహించే చిన్న పునర్వినియోగ మాడ్యూల్లను కలిగి ఉంటుంది;
- ఉదాహరణలు, ఒకదానితో ఒకటి అనుసంధానించబడిన మాడ్యూల్స్ యొక్క పూర్తి సెట్ యొక్క ఉదాహరణలను కలిగి ఉంది.
Terraform ఇన్స్టాల్ చేసిన తర్వాత, Selectel API కీని సృష్టించి, ఉదాహరణలను సమీక్షించిన తర్వాత, ఆచరణాత్మక ఉదాహరణలకు వెళ్దాం.
స్థానిక డిస్క్తో సర్వర్ని సృష్టించడానికి ఉదాహరణ
ప్రాజెక్ట్ను సృష్టించడం, పాత్ర ఉన్న వినియోగదారు మరియు స్థానిక డిస్క్తో వర్చువల్ మెషీన్ను సృష్టించడం యొక్క ఉదాహరణను పరిగణించండి: .
ఫైల్లో vars.tf మాడ్యూల్లను కాల్ చేసేటప్పుడు ఉపయోగించబడే అన్ని పారామితులు వివరించబడ్డాయి. వాటిలో కొన్ని డిఫాల్ట్ విలువలను కలిగి ఉంటాయి, ఉదాహరణకు, జోన్లో సర్వర్ సృష్టించబడుతుంది en-3a కింది కాన్ఫిగరేషన్తో:
variable "server_vcpus" {
default = 4
}
variable "server_ram_mb" {
default = 8192
}
variable "server_root_disk_gb" {
default = 8
}
variable "server_image_name" {
default = "Ubuntu 18.04 LTS 64-bit"
}
ఫైల్లో main.tf సెలెక్టెల్ ప్రొవైడర్ ప్రారంభించబడింది:
provider "selectel" {
token = "${var.sel_token}"
}
ఈ ఫైల్ సర్వర్లో ఇన్స్టాల్ చేయబడే SSH కీ కోసం డిఫాల్ట్ విలువను కూడా కలిగి ఉంది:
module "server_local_root_disk" {
...
server_ssh_key = "${file("~/.ssh/id_rsa.pub")}"
}
అవసరమైతే, మీరు వేరే పబ్లిక్ కీని పేర్కొనవచ్చు. కీని ఫైల్కి మార్గంగా పేర్కొనవలసిన అవసరం లేదు, మీరు విలువను స్ట్రింగ్గా కూడా జోడించవచ్చు.
ఈ ఫైల్ మాడ్యూల్స్లో ఇంకా ప్రారంభించబడ్డాయి ప్రాజెక్ట్_వినియోగదారుతో и సర్వర్_లోకల్_రూట్_డిస్క్అవసరమైన వనరులను నిర్వహించడం.
ఈ మాడ్యూల్లను నిశితంగా పరిశీలిద్దాం.
ప్రాజెక్ట్ను మరియు పాత్రతో వినియోగదారుని సృష్టించండి
మొదటి మాడ్యూల్ ప్రాజెక్ట్ను మరియు ఆ ప్రాజెక్ట్లో పాత్రతో వినియోగదారుని సృష్టిస్తుంది: .
సృష్టించబడిన వినియోగదారు OpenStackకి లాగిన్ చేయగలరు మరియు దాని వనరులను నిర్వహించగలరు. మాడ్యూల్ సరళమైనది మరియు మూడు ఎంటిటీలను మాత్రమే నిర్వహిస్తుంది:
- selectel_vpc_project_v2,
- selectel_vpc_user_v2,
- selectel_vpc_role_v2.
స్థానిక డిస్క్తో వర్చువల్ సర్వర్ని సృష్టిస్తోంది
రెండవ మాడ్యూల్ స్థానిక డిస్క్తో సర్వర్ని సృష్టించడానికి అవసరమైన ఓపెన్స్టాక్ ఆబ్జెక్ట్ల నిర్వహణతో వ్యవహరిస్తుంది.
వనరు కోసం ఈ మాడ్యూల్లో పేర్కొన్న కొన్ని వాదనలకు మీరు శ్రద్ధ వహించాలి openstack_compute_instance_v2:
resource "openstack_compute_instance_v2" "instance_1" {
...
lifecycle {
ignore_changes = ["image_id"]
}
vendor_options {
ignore_resize_confirmation = true
}
}
వాదన విస్మరించండి_మార్పులు లక్షణ మార్పును విస్మరించడానికి అనుమతిస్తుంది id వర్చువల్ మెషీన్ను రూపొందించడానికి ఉపయోగించే చిత్రం కోసం. VPC సేవలో, చాలా పబ్లిక్ చిత్రాలు వారానికి ఒకసారి స్వయంచాలకంగా నవీకరించబడతాయి మరియు అదే సమయంలో అవి ఉంటాయి id కూడా మారుతుంది. ఇది ఓపెన్స్టాక్ కాంపోనెంట్ - గ్లాన్స్ యొక్క ఆపరేషన్ యొక్క ప్రత్యేకతల కారణంగా ఉంది, దీనిలో చిత్రాలు మారని ఎంటిటీలుగా పరిగణించబడతాయి.
మీరు ఇప్పటికే ఉన్న సర్వర్ లేదా డిస్క్ను ఆర్గ్యుమెంట్గా సృష్టించినట్లయితే లేదా సవరించినట్లయితే image_id ఉపయోగించబడుతుంది id పబ్లిక్ ఇమేజ్, ఆ చిత్రం నవీకరించబడిన తర్వాత, టెర్రాఫార్మ్ మానిఫెస్ట్ని మళ్లీ అమలు చేయడం సర్వర్ లేదా డిస్క్ని పునఃసృష్టిస్తుంది. వాదనను ఉపయోగించడం విస్మరించండి_మార్పులు అటువంటి పరిస్థితిని నివారిస్తుంది.
గమనిక: వాదన విస్మరించండి_మార్పులు చాలా కాలం క్రితం టెర్రాఫార్మ్లో కనిపించింది: .
వాదన విస్మరించండి_పరిమాణం_నిర్ధారణ సర్వర్ యొక్క స్థానిక డిస్క్, కోర్లు లేదా మెమరీని విజయవంతంగా పునఃపరిమాణం చేయడానికి అవసరం. అభ్యర్థనను ఉపయోగించి ఓపెన్స్టాక్ నోవా భాగం ద్వారా ఇటువంటి మార్పులు చేయబడతాయి పరిమాణాన్ని. అభ్యర్థనపై డిఫాల్ట్ Nova పరిమాణాన్ని సర్వర్ని స్టేటస్లో ఉంచుతుంది verify_resize మరియు వినియోగదారు నుండి అదనపు నిర్ధారణ కోసం వేచి ఉంది. అయినప్పటికీ, ఈ ప్రవర్తనను మార్చవచ్చు, తద్వారా వినియోగదారు అదనపు చర్య తీసుకోవడానికి నోవా వేచి ఉండాల్సిన అవసరం లేదు.
పేర్కొన్న వాదన టెర్రాఫార్మ్ స్థితి కోసం వేచి ఉండకుండా అనుమతిస్తుంది verify_resize సర్వర్ కోసం మరియు దాని పారామితులను మార్చిన తర్వాత సర్వర్ సక్రియ స్థితిలో ఉంటుందనే వాస్తవం కోసం సిద్ధంగా ఉండండి. OpenStack Terraform ప్రొవైడర్ వెర్షన్ 1.10.0 నుండి వాదన అందుబాటులో ఉంది: .
వనరుల సృష్టి
మానిఫెస్ట్లను ప్రారంభించే ముందు, మా ఉదాహరణలో రెండు వేర్వేరు ప్రొవైడర్లు ప్రారంభించబడిందని గమనించాలి మరియు ఓపెన్స్టాక్ ప్రొవైడర్ సెలెక్టెల్ ప్రొవైడర్ యొక్క వనరులపై ఆధారపడి ఉంటుంది, ఎందుకంటే ప్రాజెక్ట్లో వినియోగదారుని సృష్టించకుండా, అతనికి చెందిన వస్తువులను నిర్వహించడం అసాధ్యం. . దురదృష్టవశాత్తు, అదే కారణంతో, మేము ఆదేశాన్ని అమలు చేయలేము టెర్రాఫాం వర్తిస్తాయి మా ఉదాహరణ లోపల. మనం ముందుగా చేయాలి దరఖాస్తు మాడ్యూల్ కోసం ప్రాజెక్ట్_వినియోగదారుతో మరియు ఆ తర్వాత అన్నిటికీ.
గమనిక: నివేదించబడిన సమస్య టెర్రాఫార్మ్లో ఇంకా పరిష్కరించబడలేదు, మీరు గితుబ్లో చర్చను అనుసరించవచ్చు и .
వనరులను సృష్టించడానికి, డైరెక్టరీకి వెళ్లండి , దాని కంటెంట్ ఇలా ఉండాలి:
$ ls
README.md main.tf vars.tf
మేము ఆదేశాన్ని ఉపయోగించి మాడ్యూళ్ళను ప్రారంభించాము:
$ terraform init
ఉపయోగించిన ప్రొవైడర్ల యొక్క తాజా వెర్షన్లను Terraform డౌన్లోడ్ చేస్తుందని మరియు ఉదాహరణలో వివరించిన అన్ని మాడ్యూల్లను తనిఖీ చేస్తుందని అవుట్పుట్ చూపిస్తుంది.
మొదట మాడ్యూల్ను వర్తించండి ప్రాజెక్ట్_వినియోగదారుతో. దీనికి సెట్ చేయని వేరియబుల్స్ కోసం విలువలను మాన్యువల్గా పాస్ చేయడం అవసరం:
- సెల్_ఖాతా మీ Selectel ఖాతా సంఖ్యతో;
- సెల్_టోకెన్ మీ Selectel API కీతో;
- యూజర్_పాస్వర్డ్ OpenStack వినియోగదారు కోసం పాస్వర్డ్తో.
మొదటి రెండు వేరియబుల్స్ యొక్క విలువలు తప్పనిసరిగా తీసుకోవాలి .
చివరి వేరియబుల్ కోసం, మీరు ఏదైనా పాస్వర్డ్తో రావచ్చు.
మాడ్యూల్ను ఉపయోగించడానికి, మీరు విలువలను భర్తీ చేయాలి SEL_ACCOUNT, SEL_TOKEN и USER_PASSWORD ఆదేశాన్ని అమలు చేయడం ద్వారా:
$ env
TF_VAR_sel_account=SEL_ACCOUNT
TF_VAR_sel_token=SEL_TOKEN
TF_VAR_user_password=USER_PASSWORD
terraform apply -target=module.project_with_user
ఆదేశాన్ని అమలు చేసిన తర్వాత, టెర్రాఫార్మ్ ఏ వనరులను సృష్టించాలనుకుంటున్నదో చూపుతుంది మరియు నిర్ధారణ అవసరం:
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
ప్రాజెక్ట్, వినియోగదారు మరియు పాత్ర సృష్టించబడిన తర్వాత, మీరు మిగిలిన వనరులను సృష్టించడం ప్రారంభించవచ్చు:
$ env
TF_VAR_sel_account=SEL_ACCOUNT
TF_VAR_sel_token=SEL_TOKEN
TF_VAR_user_password=USER_PASSWORD
terraform apply
వనరులను సృష్టించేటప్పుడు, సృష్టించబడిన సర్వర్ అందుబాటులో ఉండే బాహ్య IP చిరునామాతో టెర్రాఫార్మ్ అవుట్పుట్పై శ్రద్ధ వహించండి:
module.server_local_root_disk.openstack_networking_floatingip_associate_v2.association_1: Creating...
floating_ip: "" => "x.x.x.x"
మీరు పేర్కొన్న IPని ఉపయోగించి SSH ద్వారా సృష్టించిన వర్చువల్ మిషన్తో పని చేయవచ్చు.
వనరులను సవరించడం
Terraform ద్వారా వనరులను సృష్టించడంతోపాటు, వాటిని కూడా సవరించవచ్చు.
ఉదాహరణకు, పారామితుల కోసం విలువలను మార్చడం ద్వారా మా సర్వర్ కోసం కోర్ల సంఖ్య మరియు మెమరీని పెంచుకుందాం సర్వర్_vcpus и సర్వర్_ram_mb ఫైల్లో ఉదాహరణలు/vpc/server_local_root_disk/main.tf:
- server_vcpus = "${var.server_vcpus}"
- server_ram_mb = "${var.server_ram_mb}"
+ server_vcpus = 8
+ server_ram_mb = 10240
ఆ తరువాత, కింది ఆదేశాన్ని ఉపయోగించి ఇది ఏ మార్పులకు దారితీస్తుందో మేము తనిఖీ చేస్తాము:
$ env
TF_VAR_sel_account=SEL_ACCOUNT
TF_VAR_sel_token=SEL_TOKEN
TF_VAR_user_password=USER_PASSWORD
terraform plan
ఫలితంగా, టెర్రాఫార్మ్ వనరు మార్పు చేసింది openstack_compute_instance_v2 и openstack_compute_flavor_v2.
దయచేసి ఇది సృష్టించిన వర్చువల్ మిషన్ను రీబూట్ చేయవలసి ఉంటుందని గమనించండి.
కొత్త వర్చువల్ మిషన్ కాన్ఫిగరేషన్ను వర్తింపజేయడానికి, ఆదేశాన్ని ఉపయోగించండి టెర్రాఫాం వర్తిస్తాయి, ఇది మేము ఇప్పటికే ప్రారంభించాము.
సృష్టించబడిన అన్ని వస్తువులు ప్రదర్శించబడతాయి :

మా లో నెట్వర్క్ డ్రైవ్లతో వర్చువల్ మిషన్లను సృష్టించడం కోసం మీరు మానిఫెస్ట్లను కూడా చూడవచ్చు.
కుబెర్నెటీస్ క్లస్టర్ని సృష్టించడానికి ఒక ఉదాహరణ
తదుపరి ఉదాహరణకి వెళ్లే ముందు, మేము ఇంతకు ముందు సృష్టించిన వనరులను క్లీన్ చేస్తాము. దీన్ని చేయడానికి, ప్రాజెక్ట్ యొక్క మూలంలో OpenStack ఆబ్జెక్ట్లను తొలగించడానికి ఆదేశాన్ని అమలు చేయండి:
$ env
TF_VAR_sel_account=SEL_ACCOUNT
TF_VAR_sel_token=SEL_TOKEN
TF_VAR_user_password=USER_PASSWORD
terraform destroy -target=module.server_local_root_disk
సెలెక్టెల్ VPC API ఆబ్జెక్ట్లను క్లియర్ చేయడానికి ఆదేశాన్ని అమలు చేయండి:
$ env
TF_VAR_sel_account=SEL_ACCOUNT
TF_VAR_sel_token=SEL_TOKEN
TF_VAR_user_password=USER_PASSWORD
terraform destroy -target=module.project_with_user
రెండు సందర్భాల్లో, మీరు అన్ని వస్తువుల తొలగింపును నిర్ధారించాలి:
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 మీరు నోడ్ల సంఖ్య, వాటి లక్షణాలు, కుబెర్నెట్స్ వెర్షన్ మరియు మరిన్ని వంటి డిఫాల్ట్ విలువలను చూడవచ్చు.
వనరులను సృష్టించడానికి, మొదటి ఉదాహరణ మాదిరిగానే, మొదటగా, మాడ్యూల్లను ప్రారంభించడం మరియు మాడ్యూల్ వనరుల సృష్టిని ప్రారంభిద్దాం. ప్రాజెక్ట్_వినియోగదారుతోఆపై మిగతావన్నీ సృష్టించడం:
$ terraform init
$ env
TF_VAR_sel_account=SEL_ACCOUNT
TF_VAR_sel_token=SEL_TOKEN
TF_VAR_user_password=USER_PASSWORD
terraform apply -target=module.project_with_user
$ env
TF_VAR_sel_account=SEL_ACCOUNT
TF_VAR_sel_token=SEL_TOKEN
TF_VAR_user_password=USER_PASSWORD
terraform apply
OpenStack Magnum కాంపోనెంట్ ద్వారా Kubernetes క్లస్టర్ల సృష్టి మరియు నిర్వహణను బదిలీ చేద్దాం. మీరు మా వాటిలో క్లస్టర్తో ఎలా పని చేయాలనే దాని గురించి మరింత తెలుసుకోవచ్చు అలాగే .
క్లస్టర్ను సిద్ధం చేసేటప్పుడు, డిస్క్లు, వర్చువల్ మిషన్లు సృష్టించబడతాయి మరియు అవసరమైన అన్ని భాగాలు వ్యవస్థాపించబడతాయి. తయారీకి దాదాపు 4 నిమిషాలు పడుతుంది, ఆ సమయంలో Terraform ఇలాంటి సందేశాలను ప్రదర్శిస్తుంది:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)
ఇన్స్టాలేషన్ పూర్తయిన తర్వాత, క్లస్టర్ సిద్ధంగా ఉందని Terraform నివేదిస్తుంది మరియు దాని IDని ప్రదర్శిస్తుంది:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Creation complete after 4m20s (ID: 3c8...)
Apply complete! Resources: 6 added, 0 changed, 0 destroyed.
యుటిలిటీ ద్వారా సృష్టించబడిన కుబెర్నెట్స్ క్లస్టర్ని నిర్వహించడానికి kubectl మీరు క్లస్టర్ యాక్సెస్ ఫైల్ను పొందాలి. దీన్ని చేయడానికి, మీ ఖాతాలోని ప్రాజెక్ట్ల జాబితాలో Terraform ద్వారా సృష్టించబడిన ప్రాజెక్ట్కి వెళ్లండి:

తదుపరి లింక్ని అనుసరించండి , ఇది ప్రాజెక్ట్ పేరు క్రింద ప్రదర్శించబడుతుంది:

లాగిన్ సమాచారంగా Terraform ద్వారా సృష్టించబడిన వినియోగదారు పేరు మరియు పాస్వర్డ్ను ఉపయోగించండి. మీరు మారకపోతే vars.tf లేదా main.tf మా ఉదాహరణ కోసం, వినియోగదారుకు పేరు ఉంటుంది tf_user. వేరియబుల్ విలువ తప్పనిసరిగా పాస్వర్డ్గా ఉపయోగించబడాలి TF_VAR_user_password, ఇది స్టార్టప్లో పేర్కొనబడింది టెర్రాఫాం వర్తిస్తాయి గతంలో.
ప్రాజెక్ట్ లోపల, మీరు ట్యాబ్కు వెళ్లాలి Kubernetes:

Terraform ద్వారా సృష్టించబడిన క్లస్టర్ ఇక్కడ ఉంది. కోసం ఫైల్ని డౌన్లోడ్ చేయండి kubectl మీరు "యాక్సెస్" ట్యాబ్లో చేయవచ్చు:

ఈ ట్యాబ్ ఇన్స్టాలేషన్ సూచనలను కలిగి ఉంది. kubectl మరియు డౌన్లోడ్ చేసిన వాటిని ఉపయోగించండి config.yaml.
ప్రారంభించిన తరువాత kubectl మరియు ఎన్విరాన్మెంట్ వేరియబుల్ సెట్ చేయడం KUBECONFIG మీరు Kubernetes ఉపయోగించవచ్చు:
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-9578f5c87-g6bjf 1/1 Running 0 8m
kube-system coredns-9578f5c87-rvkgd 1/1 Running 0 6m
kube-system heapster-866fcbc879-b6998 1/1 Running 0 8m
kube-system kube-dns-autoscaler-689688988f-8cxhf 1/1 Running 0 8m
kube-system kubernetes-dashboard-7bdb5d4cd7-jcjq9 1/1 Running 0 8m
kube-system monitoring-grafana-84c97bb64d-tc64b 1/1 Running 0 8m
kube-system monitoring-influxdb-7c8ccc75c6-dzk5f 1/1 Running 0 8m
kube-system node-exporter-tf-cluster-rz6nggvs4va7-minion-0 1/1 Running 0 8m
kube-system node-exporter-tf-cluster-rz6nggvs4va7-minion-1 1/1 Running 0 8m
kube-system openstack-cloud-controller-manager-8vrmp 1/1 Running 3 8m
prometeus-monitoring grafana-76bcb7ffb8-4tm7t 1/1 Running 0 8m
prometeus-monitoring prometheus-75cdd77c5c-w29gb 1/1 Running 0 8m
టెర్రాఫార్మ్ ద్వారా క్లస్టర్ నోడ్ల సంఖ్య సులభంగా మార్చబడుతుంది.
ఫైల్లో main.tf కింది విలువ ఇవ్వబడింది:
cluster_node_count = "${var.cluster_node_count}"
ఈ విలువ నుండి ప్రత్యామ్నాయం చేయబడింది vars.tf:
variable "cluster_node_count" {
default = 2
}
మీరు డిఫాల్ట్ విలువను మార్చవచ్చు vars.tf, లేదా అవసరమైన విలువను నేరుగా పేర్కొనండి main.tf:
- cluster_node_count = "${var.cluster_node_count}"
+ cluster_node_count = 3
మార్పులను వర్తింపజేయడానికి, మొదటి ఉదాహరణలో వలె, ఆదేశాన్ని ఉపయోగించండి టెర్రాఫాం వర్తిస్తాయి:
$ env
TF_VAR_sel_account=SEL_ACCOUNT
TF_VAR_sel_token=SEL_TOKEN
TF_VAR_user_password=USER_PASSWORD
terraform apply
నోడ్ల సంఖ్య మారితే, క్లస్టర్ అందుబాటులో ఉంటుంది. 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 ప్రొవైడర్ యొక్క అన్ని కనుగొనబడిన బగ్లను దీని ద్వారా నివేదించవచ్చు .
మూలం: www.habr.com
