Oleme Selecteliga töötamiseks käivitanud ametliku Terraformi pakkuja. See toode võimaldab kasutajatel täielikult rakendada ressursside haldust koodina kasutatava infrastruktuuri metoodika kaudu.
Pakkuja toetab praegu teenuseressursside haldust "Virtuaalne privaatpilv" (edaspidi VPC). Tulevikus plaanime lisada ressursihalduse ka teistele Selecteli pakutavatele teenustele.
Nagu te juba teate, on VPC teenus üles ehitatud OpenStackile. Kuna OpenStack aga ei paku avaliku pilve teenindamiseks natiivseid tööriistu, rakendasime puuduoleva funktsionaalsuse täiendavate API-de komplekti, mis lihtsustavad keerukate liitobjektide haldamist ja muudavad töö mugavamaks. Mõned OpenStackis saadaolevad funktsioonid on otseseks kasutamiseks suletud, kuid on saadaval meie API.
Selectel Terraformi pakkuja sisaldab nüüd võimalust hallata järgmisi VPC ressursse:
projektid ja nende kvoodid;
kasutajad, nende rollid ja märgid;
avalikud alamvõrgud, sealhulgas piirkondadevaheline ja VRRP;
tarkvara litsentsid.
Pakkuja kasutab VPC API-ga töötamiseks meie avalikku Go teeki. Nii raamatukogu kui ka pakkuja ise on avatud lähtekoodiga, nende arendamine toimub Githubis:
Teiste pilveressursside, näiteks virtuaalmasinate, ketaste, Kubernetese klastrite haldamiseks võite kasutada OpenStack Terraformi pakkujat. Mõlema teenusepakkuja ametlik dokumentatsioon on saadaval järgmistel linkidel:
Töötamiseks vajab pakkuja Selectel API võtit, mis luuakse konto juhtpaneelid.
Selecteliga töötamiseks mõeldud manifestid luuakse kasutades Terraformi või valmis näidete komplekti, mis on saadaval meie Githubi hoidlas: terraform-näited.
Näidetega hoidla on jagatud kaheks kataloogiks:
moodulid, mis sisaldab väikeseid korduvkasutatavaid mooduleid, mis võtavad sisendiks parameetrite komplekti ja haldavad väikest kogumit ressursse;
näited, mis sisaldab näiteid omavahel ühendatud moodulite komplektist.
Pärast Terraformi installimist, Selectel API võtme loomist ja näidetega tutvumist liigume edasi praktiliste näidete juurde.
Failis vars.tf kirjeldatakse kõiki parameetreid, mida moodulite kutsumisel kasutatakse. Mõnel neist on vaikeväärtused, näiteks luuakse server tsoonis ru-3a järgmise konfiguratsiooniga:
argument ignore_changes võimaldab ignoreerida atribuutide muudatusi id virtuaalse masina loomisel kasutatud pildi jaoks. VPC-teenuses uuendatakse enamikku avalikke pilte automaatselt kord nädalas ja samal ajal ka neid id samuti muutub. See on tingitud OpenStacki komponendi - Glance - iseärasustest, milles pilte peetakse muutumatuteks üksusteks.
Kui loote või muudate olemasolevat serverit või ketast, millel on argument pildi_id kasutatud id avalik pilt, siis pärast selle pildi värskendamist loob Terraformi manifesti uuesti käivitamine serveri või ketta uuesti. Argumendi kasutamine ignore_changes võimaldab teil sellist olukorda vältida.
Märkus: argument ignore_changes ilmus Terraformis üsna kaua aega tagasi: tõmba #2525.
argument ignore_resize_confirmation vaja kohaliku ketta, tuumade või serveri mälu edukaks muutmiseks. Sellised muudatused tehakse OpenStack Nova komponendi kaudu päringu abil resize. Vaikimisi Nova pärast päringut resize paneb serveri olekusse verify_resize ja ootab kasutajalt täiendavat kinnitust. Seda käitumist saab aga muuta nii, et Nova ei ootaks kasutajalt lisatoiminguid.
Määratud argument lubab Terraformil olekut mitte oodata verify_resize serveri jaoks ja olge valmis selleks, et server on pärast parameetrite muutmist aktiivses olekus. Argument on saadaval OpenStack Terraformi pakkuja versioonist 1.10.0: tõmba #422.
Ressursside loomine
Enne manifestide käivitamist pange tähele, et meie näites käivitatakse kaks erinevat pakkujat ja OpenStacki pakkuja sõltub Selecteli pakkuja ressurssidest, kuna ilma projektis kasutajat loomata pole võimalik sinna kuuluvaid objekte hallata. . Kahjuks ei saa me samal põhjusel lihtsalt käsku käivitada rakendada terravormi meie näite sees. Kõigepealt peame tegema kohaldada mooduli jaoks projekt_kasutajaga ja pärast seda kõike muud.
Märkus. Seda probleemi pole Terraformis veel lahendatud, saate jälgida Githubi arutelu aadressil number 2430 и number 4149.
Pärast käsu käivitamist näitab Terraform, milliseid ressursse ta soovib luua, ja küsib kinnitust:
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
Kui projekt, kasutaja ja roll on loodud, võite alustada ülejäänud ressursside loomist:
Loodud virtuaalmasinaga saate töötada SSH kaudu, kasutades määratud IP-d.
Ressursside redigeerimine
Lisaks Terraformi kaudu ressursside loomisele saab neid ka muuta.
Näiteks suurendame oma serveri tuumade ja mälu arvu, muutes parameetrite väärtusi server_vcpus и server_ram_mb failis näited/vpc/server_local_root_disk/main.tf:
Mõlemal juhul peate kinnitama kõigi objektide kustutamise:
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
See näide loob projekti, kasutaja, kellel on projektis roll, ja loob ühe Kubernetese klastri. Failis vars.tf näete vaikeväärtusi, nagu sõlmede arv, nende omadused, Kubernetese versioon jne.
Esimese näitega sarnaste ressursside loomiseks alustame kõigepealt moodulite lähtestamisega ja mooduliressursside loomisega projekt_kasutajagaja seejärel luua kõik muu:
Kubernetese klastrite loomise ja haldamise viime üle OpenStack Magnumi komponendi kaudu. Klastriga töötamise kohta leiate lisateavet ühest meie juhendist varasemad artiklid, samuti aastal teadmistepagas.
Klastri ettevalmistamisel luuakse kettad ja virtuaalmasinad ning paigaldatakse kõik vajalikud komponendid. Ettevalmistus võtab aega umbes 4 minutit, selle aja jooksul kuvab Terraform selliseid sõnumeid nagu:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)
Kui installimine on lõppenud, annab Terraform märku, et klaster on valmis, ja kuvab selle ID:
Loodud Kubernetese klastri haldamiseks utiliidi kaudu kubectl peate hankima klastri juurdepääsufaili. Selleks minge oma konto projektide loendis Terraformi kaudu loodud projekti juurde:
Järgmisena järgige linki like xxxxxx.selvpc.rumis kuvatakse projekti nime all:
Sisselogimisteabe saamiseks kasutage Terraformi kaudu loodud kasutajanime ja parooli. Kui sa pole petnud vars.tf või main.tf meie näite puhul on kasutajal nimi tf_user. Paroolina peate kasutama muutuja väärtust TF_VAR_user_password, mis määrati käivitamisel rakendada terravormi varem.
Projekti sees peate minema vahekaardile Kubernetes:
Siin asub Terraformi kaudu loodud klaster. Laadige fail alla kubectl vahekaardil „Juurdepääs” saate:
Paigaldusjuhised asuvad samal vahekaardil. kubectl ja allalaaditu kasutamine config.yaml.
Pärast käivitamist kubectl ja keskkonnamuutuja seadmine KUBECONFIG saate kasutada Kubernetes:
Kui sõlmede arv muutub, jääb klaster kättesaadavaks. Pärast sõlme lisamist Terraformi kaudu saate seda kasutada ilma täiendava konfiguratsioonita:
$ 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
Järeldus
Selles artiklis tutvusime peamiste tööviisidega "Virtuaalne privaatpilv" Terraformi kaudu. Meil on hea meel, kui kasutate ametlikku Selectel Terraformi pakkujat ja annate tagasisidet.
Kõigist Selectel Terraformi pakkuja leitud vigadest saab teatada Githubi probleemid.