ANSIBE KUBERNETES FORTE INVENTRIA

ANSIBE KUBERNETES FORTE INVENTRIA

In questo post, impariamo come utilizzare il plug -in Kubernetes nello strumento Ansible. In Ansible, è difficile gestire un gran numero di contenitori. Ma l'utilizzo di Kubernetes in Ansible è utile durante la gestione dei contenitori. In questa guida, impareremo qual è la fonte di inventario di Kubernetes e come funziona in Ansible.

Google ha lanciato il software di gestione facilmente accessibile chiamato Kubernetes che è anche noto come K8S che viene utilizzato per gestire le configurazioni virtualizzate su un set remoto di macchine con funzionalità di installazione a zero in tempo, reversione automatizza Architettura in Ansible. Attraverso la disponibilità di API REST per la funzionalità necessaria, l'obiettivo principale di Kubernetes è quello di nascondere le complessità associate al controllo di una serie di contenitori.

La configurazione di Kubernetes si basa sul server client. Tuttavia, per impostazione predefinita, esiste un solo server principale che funge da host di controllo. In Kubernetes, possiamo anche utilizzare i controller multi-main per la configurazione di Kubernetes. La fonte di inventario K8S è occasionalmente necessaria per i sistemi di controllo e configurare i servizi sull'host remoto per controllare i pod. Ma ci sono difficoltà a ottenere istruzioni specifiche su come farlo. Di conseguenza, implementiamo questo tutorial su come creare un playbook Ansible che estrae i pod in un dominio e produce una fonte di inventario di Kubernetes.

Prerequisiti dell'utilizzo della fonte di inventario di Kubernetes in Ansible

Per utilizzare la fonte di inventario di Kubernetes in Ansible, ci sono istruzioni o comandi del processo in scena in questa guida. Assicurati di avere la preparazione necessaria se si desidera andare avanti:

  • Per lavorare in uno scenario ansible, abbiamo prima impostato lo strumento Ansible sul server e assicurarci di avere la versione 2 Ansible.11.7 in modo da poter facilmente usare il plugin Kubernetes.
  • Per valutare il plug -in Kubernetes, abbiamo bisogno di un dispositivo server remoto con un cluster Kubernetes integrato.
  • L'host remoto è attualmente configurato per eseguire le istruzioni e i playbook Ansible, nonché un file di inventario costruito. Il nome del dispositivo remoto target è il nodo principale K8S.
  • La versione di Python è 3.6 o sopra che deve essere installato sul dispositivo del controller Ansible. Può anche essere nel dispositivo host remoto target.
  • La versione del modulo OpenShift di Python è 0.6 o sopra. Abbiamo anche bisogno di un modulo Pyyaml ​​della versione 3.11 o sopra. Entrambi i moduli devono essere impostati nel dispositivo server remoto e nel dispositivo controller.

Esempio:

Ecco il primo esempio in cui implementiamo i Kubernetes in Ansible. Per fare ciò, utilizziamo qualsiasi ambiente Ansible per implementare la fonte di inventario di Kubernetes. I seguenti processi elencati vengono eseguiti nel seguente scenario utilizzando il plug -in di inventario di Kubernetes:

  • Implementazione del nuovo spazio dei nomi nel cluster K8S in Ansible.
  • Creazione di POD Nginx usando il playbook Ansible.
  • Creazione della distribuzione Nginx in Ansible.

Per rendere i concetti e l'esecuzione semplici da capire, implementiamo l'esempio in una serie di passaggi.

Passaggio 1: implementa il nuovo spazio dei nomi nel cluster K8S in Ansible

Nel primo passaggio, creiamo il playbook in modo da poter scrivere il contenuto in ".formato yml "in ansible. Per creare il playbook, quanto segue è il comando che utilizziamo:

[root@master ansible]# nano nginx_pod.YML

Ora, il "pod.YML "Playbook è stato creato e lanciato nel nuovo terminal di Ansible. Iniziamo a scrivere la sceneggiatura. Nel playbook, definiamo per la prima volta la versione API che utilizziamo nel pod Ansible che è "V1". Lo spazio dei nomi che definiamo è "ANSIBE-Namespace". Quindi, elenchiamo i metadati dello spazio di names ansible. Nei metadati, utilizziamo il software Nginx e l'etichetta che contiene un livello di valore frontend in esso. Nelle specifiche del playbook, elenchiamo il nome e l'immagine che viene archiviata nel contenitore; Entrambi contengono nginx in esso.

Passaggio 2: crea il documento manifest in Ansible

Ora, creiamo un altro documento nella stessa directory di Ansible che è il documento di distribuzione in ".Formato YML ". Per creare il documento manifest, utilizzare il seguente comando nel terminale Ansible:

[root@master ansible]# nano nginx_deployment.YML

Nel documento Manifest, definiamo per la prima volta la versione dell'app che è "App/V1". Quindi, diciamo che tipo di file è, se si tratta di un file di distribuzione. Quindi, definiamo lo spazio dei nomi che è uno spazio di nome ansible. Per costruire l'implementazione, due repliche all'interno dello spazio del nome Ansible mostrano il numero del pod. Le immagini Nginx sono 1.14.2 che vengono lanciati nel pod. Il parametro Matchlabels fornisce i tag per i pod e le loro specifiche con il parametro Spec. Se in qualche modo i tag sui pod corrispondono a quelli specificati nelle informazioni di configurazione, l'implementazione avviene nel documento manifest in Ansible.

Passaggio 3: crea il playbook per l'implementazione di Kubernetes in Ansible

Ora, vogliamo creare un altro playbook in Ansible. In questo playbook, implementiamo la funzionalità di Kubernetes in esso. Usa il comando seguente per creare il playbook:

[root@master ansible]# nano kubernetes_main.YML

Il playbook è creato nella stessa directory in cui il precedente playbook e il documento manifest sono archiviati in Ansible. Nel playbook, definiamo innanzitutto la funzionalità del playbook che vogliamo implementare. Per creare la connessione, forniamo gli host remoti che vogliamo target. Qui, prendiamo di mira gli host "tutti". Successivamente, definiamo la variabile per controllare l'interprete di Python in Ansible usando il percorso in cui è memorizzato. Ora definiamo i compiti nel playbook. Innanzitutto, controlliamo lo stato del dispositivo minikube. Successivamente, creiamo uno spazio dei nomi Kubernetes nel playbook. Quindi, duplicare il nginx_pod.YML e NGINX_DEPROPOCKMENT .YML al dispositivo remoto.

Attraverso questi documenti YML, creiamo l'implementazione del pod nel dispositivo remoto. Quindi, controlliamo se il pod Kubernetes è presente o meno nella posizione specificata nel dispositivo remoto.

Dopo la risoluzione del playbook, ora creiamo il file di inventario in modo da stabilire la connessione tra il controller Ansible e l'host remoto di destinazione.

Tutto:
ospiti:
k8s_master_node:
Ansible_host: 192.168.3.229
Ansible_User: Ansible
Ansible_Password: ********
Ansible_Connection: SSH
Ansible_port: 22
[root@master ansible]# ansible-playbook kubernates_main.YML

Ecco l'output desiderato in cui vediamo che le attività sono posizionate correttamente sulla macchina target:

Dopo che l'attività è stata inserita sul computer di destinazione, controlliamo se lo "spazio anameso dell'ansible" è nel cluster Kubernetes o no. Usiamo il seguente comando "grep":

[root@master ansible]# kubectl Ottieni uno spazio dei nomi | Spazio di names Grep Ansible

Se si desidera controllare il pod creato nello spazio dei nomi del cluster Kubernetes, scrivi il seguente comando per controllare:

[root@master ansible]# kubectl ottieni pods-namespace ansible-namespace

Come vedi nell'output precedente, otteniamo i pod in esecuzione sul dispositivo. Ora, controlliamo la distribuzione che abbiamo effettuato nel cluster Kubernetes. Utilizzare la seguente dichiarazione per verificare le distribuzioni già effettuate:

[root@master ansible]# kubectl ottieni distribuzioni-namespace ansible-namespace

Conclusione

Abbiamo imparato qual è la fonte di inventario di Kubernetes in Ansible. Abbiamo anche imparato a utilizzare l'inventario di Kubernetes ad Ansible. Quindi, abbiamo implementato un esempio in modo che impareremo più chiaramente sul funzionamento della fonte di inventario di Kubernetes in Ansible.