Terraform සපයන්නා Selectel

Terraform සපයන්නා Selectel

අපි Selectel සමඟ වැඩ කිරීමට නිල Terraform සපයන්නෙකු දියත් කර ඇත. මෙම නිෂ්පාදනය පරිශීලකයින්ට යටිතල පහසුකම්-කේත ක්‍රමවේදය හරහා සම්පත් කළමනාකරණය සම්පූර්ණයෙන්ම ක්‍රියාත්මක කිරීමට ඉඩ සලසයි.

සපයන්නා දැනට සේවා සම්පත් කළමනාකරණයට සහාය දක්වයි "අතථ්‍ය පුද්ගලික වලාකුළු" (මෙතැන් සිට VPC ලෙස හැඳින්වේ). අනාගතයේදී, Selectel විසින් සපයනු ලබන අනෙකුත් සේවාවන් සඳහා සම්පත් කළමනාකරණය එක් කිරීමට අපි සැලසුම් කරමු.

ඔබ දැනටමත් දන්නා පරිදි, VPC සේවාව OpenStack මත ගොඩනගා ඇත. කෙසේ වෙතත්, OpenStack පොදු වලාකුළට සේවය කිරීම සඳහා ස්වදේශීය මෙවලම් සපයන්නේ නැති නිසා, අපි සංකීර්ණ සංයුක්ත වස්තු කළමනාකරණය සරල කරන සහ කාර්යය වඩාත් පහසු කරන අතිරේක API කට්ටලයක අතුරුදහන් වූ ක්‍රියාකාරීත්වය ක්‍රියාත්මක කළෙමු. OpenStack හි ඇති සමහර ක්‍රියාකාරීත්වය සෘජු භාවිතයෙන් වසා ඇත, නමුත් හරහා ලබා ගත හැක අපගේ API.

Selectel Terraform සපයන්නාට දැන් පහත VPC සම්පත් කළමනාකරණය කිරීමේ හැකියාව ඇතුළත් වේ:

  • ව්යාපෘති සහ ඒවායේ කෝටාවන්;
  • පරිශීලකයන්, ඔවුන්ගේ භූමිකාවන් සහ සංකේත;
  • හරස් කලාපීය සහ VRRP ඇතුළුව පොදු උපජාල;
  • මෘදුකාංග බලපත්ර.

VPC API සමඟ වැඩ කිරීමට සැපයුම්කරු අපගේ public Go පුස්තකාලය භාවිතා කරයි. පුස්තකාලය සහ සපයන්නා යන දෙකම විවෘත මූලාශ්‍ර වේ, ඒවායේ සංවර්ධනය Github මත සිදු කෙරේ:

අතථ්‍ය යන්ත්‍ර, තැටි, Kubernetes පොකුරු වැනි අනෙකුත් වලාකුළු සම්පත් කළමනාකරණය කිරීමට, ඔබට OpenStack Terraform සපයන්නා භාවිතා කළ හැක. සපයන්නන් දෙදෙනා සඳහාම නිල ලේඛන පහත සබැඳිවලින් ලබා ගත හැකිය:

ආරම්භ කිරීම

ආරම්භ කිරීම සඳහා, ඔබ Terraform ස්ථාපනය කළ යුතුය (ස්ථාපන පැකේජ සඳහා උපදෙස් සහ සබැඳි සොයාගත හැකිය නිල වෙබ් අඩවිය).

ක්‍රියාත්මක වීමට, සපයන්නාට Selectel API යතුරක් අවශ්‍ය වේ, එය නිර්මාණය කර ඇත ගිණුම් පාලන පැනල්.

Selectel සමඟ වැඩ කිරීම සඳහා මැනිෆෙස්ට් නිර්මාණය කර ඇත්තේ Terraform භාවිතයෙන් හෝ අපගේ Github ගබඩාවේ ඇති සූදානම් කළ උදාහරණ කට්ටලයක් භාවිතා කරමිනි: ටෙරාෆෝම්-උදාහරණ.

උදාහරණ සහිත ගබඩාව නාමාවලි දෙකකට බෙදා ඇත:

  • මොඩියුල, පරාමිති කට්ටලයක් ආදානය ලෙස ගෙන කුඩා සම්පත් සමූහයක් කළමනාකරණය කරන කුඩා නැවත භාවිතා කළ හැකි මොඩියුල අඩංගු වේ;
  • උදාහරණ, අන්තර් සම්බන්ධිත මොඩියුලවල සම්පූර්ණ කට්ටලයක උදාහරණ අඩංගු වේ.

Terraform ස්ථාපනය කිරීමෙන් පසුව, Selectel API යතුරක් නිර්මාණය කිරීමෙන් සහ උදාහරණ සමඟ ඔබ හුරුපුරුදු වීමෙන් පසුව, අපි ප්‍රායෝගික උදාහරණ වෙත යමු.

දේශීය තැටියක් සමඟ සේවාදායකයක් නිර්මාණය කිරීමේ උදාහරණයක්

ව්‍යාපෘතියක්, භූමිකාවක් සහිත පරිශීලකයෙකු සහ දේශීය තැටියක් සහිත අථත්‍ය යන්ත්‍රයක් නිර්මාණය කිරීමේ උදාහරණයක් බලමු: terraform-උදාහරණ/උදාහරණ/vpc/server_local_root_disk.

ගොනුවේ vars.tf මොඩියුල ඇමතීමේදී භාවිතා කරන සියලුම පරාමිති විස්තර කර ඇත. ඒවායින් සමහරක් පෙරනිමි අගයන් ඇත, උදාහරණයක් ලෙස, සේවාදායකය කලාපය තුළ නිර්මාණය වනු ඇත ru-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 Selectel සපයන්නා ආරම්භ කර ඇත:

provider "selectel" {
token    = "${var.sel_token}"
}

මෙම ගොනුවේ සේවාදායකයේ ස්ථාපනය කෙරෙන SSH යතුර සඳහා පෙරනිමි අගයද අඩංගු වේ:

module "server_local_root_disk" {
...
server_ssh_key      = "${file("~/.ssh/id_rsa.pub")}"
}

අවශ්ය නම්, ඔබට වෙනත් පොදු යතුරක් නියම කළ හැක. යතුර ගොනු මාර්ගයක් ලෙස සඳහන් කළ යුතු නැත; ඔබට අගය තන්තුවක් ලෙසද එක් කළ හැක.

තවද මෙම ගොනුවේ මොඩියුල දියත් කර ඇත පරිශීලක_සමඟ_ව්‍යාපෘතිය и server_local_root_disk, අවශ්ය සම්පත් කළමනාකරණය කරන.

මෙම මොඩියුල වඩාත් විස්තරාත්මකව බලමු.

භූමිකාවක් සහිත ව්යාපෘතියක් සහ පරිශීලකයෙකු නිර්මාණය කිරීම

පළමු මොඩියුලය ව්‍යාපෘතියක් සහ එම ව්‍යාපෘතියේ භූමිකාවක් සහිත පරිශීලකයෙකු නිර්මාණය කරයි: ටෙරාෆෝම්-උදාහරණ/මොඩියුල/vpc/project_with_user.

සාදන ලද පරිශීලකයාට OpenStack වෙත පුරනය වී එහි සම්පත් කළමනාකරණය කිරීමට හැකි වේ. මොඩියුලය සරල වන අතර ආයතන තුනක් පමණක් කළමනාකරණය කරයි:

  • selectel_vpc_project_v2,
  • selectel_vpc_user_v2,
  • selectel_vpc_role_v2.

දේශීය තැටිය සමඟ අථත්ය සේවාදායකයක් නිර්මාණය කිරීම

දෙවන මොඩියුලය දේශීය තැටියක් සහිත සේවාදායකයක් සෑදීමට අවශ්‍ය OpenStack වස්තු කළමනාකරණය සමඟ කටයුතු කරයි.

සම්පත් සඳහා මෙම මොඩියුලයේ දක්වා ඇති සමහර තර්ක කෙරෙහි ඔබ අවධානය යොමු කළ යුතුය 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 ද වෙනස් වේ. මෙයට හේතුව OpenStack සංරචකයේ සුවිශේෂතායි - Glance, එහි රූප වෙනස් කළ නොහැකි ආයතන ලෙස සැලකේ.

ඔබ තර්කයක් ලෙස පවතින සේවාදායකයක් හෝ තැටියක් නිර්මාණය කරන්නේ නම් හෝ වෙනස් කරන්නේ නම් image_id භාවිතා වේ id පොදු රූපය, පසුව එම රූපය යාවත්කාලීන කිරීමෙන් පසුව, Terraform මැනිෆෙස්ට් නැවත ධාවනය කිරීමෙන් සේවාදායකය හෝ තැටිය ප්‍රතිනිර්මාණය වේ. තර්කයක් භාවිතා කිරීම නොසලකා හැරීම_වෙනස් එවැනි තත්වයක් වළක්වා ගැනීමට ඔබට ඉඩ සලසයි.

සටහන: තර්කය නොසලකා හැරීම_වෙනස් බොහෝ කලකට පෙර Terraform හි පෙනී සිටියේය: අදින්න#2525.

තර්කය නොසලකා හැරීම_ප්‍රමාණය_තහවුරු කිරීම දේශීය තැටිය, හරය, හෝ සේවාදායක මතකය සාර්ථකව ප්‍රතිප්‍රමාණ කිරීමට අවශ්‍ය වේ. ඉල්ලීමක් භාවිතයෙන් OpenStack Nova සංරචකය හරහා එවැනි වෙනස්කම් සිදු කෙරේ ප්‍රමාණය වෙනස් කරන්න. ඉල්ලීමෙන් පසු පෙරනිමි Nova ප්‍රමාණය වෙනස් කරන්න සේවාදායකය තත්වයට පත් කරයි verify_resize සහ පරිශීලකයාගෙන් අමතර තහවුරු කිරීමක් බලා සිටියි. කෙසේ වෙතත්, මෙම හැසිරීම වෙනස් කළ හැකි අතර එමඟින් Nova පරිශීලකයාගේ අමතර ක්‍රියා සඳහා රැඳී නොසිටිනු ඇත.

නිශ්චිත තර්කය Terraform හට තත්ත්වය බලා නොසිටීමට ඉඩ සලසයි verify_resize සේවාදායකය සඳහා සහ එහි පරාමිති වෙනස් කිරීමෙන් පසු සේවාදායකය සක්‍රිය තත්වයක සිටීමට සූදානම්ව සිටින්න. තර්කය OpenStack Terraform සපයන්නාගේ 1.10.0 අනුවාදයෙන් ලබා ගත හැකිය: අදින්න#422.

සම්පත් නිර්මාණය කිරීම

මැනිෆෙස්ටය ක්‍රියාත්මක කිරීමට පෙර, අපගේ උදාහරණයේදී, විවිධ සැපයුම්කරුවන් දෙදෙනෙකු දියත් කර ඇති අතර, OpenStack සපයන්නා Selectel සපයන්නාගේ සම්පත් මත රඳා පවතින බව කරුණාවෙන් සලකන්න, මන්ද ව්‍යාපෘතියේ පරිශීලකයෙකු නිර්මාණය නොකර එයට අයත් වස්තූන් කළමනාකරණය කළ නොහැකි බැවිනි. . අවාසනාවකට, එකම හේතුව නිසා අපට විධානය ක්‍රියාත්මක කළ නොහැක ටෙරාෆෝම් අදාළ වේ අපගේ උදාහරණය ඇතුළත. අපි මුලින්ම කරන්න ඕන අදාළ වේ මොඩියුලය සඳහා පරිශීලක_සමඟ_ව්‍යාපෘතිය ඊට පස්සේ අනිත් හැම දේටම.

සටහන: මෙම ගැටළුව තවමත් Terraform හි විසඳා නැත, ඔබට Github හි සාකච්ඡාව අනුගමනය කළ හැක නිකුතුව#2430 и නිකුතුව#4149.

සම්පත් සෑදීමට, නාමාවලිය වෙත යන්න terraform-උදාහරණ/උදාහරණ/vpc/server_local_root_disk, එහි අන්තර්ගතය මෙසේ විය යුතුය:

$ ls
README.md	   main.tf		vars.tf

අපි විධානය භාවිතයෙන් මොඩියුල ආරම්භ කරමු:

$ terraform init

ප්‍රතිදානය පෙන්නුම් කරන්නේ Terraform එය භාවිතා කරන සපයන්නන්ගේ නවතම අනුවාදයන් බාගත කර උදාහරණයේ විස්තර කර ඇති සියලුම මොඩියුල පරීක්ෂා කරන බවයි.

මුලින්ම අපි මොඩියුලය යොදමු පරිශීලක_සමඟ_ව්‍යාපෘතිය. මේ සඳහා සකසා නොමැති විචල්‍යයන් සඳහා අගයන් අතින් සම්මත කිරීම අවශ්‍ය වේ:

  • sel_ගිණුම ඔබගේ Selectel ගිණුම් අංකය සමඟ;
  • sel_ටෝකනය 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

විධානය ක්‍රියාත්මක කිරීමෙන් පසු, Terraform විසින් නිර්මාණය කිරීමට අවශ්‍ය සම්පත් පෙන්වනු ඇති අතර තහවුරු කිරීම සඳහා විමසනු ඇත:

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 ලිපිනය සමඟ Terraform ප්‍රතිදානය කෙරෙහි අවධානය යොමු කරන්න:

module.server_local_root_disk.openstack_networking_floatingip_associate_v2.association_1: Creating...
  floating_ip: "" => "x.x.x.x"

ඔබට නිශ්චිත IP භාවිතා කරමින් SSH හරහා නිර්මාණය කරන ලද අථත්ය යන්ත්රය සමඟ වැඩ කළ හැකිය.

සම්පත් සංස්කරණය කිරීම

Terraform හරහා සම්පත් නිර්මාණය කිරීමට අමතරව, ඒවා වෙනස් කළ හැකිය.

උදාහරණයක් ලෙස, පරාමිති සඳහා අගයන් වෙනස් කිරීමෙන් අපගේ සේවාදායකය සඳහා හරය සහ මතකය වැඩි කරමු server_vcpus и server_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

එහි ප්‍රතිඵලයක් ලෙස Terraform සම්පත් වෙනසක් සිදු කළේය openstack_compute_instance_v2 и openstack_compute_flavor_v2.

මෙය සාදන ලද අථත්‍ය යන්ත්‍රය නැවත පණගැන්වීමට හේතු වන බව කරුණාවෙන් සලකන්න.

නව අථත්‍ය යන්ත්‍ර වින්‍යාසය යෙදීමට, විධානය භාවිතා කරන්න ටෙරාෆෝම් අදාළ වේ, අපි කලින් දියත් කර ඇත.

සාදන ලද සියලුම වස්තූන් දර්ශනය වනු ඇත VPC පාලන පැනල්:

Terraform සපයන්නා Selectel

අපේ උදාහරණ ගබඩා ජාල ධාවක සමඟ අතථ්‍ය යන්ත්‍ර සෑදීම සඳහා මැනිෆෙස්ටස් ද ඔබට දැක ගත හැකිය.

Kubernetes පොකුරක් නිර්මාණය කිරීමේ උදාහරණය

අපි ඊළඟ උදාහරණයට යාමට පෙර, අපි කලින් නිර්මාණය කළ සම්පත් පිරිසිදු කරන්නෙමු. ව්යාපෘතියේ මූලයේ මෙය සිදු කිරීම සඳහා terraform-උදාහරණ/උදාහරණ/vpc/server_local_root_disk 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

ඉන්පසු Selectel 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

පහත උදාහරණය නාමාවලියෙහි ඇත terraform-උදාහරණ/උදාහරණ/vpc/kubernetes_cluster.

මෙම උදාහරණය ව්‍යාපෘතියක් නිර්මාණය කරයි, ව්‍යාපෘතියේ භූමිකාවක් ඇති පරිශීලකයෙකු, සහ එක් Kubernetes පොකුරක් මතු කරයි. ගොනුවේ vars.tf ඔබට නෝඩ් ගණන, ඒවායේ ලක්ෂණ, Kubernetes අනුවාදය යනාදිය වැනි පෙරනිමි අගයන් දැකිය හැක.

පළමු උදාහරණයට සමාන සම්පත් නිර්මාණය කිරීම සඳහා, මුලින්ම අපි මොඩියුල ආරම්භ කිරීම සහ මොඩියුල සම්පත් සෑදීම ආරම්භ කරමු පරිශීලක_සමඟ_ව්‍යාපෘතියඉන්පසු අනෙක් සියල්ල නිර්මාණය කරන්න:

$ 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)

ස්ථාපනය අවසන් වූ පසු, ටෙරාෆෝම් පොකුර සූදානම් බව පෙන්වා එහි හැඳුනුම්පත පෙන්වයි:

module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Creation complete after 4m20s (ID: 3c8...)

Apply complete! Resources: 6 added, 0 changed, 0 destroyed.

උපයෝගිතා හරහා නිර්මාණය කරන ලද Kubernetes පොකුර කළමනාකරණය කිරීමට kubectl ඔබ පොකුරු ප්‍රවේශ ගොනුව ලබා ගත යුතුය. මෙය සිදු කිරීම සඳහා, ඔබගේ ගිණුමේ ඇති ව්‍යාපෘති ලැයිස්තුවේ Terraform හරහා සාදන ලද ව්‍යාපෘතිය වෙත යන්න:

Terraform සපයන්නා Selectel

ඊළඟට, වැනි සබැඳිය අනුගමනය කරන්න xxxxxx.selvpc.ruව්‍යාපෘතියේ නමට පහළින් දිස්වන:

Terraform සපයන්නා Selectel

පිවිසුම් තොරතුරු සඳහා, ඔබ Terraform හරහා සාදන ලද පරිශීලක නාමය සහ මුරපදය භාවිතා කරන්න. ඔබ වංචා නොකළේ නම් vars.tf හෝ main.tf අපගේ උදාහරණය සඳහා, පරිශීලකයාට නම ඇත tf_user. ඔබ මුරපදය ලෙස විචල්‍යයේ අගය භාවිතා කළ යුතුය TF_VAR_user_password, ආරම්භයේදී නිශ්චිතව දක්වා ඇත ටෙරාෆෝම් අදාළ වේ කලින්.

ව්යාපෘතියේ ඇතුළත ඔබ ටැබ් එකට යා යුතුය කුබර්නෙට්ස්:

Terraform සපයන්නා Selectel

Terraform හරහා නිර්මාණය කරන ලද පොකුර පිහිටා ඇත්තේ මෙහිදීය. සඳහා ගොනුව බාගන්න kubectl ඔබට "ප්රවේශය" ටැබය මත කළ හැක:

Terraform සපයන්නා Selectel

ස්ථාපන උපදෙස් එකම පටිත්තෙහි පිහිටා ඇත. 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 හරහා node එකක් එකතු කිරීමෙන් පසු, ඔබට එය අමතර වින්‍යාසයකින් තොරව භාවිතා කළ හැක:

$ 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 සපයන්නා තුළ ඇති ඕනෑම දෝෂයක් හරහා වාර්තා කළ හැක Github ගැටළු.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න