Ansible Kubernetes (K8s) inventāra avots

Ansible Kubernetes K8s Inventara Avots



Šajā ziņojumā mēs uzzinām, kā Ansible rīkā izmantot spraudni Kubernetes. Ansible ir grūti pārvaldīt lielu skaitu konteineru. Bet Kubernetes izmantošana Ansible ir noderīga, pārvaldot konteinerus. Šajā rokasgrāmatā mēs uzzināsim, kas ir Kubernetes krājumu avots un kā tas darbojas Ansible.

Google izlaida viegli pieejamu pārvaldības programmatūru Kubernetes, kas pazīstama arī kā K8s, ko izmanto, lai pārvaldītu virtualizētas konfigurācijas attālā iekārtu komplektā ar nulles dīkstāves instalēšanas funkcijām, automātisku reversiju un mērogojamību, kas nodrošina Kubernetes spraudni ar īpaši pielāgojamu. arhitektūra Ansible. Pateicoties REST API pieejamībai nepieciešamajai funkcionalitātei, Kubernetes galvenais mērķis ir slēpt sarežģījumus, kas saistīti ar vairāku konteineru kontroli.







Kubernetes konfigurācijas pamatā ir klients-serveris. Tomēr pēc noklusējuma ir tikai viens galvenais serveris, kas darbojas kā kontrolējošais resursdators. Programmā Kubernetes mēs varam izmantot arī vairāku galveno kontrolierus Kubernetes konfigurēšanai. K8s krājumu avots dažkārt ir nepieciešams vadības sistēmām un attālā resursdatora pakalpojumu konfigurēšanai, lai kontrolētu podi. Taču ir grūti iegūt konkrētus norādījumus, kā to izdarīt. Rezultātā mēs ieviešam šo pamācību par to, kā izveidot Ansible Playbook, kas izvelk domēna aplikumus un izveido Kubernetes krājumu avotu.



Kubernetes inventāra avota izmantošanas priekšnosacījumi programmā Ansible

Lai pakalpojumā Ansible izmantotu Kubernetes krājumu avotu, šajā rokasgrāmatā ir ietverti posma procesa norādījumi vai komandas. Pārliecinieties, vai jums ir nepieciešamā sagatavošanās, ja vēlaties tajā virzīties uz priekšu:



  • Lai strādātu Ansible scenārijā, vispirms serverī iestatām rīku Ansible un pārliecinieties, vai jums ir Ansible versija 2.11.7, lai mēs varētu ērti izmantot spraudni Kubernetes.
  • Lai novērtētu Kubernetes spraudni, mums ir nepieciešama attālā servera ierīce ar iebūvētu Kubernetes klasteru.
  • Attālais resursdators pašlaik ir konfigurēts, lai izpildītu Ansible instrukcijas un rokasgrāmatas, kā arī iebūvēto inventāra failu. Mērķa attālās ierīces nosaukums ir K8s galvenais mezgls.
  • Python versija ir 3.6 vai jaunāka, kas jāinstalē Ansible kontrollera ierīcē. Tas var būt arī mērķa attālajā resursdatora ierīcē.
  • Python openshift moduļa versija ir 0.6 vai jaunāka. Mums ir nepieciešams arī pyYAML modulis ar versiju 3.11 vai jaunāku versiju. Abi moduļi ir jāiestata attālā servera ierīcē, kā arī kontrollera ierīcē.

Piemērs:





Šis ir pats pirmais piemērs, kur mēs ieviešam Kubernetes Ansible. Lai to izdarītu, mēs izmantojam jebkuru Ansible vidi, lai ieviestu Kubernetes krājumu avotu. Tālāk norādītie uzskaitītie procesi tiek veikti šādā scenārijā, izmantojot Kubernetes krājumu spraudni:

  • Jaunās nosaukumvietas ieviešana K8s klasterī pakalpojumā Ansible.
  • Nginx pod izveide, izmantojot Ansible rokasgrāmatu.
  • Nginx izvietošanas izveide Ansible.

Lai jēdzieni un izpilde būtu vienkārši saprotami, mēs īstenojam piemēru vairākās darbībās.



1. darbība. Ieviesiet jauno nosaukumvietu K8s klasterī programmā Ansible

Pirmajā darbībā mēs izveidojam rokasgrāmatu, lai Ansible varētu rakstīt saturu “.yml” formātā. Lai izveidotu rokasgrāmatu, mēs izmantojam šādu komandu:

[ sakne @ meistars iespējams ] # nano nginx_pod.yml

Tagad rokasgrāmata “pod.yml” ir izveidota un palaista jaunajā Ansible terminālī. Mēs sākam rakstīt scenāriju. Rokasgrāmatā mēs vispirms definējam API versiju, ko izmantojam Ansible podā, kas ir “v1”. Mūsu definētā nosaukumvieta ir “ansible-namespace”. Pēc tam mēs uzskaitām ansible-namespace metadatus. Metadatos mēs izmantojam nginx programmatūru un etiķeti, kas satur vērtību frontend līmeni. Rokasgrāmatas specifikācijā mēs uzskaitām nosaukumu un attēlu, kas tiek glabāts konteinerā; abi satur nginx.

2. darbība. Izveidojiet manifesta dokumentu programmā Ansible

Tagad mēs izveidojam citu dokumentu tajā pašā Ansible direktorijā, kas ir izvietošanas dokuments “.yml” formātā. Lai izveidotu manifesta dokumentu, terminālī Ansible izmantojiet šādu komandu:

[ sakne @ meistars iespējams ] # nano nginx_deployment.yml

Manifesta dokumentā mēs vispirms vēlreiz definējam lietotnes versiju, kas ir “app/v1”. Pēc tam mēs pasakām, kāda veida fails tas ir, vai tas ir izvietošanas fails. Pēc tam mēs definējam nosaukumvietu, kas ir ansible-namespace. Lai izveidotu ieviešanu, divās replikās ansible-namespace iekšpusē tiek parādīts aplikuma numurs. Nginx attēli ir 1.14.2, kas tiek palaisti podā. Parametrs matchLabels nodrošina aplikāciju tagus un to specifikācijas zem specifikācijas parametra. Ja aplikumu tagi kaut kādā veidā atbilst tiem, kas norādīti konfigurācijas informācijā, ieviešana notiek manifesta dokumentā pakalpojumā Ansible.

3. darbība. Izveidojiet rokasgrāmatu Kubernetes ieviešanai programmā Ansible

Tagad mēs vēlamies izveidot vēl vienu rokasgrāmatu Ansible. Šajā rokasgrāmatā mēs tajā ieviešam Kubernetes funkcionalitāti. Lai izveidotu rokasgrāmatu, izmantojiet šo komandu:

[ sakne @ meistars iespējams ] # nano kubernetes_main.yml

Rokasgrāmata tiek izveidota tajā pašā direktorijā, kurā Ansible tiek glabāta iepriekšējā rokasgrāmata un manifesta dokuments. Rokasgrāmatā mēs vispirms definējam rokasgrāmatas funkcionalitāti, kuru vēlamies ieviest. Lai izveidotu savienojumu, mēs nodrošinām attālos saimniekdatorus, kurus vēlamies atlasīt. Šeit mēs mērķējam uz “visiem” saimniekiem. Tālāk mēs definējam mainīgo, lai pārbaudītu Python tulku programmā Ansible, izmantojot ceļu, kurā tas tiek glabāts. Tagad mēs definējam uzdevumus rokasgrāmatā. Pirmkārt, mēs pārbaudām minikube ierīces statusu. Pēc tam rokasgrāmatā izveidojam jaunu Kubernetes nosaukumvietu. Pēc tam attālajā ierīcē dublējiet failus nginx_pod.yml un nginx_deployment .yml.

Izmantojot šos yml dokumentus, mēs izveidojam aplikācijas ieviešanu attālajā ierīcē. Pēc tam mēs pārbaudām, vai Kubernetes pod atrodas norādītajā vietā attālajā ierīcē.

Pēc rokasgrāmatas darbības pārtraukšanas mēs izveidojam inventāra failu, lai izveidotu savienojumu starp Ansible kontrolieri un mērķa attālo resursdatoru.

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

[ sakne @ meistars iespējams ] # ansible-playbook kubernates_main.yml

Šeit ir vēlamā izvade, kurā redzam, ka uzdevumi ir veiksmīgi ievietoti mērķa mašīnā:

Kad uzdevums ir ievietots mērķa mašīnā, mēs pārbaudām, vai “ansible-namespace” atrodas Kubernetes klasterī vai nav. Mēs izmantojam šādu komandu “grep”:

[ sakne @ meistars iespējams ] # kubectl get namespace | grep ansible-namespace

Ja vēlaties pārbaudīt izveidoto aplikumu Kubernetes klastera nosaukumvietā, ierakstiet šo komandu, lai pārbaudītu:

[ sakne @ meistars iespējams ] # kubectl get pods --namespace ansible-namespace

Kā redzat iepriekšējā izvadē, mēs iegūstam pākstis, kas darbojas ierīcē. Tagad mēs pārbaudām izvietošanu, ko veicām Kubernetes klasterī. Izmantojiet šo paziņojumu, lai pārbaudītu jau veiktās izvietošanas:

[ sakne @ meistars iespējams ] # kubectl get deployments --namespace ansible-namespace

Secinājums

Mēs uzzinājām, kas ir Kubernetes krājumu avots Ansible. Mēs arī uzzinājām, kā izmantot Kubernetes inventāru Ansible. Pēc tam mēs ieviesām piemēru, lai skaidrāk uzzinātu par Kubernetes krājumu avota darbību Ansible.