Ansible Kubernetes (K8s) -inventaarion lähde

Ansible Kubernetes K8s Inventaarion Lahde



Tässä viestissä opimme käyttämään Kubernetes-laajennusta Ansible-työkalussa. Ansiblessa on vaikea hallita suuria määriä kontteja. Mutta Kubernetesin käyttäminen Ansiblessa on hyödyllistä säiliöiden hallinnassa. Tässä oppaassa opimme, mikä on Kubernetes-varastolähde ja miten se toimii Ansiblessa.

Google julkaisi helposti saatavilla olevan hallintaohjelmiston nimeltä Kubernetes, joka tunnetaan myös nimellä K8s. Sitä käytetään virtualisoitujen konfiguraatioiden hallintaan etäkonejoukon kautta ilman käyttökatkoja asennusominaisuuksia, automaattista palautusta ja skaalautuvuutta, joka tarjoaa Kubernetes-laajennukselle erittäin mukautuvan arkkitehtuuri Ansiblessa. REST-sovellusliittymien saatavuuden ansiosta Kubernetesin ensisijainen tavoite on piilottaa monimutkaisuus, joka liittyy useiden säiliöiden hallintaan.





Kubernetesin määritys perustuu asiakaspalvelimeen. Oletuksena on kuitenkin vain yksi pääpalvelin, joka toimii ohjaavana isäntänä. Kubernetesissa voimme käyttää myös monipääohjaimia Kubernetesin määrittämiseen. K8s-varastolähde on toisinaan tarpeen ohjausjärjestelmille ja etäisännän palvelujen määrittämiseksi podien ohjaamiseksi. Mutta on vaikeuksia saada tarkkoja ohjeita kuinka tehdä niin. Tämän seurauksena toteutamme tämän opetusohjelman Ansible Playbookin luomisesta, joka poimii verkkotunnuksen podit ja tuottaa Kubernetes-inventaarion lähteen.



Edellytykset Kubernetes-inventaarion lähteelle Ansiblessa

Jotta voit käyttää Kubernetes-inventaarilähdettä Ansiblessa, tässä oppaassa on vaiheittaiset prosessiohjeet tai -komennot. Varmista, että sinulla on tarvittavat valmistelut, jos haluat edetä siinä:



  • Toimiaksemme Ansible-skenaariossa määritämme ensin Ansible-työkalun palvelimelle ja varmistamme, että sinulla on Ansible-versio 2.11.7, jotta voimme helposti käyttää Kubernetes-laajennusta.
  • Kubernetes-laajennuksen arvioimiseksi tarvitsemme etäpalvelinlaitteen, jossa on sisäänrakennettu Kubernetes-klusteri.
  • Etäisäntä on tällä hetkellä määritetty suorittamaan Ansible-ohjeet ja pelikirjat sekä sisäänrakennettu inventaariotiedosto. Kohdeetälaitteen nimi on K8s Master Node.
  • Pythonin versio on 3.6 tai uudempi, ja se on asennettava Ansible-ohjaimen laitteeseen. Se voi olla myös kohdeetäisäntälaitteessa.
  • Pythonin openshift-moduulin versio on 0.6 tai uudempi. Tarvitsemme myös pyYAML-moduulin, jonka versio on 3.11 tai uudempi. Molemmat moduulit on asennettava etäpalvelinlaitteeseen sekä ohjainlaitteeseen.

Esimerkki:





Tässä on aivan ensimmäinen esimerkki, jossa toteutamme Kubernetesin Ansiblessa. Käytämme tätä varten mitä tahansa Ansible-ympäristöä Kubernetes-varastolähteen toteuttamiseen. Seuraavat luetellut prosessit suoritetaan seuraavassa skenaariossa Kubernetes Inventory Plugin -laajennuksella:

  • Uuden nimitilan käyttöönotto Ansiblen K8s-klusterissa.
  • Nginx podin luominen Ansible playbookin avulla.
  • Nginx-asennuksen luominen Ansiblessa.

Jotta käsitteet ja toteutus olisivat helppoja ymmärtää, toteutamme esimerkin useissa vaiheissa.



Vaihe 1: Ota uusi nimiavaruus käyttöön Ansiblen K8s-klusteriin

Ensimmäisessä vaiheessa luomme pelikirjan, jotta voimme kirjoittaa sisällön '.yml'-muodossa Ansiblessa. Pelikirjan luomiseksi käytämme seuraavaa komentoa:

[ juuri @ mestari mahdollinen ] # nano  nginx_pod.yml

Nyt 'pod.yml' -pelikirja on luotu ja käynnistetty Ansiblen uuteen terminaaliin. Aloitamme käsikirjoituksen kirjoittamisen. Ohjekirjassa määritämme ensin API-version, jota käytämme Ansible-podissa, joka on 'v1'. Määrittelemämme nimiavaruus on 'ansible-namespace'. Sitten luettelemme ansible-namespacen metatiedot. Metatiedoissa käytämme nginx-ohjelmistoa ja etikettiä, joka sisältää arvotason käyttöliittymän. Ohjekirjan spesifikaatioissa luetellaan nimi ja kuva, joka on tallennettu säilöön. molemmat sisältävät nginxin.

Vaihe 2: Luo manifestiasiakirja Ansiblessa

Nyt luomme toisen asiakirjan samaan Ansible-hakemistoon, joka on käyttöönottoasiakirja '.yml'-muodossa. Luo manifestiasiakirja käyttämällä seuraavaa komentoa Ansible-päätteessä:

[ juuri @ mestari mahdollinen ] # nano nginx_deployment.yml

Luetteloasiakirjassa määritämme ensin uudelleen sovelluksen version, joka on 'app/v1'. Sitten kerromme, millainen tiedosto se on, onko se käyttöönottotiedosto. Sitten määritämme nimiavaruuden, joka on ansible-namespace. Toteutuksen rakentamiseksi kaksi ansible-namespacen sisällä olevaa replikaa näyttävät podin numeron. Nginx-kuvat ovat 1.14.2, jotka käynnistetään podissa. MatchLabels-parametri tarjoaa tunnisteet podille ja niiden tekniset tiedot spec-parametrin alla. Jos podien tagit vastaavat jotenkin määritystiedoissa määritettyjä, käyttöönotto tapahtuu Ansiblen luettelodokumentissa.

Vaihe 3: Luo ohjekirja Kubernetes-toteutukseen Ansiblessa

Nyt haluamme luoda toisen pelikirjan Ansibleen. Tässä pelikirjassa toteutamme Kubernetesin toiminnallisuuden siinä. Käytä seuraavaa komentoa pelikirjan luomiseen:

[ juuri @ mestari mahdollinen ] # nano kubernetes_main.yml

Pelikirja luodaan samaan hakemistoon, johon edellinen pelikirja ja manifestiasiakirja on tallennettu Ansiblessa. Ohjekirjassa määrittelemme ensin sen pelikirjan toiminnallisuuden, jonka haluamme toteuttaa. Yhteyden muodostamista varten tarjoamme etäisännät, joihin haluamme kohdistaa. Tässä kohdistamme 'kaikkiin' isänteihin. Seuraavaksi määritämme muuttujan Ansiblen Python-tulkin tarkistamiseksi polun avulla, johon se on tallennettu. Nyt määrittelemme tehtävät pelikirjassa. Ensin tarkistamme minikube-laitteen tilan. Seuraavaksi luomme pelikirjaan uuden Kubernetes-nimitilan. Kopioi sitten tiedostot nginx_pod.yml ja nginx_deployment .yml etälaitteeseen.

Näiden yml-dokumenttien avulla rakennamme pod-toteutuksen etälaitteeseen. Tämän jälkeen tarkistamme, onko Kubernetes-podikko etälaitteen määritetyssä paikassa vai ei.

Pelikirjan lopettamisen jälkeen rakennamme nyt inventaariotiedoston niin, että muodostamme yhteyden Ansible-ohjaimen ja kohteena olevan etäisännän välille.

Kaikki:
isännät:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: *******
ansible_connection: ssh
ansible_port: 22

[ juuri @ mestari mahdollinen ] # ansible-playbook kubernates_main.yml

Tässä on haluttu tulos, jossa näemme, että tehtävät on sijoitettu onnistuneesti kohdekoneeseen:

Kun tehtävä on asetettu kohdekoneelle, tarkistamme, onko 'ansible-namespace' Kubernetes-klusterissa vai ei. Käytämme seuraavaa 'grep' -komentoa:

[ juuri @ mestari mahdollinen ] # kubectl get namespace | grep ansible-namespace

Jos haluat tarkistaa luodun podin Kubernetes-klusterin nimiavaruudessa, kirjoita seuraava komento tarkistaaksesi:

[ juuri @ mestari mahdollinen ] # kubectl get pods --namespace ansible-namespace

Kuten edellisestä lähdöstä näet, saamme laitteessa toimivat podit. Nyt tarkistamme Kubernetes-klusterissa tekemämme käyttöönoton. Käytä seuraavaa lausetta tarkistaaksesi jo tehdyt käyttöönotot:

[ juuri @ mestari mahdollinen ] # kubectl get deployments --namespace ansible-namespace

Johtopäätös

Opimme, mikä on Kubernetes-varastolähde Ansiblessa. Opimme myös hyödyntämään Kubernetes-inventaariota Ansiblessa. Sitten toteutimme esimerkin, jotta opimme selkeämmin Kubernetes-varastolähteen toiminnasta Ansiblessa.