Vir inventarja Ansible Kubernetes (K8s).

Vir Inventarja Ansible Kubernetes K8s



V tej objavi se naučimo, kako uporabljati vtičnik Kubernetes v orodju Ansible. V Ansibleu je težko upravljati veliko število zabojnikov. Vendar je uporaba Kubernetesa v Ansibleu koristna pri upravljanju vsebnikov. V tem priročniku bomo izvedeli, kaj je vir inventarja Kubernetes in kako deluje v Ansibleu.

Google je lansiral lahko dostopno programsko opremo za upravljanje, imenovano Kubernetes, ki je znana tudi kot K8s in se uporablja za upravljanje virtualiziranih konfiguracij prek oddaljenega nabora strojev s funkcijami namestitve brez izpadov, samodejnim vračanjem in razširljivostjo, ki vtičniku Kubernetes zagotavlja izjemno prilagodljiv arhitektura v Ansibleu. Z razpoložljivostjo API-jev REST za potrebno funkcionalnost je glavni cilj Kubernetesa prikriti kompleksnost, ki je povezana z nadzorom številnih vsebnikov.







Konfiguracija Kubernetesa temelji na odjemalec-strežnik. Vendar je privzeto samo en glavni strežnik, ki služi kot nadzorni gostitelj. V Kubernetesu lahko za konfiguracijo Kubernetesa uporabimo tudi večglavne krmilnike. Vir inventarja K8s je občasno potreben za nadzorne sisteme in konfiguracijo storitev na oddaljenem gostitelju za nadzor podov. Vendar obstajajo težave pri pridobivanju posebnih navodil, kako to storiti. Kot rezultat izvajamo to vadnico o tem, kako narediti Ansible Playbook, ki ekstrahira pode v domeni in ustvari vir inventarja Kubernetes.



Predpogoji za uporabo vira inventarja Kubernetes v Ansibleu

Za uporabo vira inventarja Kubernetes v Ansibleu so v tem priročniku navodila ali ukazi stopenjskih procesov. Prepričajte se, da imate potrebne priprave, če želite napredovati v tem:



  • Za delo v scenariju Ansible najprej nastavimo orodje Ansible na strežniku in poskrbimo, da imate različico Ansible 2.11.7, da lahko preprosto uporabljamo vtičnik Kubernetes.
  • Za oceno vtičnika Kubernetes potrebujemo oddaljeno strežniško napravo z vgrajeno gručo Kubernetes.
  • Oddaljeni gostitelj je trenutno konfiguriran za izvajanje navodil in priročnikov Ansible ter vgrajene datoteke inventarja. Ime ciljne oddaljene naprave je K8s Master Node.
  • Različica Pythona je 3.6 ali novejša, ki mora biti nameščena na napravi krmilnika Ansible. Lahko je tudi v ciljni oddaljeni gostiteljski napravi.
  • Različica modula openshift Pythona je 0.6 ali novejša. Potrebujemo tudi modul pyYAML različice 3.11 ali novejše. Oba modula morata biti nastavljena tako v oddaljeni strežniški napravi kot tudi v krmilni napravi.

primer:





Tukaj je prvi primer, kjer implementiramo Kubernetes v Ansible. Da bi to naredili, uporabimo katero koli okolje Ansible za implementacijo vira inventarja Kubernetes. Naslednji navedeni procesi se izvedejo v naslednjem scenariju z uporabo vtičnika Kubernetes Inventory:

  • Implementacija novega imenskega prostora v gruči K8s v Ansible.
  • Ustvarjanje poda nginx z uporabo priročnika Ansible.
  • Ustvarjanje uvedbe nginx v Ansible.

Da bi bili koncepti in izvedba enostavni za razumevanje, implementiramo primer v več korakih.



1. korak: Implementirajte nov imenski prostor v gruči K8s v Ansible

V prvem koraku ustvarimo playbook, da lahko vsebino zapišemo v formatu “.yml” v Ansible. Za ustvarjanje playbooka uporabimo naslednji ukaz:

[ korenina @ master ansible ] # nano  nginx_pod.yml

Zdaj je ustvarjen priročnik »pod.yml« in zagnan v novem terminalu Ansible. Začnemo pisati scenarij. V priročniku najprej definiramo različico API-ja, ki jo uporabljamo v pod Ansible in je »v1«. Imenski prostor, ki ga definiramo, je 'ansible-namespace'. Nato navedemo metapodatke ansible-namespace. V metapodatkih uporabljamo programsko opremo nginx in oznako, ki vsebuje stopnjo vrednosti vmesnega vmesnika. V specifikaciji playbooka navajamo ime in sliko, ki je shranjena v vsebniku; oba vsebujeta nginx.

2. korak: Ustvarite manifestni dokument v Ansibleu

Zdaj ustvarimo še en dokument v istem imeniku Ansible, ki je dokument o uvajanju v formatu '.yml'. Če želite ustvariti dokument manifesta, uporabite naslednji ukaz v terminalu Ansible:

[ korenina @ master ansible ] # nano nginx_deployment.yml

V dokumentu manifesta najprej ponovno definiramo različico aplikacije, ki je »app/v1«. Nato povemo, za kakšno datoteko gre, ali gre za razmestitveno datoteko. Nato definiramo imenski prostor, ki je ansible-namespace. Za izgradnjo izvedbe dve repliki znotraj ansible-namespace prikažeta številko sklopa. Slike nginx so 1.14.2, ki se zaženejo v sklopu. Parameter matchLabels zagotavlja oznake za pode in njihove specifikacije pod parametrom spec. Če se oznake na podih nekako ujemajo s tistimi, določenimi v informacijah o konfiguraciji, se implementacija zgodi v dokumentu manifesta v Ansibleu.

3. korak: Ustvarite priročnik za izvedbo Kubernetes v Ansible

Zdaj želimo ustvariti še eno knjigo iger v Ansibleu. V tem priročniku izvajamo funkcionalnost Kubernetesa. Uporabite naslednji ukaz za ustvarjanje playbooka:

[ korenina @ master ansible ] # nano kubernetes_main.yml

Zbirka iger je ustvarjena v istem imeniku, kjer sta prejšnji priročnik in dokument manifesta shranjena v Ansible. V playbooku najprej definiramo funkcionalnost playbooka, ki jo želimo implementirati. Za vzpostavitev povezave zagotovimo oddaljene gostitelje, na katere želimo ciljati. Tukaj ciljamo na »vse« gostitelje. Nato definiramo spremenljivko za preverjanje tolmača Python v Ansible z uporabo poti, kjer je shranjena. Zdaj pa določimo naloge v učbeniku. Najprej preverimo stanje naprave minikube. Nato v priročniku ustvarimo nov imenski prostor Kubernetes. Nato podvojite nginx_pod.yml in nginx_deployment .yml v oddaljeno napravo.

S temi dokumenti yml gradimo implementacijo pod v oddaljeni napravi. Nato preverimo, ali je Kubernetes pod prisoten ali ne na določeni lokaciji v oddaljeni napravi.

Po prekinitvi playbooka zdaj zgradimo datoteko inventarja, tako da vzpostavimo povezavo med krmilnikom Ansible in ciljnim oddaljenim gostiteljem.

Vse:
gostitelji:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ********
ansible_connection: ssh
ansible_port: 22

[ korenina @ master ansible ] # ansible-playbook kubernates_main.yml

Tukaj je želeni rezultat, kjer vidimo, da so naloge uspešno postavljene na ciljni stroj:

Ko je naloga postavljena na ciljni stroj, preverimo, ali je »ansible-namespace« v gruči Kubernetes ali ne. Uporabljamo naslednji ukaz »grep«:

[ korenina @ master ansible ] # kubectl pridobi imenski prostor | grep ansible-namespace

Če želite preveriti ustvarjeni pod v imenskem prostoru gruče Kubernetes, napišite naslednji ukaz za preverjanje:

[ korenina @ master ansible ] # kubectl get pods --namespace ansible-namespace

Kot vidite v prejšnjem rezultatu, dobimo pode, ki se izvajajo v napravi. Zdaj preverimo uvedbo, ki smo jo naredili v gruči Kubernetes. Uporabite naslednjo izjavo, da preverite že izvedene uvedbe:

[ korenina @ master ansible ] # kubectl pridobi razmestitve --namespace ansible-namespace

Zaključek

Izvedeli smo, kaj je vir inventarja Kubernetes v Ansibleu. Naučili smo se tudi, kako uporabljati inventar Kubernetes v Ansibleu. Nato smo implementirali primer, da bomo bolj jasno spoznali delovanje vira inventarja Kubernetes v Ansibleu.