Ansible Kubernetes (K8s) inventoriaus šaltinis

Ansible Kubernetes K8s Inventoriaus Saltinis



Šiame įraše sužinome, kaip Ansible įrankyje naudoti Kubernetes papildinį. Ansible sunku valdyti didelį konteinerių skaičių. Tačiau „Kubernetes“ naudojimas „Ansible“ yra naudingas tvarkant konteinerius. Šiame vadove sužinosime, kas yra „Kubernetes“ atsargų šaltinis ir kaip jis veikia „Ansible“.

„Google“ išleido lengvai pasiekiamą valdymo programinę įrangą, vadinamą „Kubernetes“, kuri taip pat žinoma kaip K8s, kuri naudojama virtualizuotoms konfigūracijoms valdyti per nuotolinį įrenginių rinkinį su nulinės prastovos diegimo funkcijomis, automatiniu atkūrimu ir mastelio keitimu, o tai suteikia „Kubernetes“ papildiniui itin pritaikomą. architektūra Ansible mieste. Dėl būtinų funkcijų REST API, pagrindinis Kubernetes tikslas yra nuslėpti sudėtingumą, susijusį su daugelio konteinerių valdymu.







„Kubernetes“ konfigūracija pagrįsta kliento serveriu. Tačiau pagal numatytuosius nustatymus yra tik vienas pagrindinis serveris, kuris veikia kaip valdančioji priegloba. „Kubernetes“ sistemoje „Kubernetes“ konfigūruoti taip pat galime naudoti kelių pagrindinių valdiklių. K8s atsargų šaltinis kartais reikalingas valdymo sistemoms ir nuotolinio pagrindinio kompiuterio paslaugoms konfigūruoti, kad būtų galima valdyti ankštis. Tačiau yra sunkumų gaunant konkrečias instrukcijas, kaip tai padaryti. Todėl įgyvendiname šią mokymo programą, kaip sukurti Ansible Playbook, kuris ištraukia domeno ankštis ir sukuria „Kubernetes“ atsargų šaltinį.



Ansible „Kubernetes“ inventoriaus šaltinio naudojimo sąlygos

Norėdami naudoti „Kubernetes“ atsargų šaltinį „Ansible“, šiame vadove yra etapo proceso instrukcijos arba komandos. Įsitikinkite, kad turite reikiamą pasiruošimą, jei norite judėti į priekį:



  • Norėdami dirbti pagal Ansible scenarijų, pirmiausia serveryje nustatome Ansible įrankį ir įsitikinkite, kad turite Ansible 2.11.7 versiją, kad galėtume lengvai naudoti „Kubernetes“ papildinį.
  • Norint įvertinti „Kubernetes“ papildinį, mums reikia nuotolinio serverio įrenginio su įmontuotu „Kubernetes“ klasteriu.
  • Šiuo metu nuotolinis pagrindinis kompiuteris sukonfigūruotas vykdyti Ansible instrukcijas ir žaidimų knygas, taip pat sukurtą inventoriaus failą. Tikslinio nuotolinio įrenginio pavadinimas yra K8s pagrindinis mazgas.
  • Python versija yra 3.6 arba naujesnė, kuri turi būti įdiegta Ansible valdiklio įrenginyje. Jis taip pat gali būti tiksliniame nuotolinio pagrindinio kompiuterio įrenginyje.
  • Python openshift modulio versija yra 0.6 arba naujesnė. Mums taip pat reikia 3.11 ar naujesnės versijos pyYAML modulio. Abu moduliai turi būti nustatyti nuotolinio serverio įrenginyje ir valdiklio įrenginyje.

Pavyzdys:





Štai pats pirmasis pavyzdys, kai „Ansible“ įdiegiame „Kubernetes“. Norėdami tai padaryti, naudojame bet kurią „Ansible“ aplinką, kad įdiegtume „Kubernetes“ atsargų šaltinį. Šie išvardyti procesai atliekami pagal šį scenarijų naudojant Kubernetes inventoriaus papildinį:

  • Naujos vardų erdvės įdiegimas K8s klasteryje Ansible.
  • „nginx pod“ kūrimas naudojant „Ansible“ žaidimų knygą.
  • „Nginx“ diegimo sukūrimas „Ansible“.

Kad sąvokos ir vykdymas būtų lengvai suprantamos, pavyzdį įgyvendiname keliais žingsniais.



1 veiksmas: įdiekite naują vardų erdvę K8s klasteryje ansible

Pirmuoju žingsniu sukuriame žaidimų knygą, kad galėtume įrašyti turinį „.yml“ formatu „Ansible“. Norėdami sukurti žaidimų knygą, mes naudojame šią komandą:

[ šaknis @ meistras galimas ] # nano nginx_pod.yml

Dabar „pod.yml“ žaidimų knyga sukurta ir paleista naujame „Ansible“ terminale. Pradedame rašyti scenarijų. Žaidimų knygelėje pirmiausia apibrėžiame API versiją, kurią naudojame Ansible podyje, kuri yra „v1“. Mūsų apibrėžta vardų erdvė yra „ansible-namespace“. Tada pateikiame ansible-namespace metaduomenis. Metaduomenyse naudojame nginx programinę įrangą ir etiketę, kurioje yra vertės sąsajos pakopa. Žaidimo knygos specifikacijoje pateikiame pavadinimą ir vaizdą, kuris saugomas konteineryje; abiejuose yra nginx.

2 veiksmas: Ansible sukurkite manifesto dokumentą

Dabar sukuriame kitą dokumentą tame pačiame Ansible kataloge, kuris yra diegimo dokumentas „.yml“ formatu. Norėdami sukurti manifesto dokumentą, naudokite šią komandą Ansible terminale:

[ šaknis @ meistras galimas ] # nano nginx_deployment.yml

Aprašo dokumente pirmiausia vėl apibrėžiame programos versiją, kuri yra „app/v1“. Tada pasakome, koks tai failas, ar tai yra diegimo failas. Tada apibrėžiame vardų erdvę, kuri yra ansible-namespace. Norint sukurti įgyvendinimą, dvi kopijos ansible-name erdvėje rodo grupės numerį. „nginx“ vaizdai yra 1.14.2, kurie paleidžiami rinkinyje. Parametras matchLabels pateikia ankščių žymas ir jų specifikacijas pagal specifikacijos parametrą. Jei žymos ankštyse kažkaip atitinka nurodytas konfigūracijos informacijoje, įdiegimas įvyksta aprašo dokumente „Ansible“.

3 veiksmas: sukurkite „Kubernetes“ diegimo programą „Ansible“.

Dabar „Ansible“ norime sukurti kitą žaidimų knygą. Šioje knygelėje įdiegiame Kubernetes funkcionalumą. Norėdami sukurti žaidimų knygą, naudokite šią komandą:

[ šaknis @ meistras galimas ] # nano kubernetes_main.yml

Žaidimo knyga sukuriama tame pačiame kataloge, kuriame Ansible saugomas ankstesnis aprašas ir aprašo dokumentas. Žaidimų knygelėje pirmiausia apibrėžiame norimos įgyvendinti žaidimo knygos funkcionalumą. Norėdami sukurti ryšį, pateikiame nuotolinius pagrindinius kompiuterius, kuriems norime taikyti. Čia taikome „visus“ pagrindinius kompiuterius. Toliau apibrėžiame kintamąjį, kad patikrintume Python interpretatorių Ansible naudodami kelią, kuriame jis saugomas. Dabar apibrėžiame užduotis žaidimų knygelėje. Pirmiausia patikriname minikube įrenginio būseną. Tada žaidimų knygelėje sukuriame naują „Kubernetes“ vardų erdvę. Tada nukopijuokite nginx_pod.yml ir nginx_deployment .yml į nuotolinį įrenginį.

Naudodami šiuos yml dokumentus sukuriame pod diegimą nuotoliniame įrenginyje. Tada patikriname, ar Kubernetes pod yra nurodytoje nuotolinio įrenginio vietoje, ar ne.

Nutraukę žaidimų knygą, dabar sukuriame inventoriaus failą, kad sukurtume ryšį tarp Ansible valdiklio ir tikslinės nuotolinio kompiuterio.

Visi:
šeimininkai:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ********
ansible_connection: ssh
ansible_port: 22

[ šaknis @ meistras galimas ] # ansible-playbook kubernates_main.yml

Čia yra norima išvestis, kurioje matome, kad užduotys sėkmingai įdėtos į tikslinį įrenginį:

Įdėjus užduotį tiksliniame kompiuteryje, patikriname, ar „ansible-namespace“ yra „Kubernetes“ klasteryje, ar ne. Mes naudojame šią „grep“ komandą:

[ šaknis @ meistras galimas ] # kubectl gauti vardų erdvę | grep ansible-namespace

Jei norite patikrinti sukurtą bloką Kubernetes klasterio vardų srityje, parašykite šią komandą, kad patikrintumėte:

[ šaknis @ meistras galimas ] # kubectl get pods --namespace ansible-namespace

Kaip matote ankstesniame išvestyje, gauname įrenginyje veikiančias ankštis. Dabar patikriname diegimą, kurį atlikome „Kubernetes“ klasteryje. Norėdami patikrinti jau atliktus diegimus, naudokite šį teiginį:

[ šaknis @ meistras galimas ] # kubectl get deployments --namespace ansible-namespace

Išvada

Sužinojome, kas yra „Kubernetes“ atsargų šaltinis „Ansible“. Taip pat išmokome naudoti Kubernetes inventorių Ansible. Tada įdiegėme pavyzdį, kad aiškiau sužinotume apie Kubernetes atsargų šaltinio veikimą Ansible.