Terraform አቅራቢ Selectel

Terraform አቅራቢ Selectel

ከSelectel ጋር ለመስራት ይፋዊ የቴራፎርም አቅራቢ ፈጥረናል። ይህ ምርት ተጠቃሚዎች በመሰረተ ልማት-እንደ-ኮድ ዘዴ የሃብት አስተዳደርን ሙሉ በሙሉ እንዲተገብሩ ያስችላቸዋል።

አቅራቢው በአሁኑ ጊዜ የአገልግሎት ሀብት አስተዳደርን ይደግፋል "ምናባዊ የግል ደመና" (ከዚህ በኋላ VPC ተብሎ ይጠራል). ለወደፊት፣ በSelectel ለሚሰጡ ሌሎች አገልግሎቶች የንብረት አስተዳደርን ለመጨመር አቅደናል።

አስቀድመው እንደሚያውቁት የቪፒሲ አገልግሎት በOpenStack ላይ ተገንብቷል። ነገር ግን፣ OpenStack የህዝብ ደመናን ለማገልገል ቤተኛ መሳሪያዎችን ስለማይሰጥ፣ የተወሳሰቡ የተዋሃዱ ነገሮችን አስተዳደርን የሚያቃልሉ እና ስራውን የበለጠ ምቹ በሚያደርግ ተጨማሪ ኤፒአይዎች ስብስብ ውስጥ የጎደሉትን ተግባራት ተግባራዊ አድርገናል። በOpenStack ውስጥ የሚገኙ አንዳንድ ተግባራት ከቀጥታ አጠቃቀም የተዘጉ ናቸው፣ ግን በ በኩል ይገኛሉ የእኛ API.

የ Selectel Terraform አቅራቢው አሁን የሚከተሉትን የVPC ሀብቶችን የማስተዳደር ችሎታን ያካትታል።

  • ፕሮጀክቶች እና ኮታዎቻቸው;
  • ተጠቃሚዎች, ሚናዎቻቸው እና ቶከኖቻቸው;
  • ክልላዊ እና ቪአርአርፒን ጨምሮ የህዝብ ንዑስ መረቦች;
  • የሶፍትዌር ፍቃዶች.

አቅራቢው ከVPC ኤፒአይ ጋር ለመስራት የኛን የህዝብ Go ላይብረሪ ይጠቀማል። ቤተ መፃህፍቱ እና አቅራቢው ራሱ ክፍት ምንጭ ናቸው ፣ እድገታቸው በ Github ላይ ይከናወናል-

እንደ ቨርቹዋል ማሽኖች፣ዲስኮች፣ኩበርኔትስ ክላስተር ያሉ ሌሎች የደመና ሀብቶችን ለማስተዳደር የOpenStack Terraform አቅራቢን መጠቀም ይችላሉ። ለሁለቱም አቅራቢዎች ኦፊሴላዊ ሰነዶች በሚከተሉት ማገናኛዎች ይገኛሉ፡-

ቢያስቆጥርም ገና መጀመሩ ነው

ለመጀመር, Terraformን መጫን ያስፈልግዎታል (መመሪያዎች እና የመጫኛ ፓኬጆች አገናኞች በ ላይ ይገኛሉ ኦፊሴላዊ ድር ጣቢያ).

ለመስራት አቅራቢው የሚፈጠረውን የ Selectel API ቁልፍ ይፈልጋል የመለያ መቆጣጠሪያ ፓነሎች.

ከ Selectel ጋር ለመስራት መግለጫዎች የሚፈጠሩት Terraformን በመጠቀም ወይም በእኛ Github ማከማቻ ውስጥ የሚገኙትን ዝግጁ የሆኑ ምሳሌዎችን በመጠቀም ነው። ቴራፎርም-ምሳሌዎች.

ምሳሌዎች ያሉት ማከማቻው በሁለት ማውጫዎች የተከፈለ ነው።

  • ሞዱሎችእንደ ግብአት መለኪያዎችን የሚወስዱ እና አነስተኛ ሀብቶችን የሚያቀናብሩ ትናንሽ እንደገና ጥቅም ላይ ሊውሉ የሚችሉ ሞጁሎችን የያዘ;
  • ምሳሌዎችየተሟሉ የተገናኙ ሞጁሎች ምሳሌዎችን የያዘ።

Terraformን ከጫንን በኋላ የ Selectel API ቁልፍን በመፍጠር እና እራስዎን ከምሳሌዎቹ ጋር በመተዋወቅ ወደ ተግባራዊ ምሳሌዎች እንሂድ።

ከአከባቢ ዲስክ ጋር አገልጋይ የመፍጠር ምሳሌ

አንድን ፕሮጀክት የመፍጠር ምሳሌን እንይ፣ ሚና ያለው ተጠቃሚ እና ቨርቹዋል ማሽን በአካባቢያዊ ዲስክ። ቴራፎርም-ምሳሌዎች/ምሳሌዎች/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"
}

በፋይል ውስጥ ዋና.tf የ Selectel አገልግሎት አቅራቢው ተጀምሯል፡-

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

ይህ ፋይል በአገልጋዩ ላይ የሚጫነውን የኤስኤስኤች ቁልፍ ነባሪ እሴት ይዟል፡

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

አስፈላጊ ከሆነ, የተለየ የህዝብ ቁልፍ መግለጽ ይችላሉ. ቁልፉ እንደ ፋይል ዱካ መገለጽ የለበትም፤ እሴቱን እንደ ሕብረቁምፊ ማከልም ይችላሉ።

በዚህ ፋይል ውስጥ ተጨማሪ ሞጁሎች ተጀምረዋል ፕሮጀክት_ከተጠቃሚ ጋር и አገልጋይ_local_root_ዲስክ, ይህም አስፈላጊ ሀብቶችን የሚያስተዳድር.

እነዚህን ሞጁሎች በበለጠ ዝርዝር እንመልከታቸው.

ሚና ያለው ፕሮጀክት እና ተጠቃሚ መፍጠር

የመጀመሪያው ሞጁል ፕሮጀክት ይፈጥራል እና በዚያ ፕሮጀክት ውስጥ ሚና ያለው ተጠቃሚ፡- ቴራፎርም-ምሳሌዎች/ሞዱሎች/vpc/project_with_ተጠቃሚ.

የተፈጠረው ተጠቃሚ ወደ OpenStack መግባት እና ሀብቱን ማስተዳደር ይችላል። ሞጁሉ ቀላል እና ሶስት አካላትን ብቻ ያስተዳድራል፡

  • selectel_vpc_project_v2፣
  • selectel_vpc_user_v2፣
  • selectel_vpc_role_v2.

ከአካባቢያዊ ዲስክ ጋር ምናባዊ አገልጋይ መፍጠር

ሁለተኛው ሞጁል የአካባቢ ዲስክ ያለው አገልጋይ ለመፍጠር አስፈላጊ የሆኑትን የ OpenStack ነገሮችን ማስተዳደርን ይመለከታል።

ለሀብቱ በዚህ ሞጁል ውስጥ ለተገለጹት አንዳንድ ክርክሮች ትኩረት መስጠት አለብዎት openstack_compute_intance_v2:

resource "openstack_compute_instance_v2" "instance_1" {
  ...

  lifecycle {
    ignore_changes = ["image_id"]
  }

  vendor_options {
    ignore_resize_confirmation = true
  }
}

ክርክር ለውጦችን ችላ በል የባህሪ ለውጦችን ችላ እንድትሉ ያስችልዎታል id ቨርቹዋል ማሽኑን ለመፍጠር ጥቅም ላይ የዋለው ምስል. በቪፒሲ አገልግሎት፣ አብዛኛዎቹ ይፋዊ ምስሎች በሳምንት አንድ ጊዜ በራስ ሰር ይዘምናሉ። id እንዲሁም ይለወጣል. ይህ የሆነው በOpenStack ክፍል - እይታ ፣ ምስሎች የማይለወጡ አካላት እንደሆኑ ተደርገው ይወሰዳሉ።

እንደ ነባር አገልጋይ ወይም ዲስክ እየፈጠሩ ወይም እየቀየሩ ከሆነ እንደ ክርክር ምስል_መታወቂያ ጥቅም ላይ ውሏል። id ይፋዊ ምስል፣ ከዚያ ምስሉ ከተዘመነ በኋላ፣ የቴራፎርም መግለጫውን እንደገና ማስኬድ አገልጋዩን ወይም ዲስኩን እንደገና ይፈጥራል። ክርክር በመጠቀም ለውጦችን ችላ በል እንደዚህ አይነት ሁኔታን ለማስወገድ ያስችልዎታል.

ማስታወሻ፡ ክርክር ለውጦችን ችላ በል በ Terraform ውስጥ ከረጅም ጊዜ በፊት ታየ- ማንሳት #2525.

ክርክር የመጠን_ማረጋገጫውን ችላ ይበሉ የአካባቢ ዲስክ፣ ኮሮች ወይም የአገልጋይ ማህደረ ትውስታን በተሳካ ሁኔታ ለመቀየር ያስፈልጋል። እንደዚህ አይነት ለውጦች የሚደረጉት ጥያቄን በመጠቀም በOpenStack Nova ክፍል በኩል ነው። እጀታ. ከጥያቄ በኋላ ነባሪ ኖቫ እጀታ አገልጋዩን ወደ ሁኔታው ​​ያደርገዋል አረጋግጥ_መጠን እና ከተጠቃሚው ተጨማሪ ማረጋገጫ ይጠብቃል. ሆኖም ኖቫ ከተጠቃሚው ተጨማሪ እርምጃዎችን እንዳይጠብቅ ይህ ባህሪ ሊቀየር ይችላል።

የተገለጸው ነጋሪ እሴት Terraform ሁኔታውን እንዳይጠብቅ ይፈቅዳል አረጋግጥ_መጠን ለአገልጋዩ እና ግቤቶችን ከቀየሩ በኋላ አገልጋዩ ንቁ በሆነ ሁኔታ ውስጥ ለመሆን ዝግጁ ይሁኑ። ክርክሩ ከOpenStack Terraform አቅራቢው ስሪት 1.10.0 ይገኛል። ማንሳት #422.

ምንጮችን መፍጠር

አንጸባራቂዎችን ከማስኬድዎ በፊት እባክዎን በእኛ ምሳሌ ውስጥ ሁለት የተለያዩ አቅራቢዎች ተጀምረዋል ፣ እና የ OpenStack አቅራቢው በተመረጠው አቅራቢው ሀብቶች ላይ የተመሠረተ ነው ፣ ምክንያቱም በፕሮጀክቱ ውስጥ ተጠቃሚን ሳይፈጥሩ ፣ የእሱ የሆኑትን ነገሮች ማስተዳደር አይቻልም ። . እንደ አለመታደል ሆኖ፣ በተመሳሳይ ምክንያት ትዕዛዙን ብቻ ማስኬድ አንችልም። ቴራፎርም ተግባራዊ ይሆናል በእኛ ምሳሌ ውስጥ ። መጀመሪያ ማድረግ አለብን ማመልከት ለሞጁል ፕሮጀክት_ከተጠቃሚ ጋር እና ከዚያ በኋላ ለሁሉም ነገር.

ማሳሰቢያ፡ ይህ ጉዳይ በቴራፎርም ውስጥ እስካሁን አልተፈታም፣ በ Github ላይ የሚደረገውን ውይይት መከታተል ትችላለህ እትም # 2430 и እትም # 4149.

ሀብቶችን ለመፍጠር ወደ ማውጫው ይሂዱ ቴራፎርም-ምሳሌዎች/ምሳሌዎች/vpc/server_local_root_disk, ይዘቱ እንደዚህ መሆን አለበት.

$ ls
README.md	   main.tf		vars.tf

ትዕዛዙን በመጠቀም ሞጁሎቹን እናስጀምራለን-

$ terraform init

ውጤቱ እንደሚያሳየው Terraform የሚጠቀመውን የአቅራቢዎች የቅርብ ጊዜ ስሪቶች አውርዶ በምሳሌው ላይ የተገለጹትን ሁሉንም ሞጁሎች ይፈትሻል።

በመጀመሪያ ሞጁሉን እንተገብረው ፕሮጀክት_ከተጠቃሚ ጋር. ይህ ላልተዋቀሩ ተለዋዋጮች እሴቶችን በእጅ ማለፍ ያስፈልገዋል፡-

  • sel_መለያ በ 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 አድራሻ ለ Terraform ውፅዓት ትኩረት ይስጡ።

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

የተገለጸውን አይፒ በመጠቀም በኤስኤስኤች በኩል ከተፈጠረው ምናባዊ ማሽን ጋር መስራት ይችላሉ።

የአርትዖት መርጃዎች

በቴራፎርም በኩል ሀብቶችን ከመፍጠር በተጨማሪ ሊሻሻሉ ይችላሉ.

ለምሳሌ የመለኪያዎችን እሴቶች በመቀየር ለአገልጋያችን የኮር እና የማስታወሻ ብዛት እንጨምር አገልጋይ_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_intance_v2 и openstack_compute_flavor_v2.

ይህ የተፈጠረውን ምናባዊ ማሽን እንደገና ማስጀመርን እንደሚያስፈልግ እባክዎ ልብ ይበሉ።

አዲሱን የቨርቹዋል ማሽን ውቅር ለመተግበር ትዕዛዙን ይጠቀሙ ቴራፎርም ተግባራዊ ይሆናል, ቀደም ብለን የጀመርነው.

ሁሉም የተፈጠሩ ነገሮች በ ውስጥ ይታያሉ የ VPC መቆጣጠሪያ ፓነሎች:

Terraform አቅራቢ Selectel

በእኛ ውስጥ ምሳሌ ማከማቻዎች ቨርቹዋል ማሽኖችን ከኔትወርክ አንጻፊዎች ጋር ለመፍጠር ማኒፌክቶችን ማየትም ይችላሉ።

የኩበርኔትስ ክላስተር የመፍጠር ምሳሌ

ወደ ቀጣዩ ምሳሌ ከመሄዳችን በፊት ቀደም ብለን የፈጠርናቸውን ሀብቶች እናጸዳለን። ይህንን በፕሮጀክቱ ሥር ለማድረግ ቴራፎርም-ምሳሌዎች/ምሳሌዎች/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

የሚከተለው ምሳሌ በማውጫው ውስጥ አለ ቴራፎርም-ምሳሌዎች/ምሳሌዎች/vpc/kubernetes_cluster.

ይህ ምሳሌ ፕሮጀክት ይፈጥራል፣ በፕሮጀክቱ ውስጥ ሚና ያለው ተጠቃሚ እና አንድ የኩበርኔትስ ክላስተር ያነሳል። በፋይል ውስጥ 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 ክፍል እናስተላልፋለን። በእኛ በአንዱ ውስጥ እንዴት ከክላስተር ጋር መስራት እንደሚችሉ የበለጠ ማወቅ ይችላሉ። ቀዳሚ ጽሑፎችእንዲሁም እውቀት መሰረት.

ክላስተር በሚዘጋጅበት ጊዜ ዲስኮች እና ቨርቹዋል ማሽኖች ይፈጠራሉ እና ሁሉም አስፈላጊ ክፍሎች ይጫናሉ. ዝግጅት 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.

የተፈጠረውን የኩበርኔትስ ክላስተር በመገልገያው በኩል ለማስተዳደር kubectl የክላስተር መዳረሻ ፋይል ማግኘት አለቦት። ይህንን ለማድረግ በመለያዎ ውስጥ ባሉ የፕሮጀክቶች ዝርዝር ውስጥ በ Terraform በኩል ወደተፈጠረው ፕሮጀክት ይሂዱ።

Terraform አቅራቢ Selectel

በመቀጠል ሊንኩን ይከተሉ xxxxxx.selvpc.ruከፕሮጀክቱ ስም በታች የሚታየው

Terraform አቅራቢ Selectel

የመግቢያ መረጃ ለማግኘት በ Terraform የፈጠርከውን የተጠቃሚ ስም እና የይለፍ ቃል ተጠቀም። ካላታለልክ vars.tf ወይም ዋና.tf ለምሳሌ, ተጠቃሚው ስሙ ይኖረዋል tf_ተጠቃሚ. የተለዋዋጭውን ዋጋ እንደ ይለፍ ቃል መጠቀም አለብህ TF_VAR_የተጠቃሚ_ይለፍ ቃልጅምር ላይ የተገለጸው። ቴራፎርም ተግባራዊ ይሆናል ቀደም ብሎ.

በፕሮጀክቱ ውስጥ ወደ ትሩ መሄድ ያስፈልግዎታል ኩባንያቶች:

Terraform አቅራቢ Selectel

በቴራፎርም በኩል የተፈጠረው ክላስተር የሚገኝበት ቦታ ነው። ፋይል አውርድ ለ 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

የክላስተር ኖዶች ቁጥር በቀላሉ በቴራፎርም ሊቀየር ይችላል።
በፋይል ውስጥ ዋና.tf የሚከተለው እሴት ይገለጻል:

cluster_node_count = "${var.cluster_node_count}"

ይህ እሴት የሚተካው ከ vars.tf:

variable "cluster_node_count" {
default = 2
}

ነባሪውን ዋጋ መቀየር ይችላሉ። vars.tf, ወይም የሚፈለገውን ዋጋ በቀጥታ ይግለጹ ዋና.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 አቅራቢው ውስጥ የተገኙ ማናቸውም ስህተቶች በ በኩል ሪፖርት ሊደረጉ ይችላሉ። Github ጉዳዮች.

ምንጭ: hab.com

አስተያየት ያክሉ