Ansible Kubernetes (K8s) laoallikas

Ansible Kubernetes K8s Laoallikas



Selles postituses õpime, kuidas kasutada Ansible tööriistas Kubernetese pistikprogrammi. Ansibles on raske hallata suurt hulka konteinereid. Kuid Kubernetese kasutamine Ansible'is on konteinerite haldamisel kasulik. Sellest juhendist õpime, mis on Kubernetese varude allikas ja kuidas see Ansibles töötab.

Google tõi turule hõlpsasti ligipääsetava haldustarkvara nimega Kubernetes, mida tuntakse ka kui K8s, mida kasutatakse virtualiseeritud konfiguratsioonide haldamiseks masinate kaugkomplekti kaudu ilma seisakuta installifunktsioonide, automaatse tagasipööramise ja skaleeritavusega, mis pakub Kubernetese pistikprogrammile äärmiselt kohandatavat. arhitektuur Ansible'is. Tänu REST API-de kättesaadavusele vajalike funktsioonide jaoks on Kubernetese peamine eesmärk varjata mitmete konteinerite juhtimisega seotud keerukusi.







Kubernetese konfiguratsioon põhineb kliendiserveril. Vaikimisi on aga ainult üks peamine server, mis toimib kontrolliva hostina. Kubernetesis saame Kubernetese konfigureerimiseks kasutada ka mitme peamise kontrollereid. K8s-i varude allikas on aeg-ajalt vajalik juhtimissüsteemide jaoks ja kaughosti teenuste konfigureerimiseks kaustade juhtimiseks. Kuid konkreetsete juhiste saamine selle kohta on keeruline. Selle tulemusena rakendame seda õpetust selle kohta, kuidas luua Ansible Playbook, mis eraldab domeenis olevad kaustad ja loob Kubernetese varude allika.



Kubernetes'i inventariallika kasutamise eeldused Ansible'is

Kubernetese laoallika kasutamiseks Ansible'is on selles juhendis etapiprotsessi juhised või käsud. Veenduge, et teil oleks vajalik ettevalmistus, kui soovite selles edasi liikuda:



  • Ansible'i stsenaariumi järgi töötamiseks seadistame esmalt serveris Ansible'i tööriista ja veenduge, et teil oleks Ansible versioon 2.11.7, et saaksime Kubernetes'i pistikprogrammi hõlpsalt kasutada.
  • Kubernetese pistikprogrammi hindamiseks vajame sisseehitatud Kubernetese klastriga kaugserveri seadet.
  • Kaughost on praegu konfigureeritud täitma Ansible juhiseid ja esitusraamatuid, samuti sisseehitatud inventuurifaili. Sihtkaugseadme nimi on K8s Master Node.
  • Pythoni versioon on 3.6 või uuem, mis tuleb Ansible kontrolleri seadmesse installida. See võib olla ka sihtkaughostiseadmes.
  • Pythoni openshift mooduli versioon on 0.6 või uuem. Vajame ka pyYAML-i moodulit versiooniga 3.11 või uuema versiooniga. Mõlemad moodulid peavad olema seadistatud nii kaugserveri seadmes kui ka kontrolleri seadmes.

Näide:





Siin on kõige esimene näide, kus rakendame Ansible'is Kubernetese. Selleks kasutame Kubernetese laoallika juurutamiseks mis tahes Ansible keskkonda. Järgmised loetletud protsessid viiakse läbi järgmise stsenaariumi korral, kasutades Kubernetes Inventory pluginat:

  • Uue nimeruumi juurutamine Ansible'i K8s klastris.
  • Nginxi podi loomine Ansible mänguraamatu abil.
  • Nginxi juurutamise loomine Ansible'is.

Mõistete ja teostuse hõlpsaks mõistmiseks rakendame näidet mitmes etapis.



1. toiming: rakendage Ansible'i K8s-klastris uus nimeruum

Esimeses etapis loome mänguraamatu, et saaksime Ansible'is sisu '.yml'-vormingus kirjutada. Mänguraamatu loomiseks kasutame järgmist käsku:

[ juur @ meister võimalik ] # nano nginx_pod.yml

Nüüd luuakse mänguraamat 'pod.yml' ja see käivitatakse Ansible'i uude terminali. Alustame stsenaariumi kirjutamist. Mänguraamatus määratleme esmalt API versiooni, mida kasutame Ansible podis, mis on 'v1'. Meie määratletud nimeruum on 'ansible-namespace'. Seejärel loetleme ansible-namespace’i metaandmed. Metaandmetes kasutame nginxi tarkvara ja silti, mis sisaldab väärtustaseme esiosa. Esitusraamatu spetsifikatsioonis loetleme konteinerisse salvestatud nime ja pildi; mõlemad sisaldavad nginxi.

2. samm: looge Ansible'is manifest

Nüüd loome Ansible'i samas kataloogis teise dokumendi, mis on juurutusdokument vormingus '.yml'. Manifesti dokumendi loomiseks kasutage Ansible terminalis järgmist käsku:

[ juur @ meister võimalik ] # nano nginx_deployment.yml

Manifesti dokumendis määratleme esmalt uuesti rakenduse versiooni, mis on 'app/v1'. Seejärel ütleme, mis tüüpi fail see on, kas see on juurutusfail. Seejärel määratleme nimeruumi, mis on ansible-namespace. Rakenduse koostamiseks näitavad kaks koopiat ansible-nimeruumis kausta numbrit. Nginxi kujutised on 1.14.2, mis käivitatakse podis. Parameeter matchLabels pakub spetsifikatsiooniparameetri all kaunade silte ja nende spetsifikatsioone. Kui kaustadel olevad sildid kattuvad kuidagi konfiguratsiooniteabes määratutega, toimub juurutamine Ansible'i manifesti dokumendis.

3. samm: looge Ansible'is Kubernetese juurutamise käsiraamat

Nüüd tahame Ansible'is luua veel ühe mänguraamatu. Selles mänguraamatus rakendame selles Kubernetese funktsioone. Kasutage mänguraamatu loomiseks järgmist käsku:

[ juur @ meister võimalik ] # nano kubernetes_main.yml

Mänguraamat luuakse samas kataloogis, kus Ansible'is on salvestatud eelmine esitusraamat ja manifesti dokument. Mänguraamatus määratleme kõigepealt selle mänguraamatu funktsionaalsuse, mida soovime rakendada. Ühenduse loomiseks pakume kaughostid, mida tahame sihtida. Siin sihime 'kõiki' hoste. Järgmisena määratleme muutuja Pythoni tõlgi kontrollimiseks Ansible'is, kasutades selle salvestamise teed. Nüüd määratleme ülesanded mänguraamatus. Esiteks kontrollime minikube seadme olekut. Järgmisena loome mänguraamatus uue Kubernetese nimeruumi. Seejärel dubleerige failid nginx_pod.yml ja nginx_deployment .yml kaugseadmesse.

Nende yml-dokumentide kaudu loome kaugseadmesse kaugrakenduse. Seejärel kontrollime, kas Kubernetese pod on kaugseadmes määratud asukohas olemas või mitte.

Pärast mänguraamatu lõpetamist loome nüüd inventuurifaili nii, et loome ühenduse Ansible-kontrolleri ja sihtkaughosti vahel.

Kõik:
võõrustajad:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ********
ansible_connection: ssh
ansible_port: 22

[ juur @ meister võimalik ] # ansible-playbook kubernates_main.yml

Siin on soovitud väljund, kus näeme, et ülesanded on sihtmasinasse edukalt paigutatud:

Pärast ülesande paigutamist sihtmasinasse kontrollime, kas 'ansible-namespace' on Kubernetese klastris või mitte. Kasutame järgmist käsku 'grep':

[ juur @ meister võimalik ] # kubectl saada nimeruum | grep ansible-namespace

Kui soovite kontrollida loodud taskut Kubernetese klastri nimeruumis, kirjutage kontrollimiseks järgmine käsk:

[ juur @ meister võimalik ] # kubectl get pods --namespace ansible-namespace

Nagu eelmises väljundis näete, saame seadmes töötavad kaunad. Nüüd kontrollime Kubernetese klastris tehtud juurutamist. Kasutage juba tehtud juurutuste kontrollimiseks järgmist avaldust:

[ juur @ meister võimalik ] # kubectl saada juurutused --namespace ansible-namespace

Järeldus

Saime teada, mis on Ansibles Kubernetese varude allikas. Õppisime ka, kuidas Ansibles Kubernetese inventari kasutada. Seejärel rakendasime näite, et saaksime Ansible'is Kubernetes'i varude allika töö kohta selgemalt teada.