Ansible Kubernetes -Inventarquelle

Ansible Kubernetes -Inventarquelle

In diesem Beitrag lernen wir, wie Sie das Kubernetes -Plugin im Ansible -Tool verwenden. In Ansible ist es schwierig, eine große Anzahl von Containern zu verwalten. Die Verwendung von Kubernetes in Ansible ist jedoch hilfreich beim Verwalten der Container. In diesem Leitfaden lernen wir, was die Kubernetes -Inventarquelle ist und wie sie in Ansible funktioniert.

Google hat die leicht zugängliche Verwaltungssoftware namens Kubernetes gestartet, die auch als K8S bezeichnet wird und zur Verwaltung der virtualisierten Konfigurationen über einen Remote-Satz von Maschinen mit Null-Down-Time-Installationsfunktionen, automatisierter Umkehr und Skalierbarkeit, die dem Kubernetes-Plugin mit extrem anpassungsfähig ist Architektur in Ansible. Durch die Verfügbarkeit von REST -APIs für die notwendige Funktionalität ist das Hauptziel von Kubernetes, die Komplexität zu verbergen, die mit der Kontrolle einer Reihe von Containern verbunden sind.

Die Konfiguration von Kubernetes basiert auf dem Client-Server. Standardmäßig gibt es jedoch nur einen Hauptserver, der als steuerlicher Host dient. In Kubernetes können wir auch Multi-Main-Controller für die Konfiguration von Kubernetes verwenden. Die K8s -Inventarquelle ist gelegentlich für Steuerungssysteme erforderlich und konfigurieren die Dienste auf dem Remote -Host, um Pods zu steuern. Es gibt jedoch Schwierigkeiten, spezifische Anweisungen dazu zu erhalten, wie dies zu tun ist. Infolgedessen implementieren wir dieses Tutorial zur Herstellung eines Ansible Playbooks, das die Schoten in einer Domäne extrahiert und eine Kubernetes -Inventarquelle erzeugt.

Voraussetzungen, die Kubernetes -Inventarquelle in Ansible zu verwenden

Um die Kubernetes -Inventarquelle in Ansible zu verwenden, gibt es in diesem Handbuch Bühnenprozessanweisungen oder -befehle. Stellen Sie sicher, dass Sie über die erforderliche Vorbereitung verfügen, wenn Sie sich darin bewegen möchten:

  • Um in einem Ansible -Szenario zu arbeiten, haben wir zuerst das Ansible -Tool auf dem Server eingerichtet und sicherstellen.11.7, damit wir das Kubernetes -Plugin problemlos verwenden können.
  • Um das Kubernetes -Plugin zu bewerten, benötigen wir ein Remote -Server -Gerät mit einem Kubernetes -Cluster integriert.
  • Der Remote -Host ist derzeit konfiguriert, um die Ansible -Anweisungen und -spielbücher sowie eine erstellte Bestandsdatei auszuführen. Der Name des Ziel -Remote -Geräts ist der K8s -Masterknoten.
  • Die Version von Python ist 3.6 oder darüber müssen auf dem Gerät des Ansible -Controllers installiert werden. Es kann auch im Ziel des Ziel -Remote -Host -Geräts enthalten sein.
  • Die Version des OpenShift -Moduls von Python beträgt 0.6 oder höher. Wir brauchen auch ein Pyyaml ​​-Modul von Version 3.11 oder höher. Beide Module müssen sowohl im Remote -Server -Gerät als auch im Controller -Gerät eingerichtet werden.

Beispiel:

Hier ist das allererste Beispiel, in dem wir die Kubernetes in Ansible implementieren. Dazu verwenden wir eine beliebige Ansible -Umgebung, um die Kubernetes -Inventarquelle zu implementieren. Die folgenden aufgeführten Prozesse werden im folgenden Szenario mit dem Kubernetes -Inventar -Plugin durchgeführt:

  • Implementierung des neuen Namespace im K8S -Cluster in Ansible.
  • Erstellung von Nginx Pod mit dem Ansible Playbook.
  • Schaffung der Nginx -Bereitstellung in Ansible.

Um die Konzepte und die Ausführung einfach zu verstehen, implementieren wir das Beispiel in einer Reihe von Schritten.

Schritt 1: Implementieren Sie den neuen Namespace im K8S -Cluster in Ansible

Im ersten Schritt erstellen wir das Spielbuch, damit wir den Inhalt in die “schreiben können“.YML ”-Format in Ansible. Um das Spielbuch zu erstellen, ist Folgendes der Befehl, den wir verwenden:

[root@master ansible]# nano nginx_pod.YML

Nun der „Schote“.YML ”Playbook wird erstellt und in das neue Terminal von Ansible gestartet. Wir beginnen das Skript zu schreiben. Im Spielbuch definieren wir zunächst die API -Version, die wir in der Ansible Pod verwenden, nämlich "v1". Der Namespace, den wir definieren, ist "Ansible-Namesspace". Dann listen wir die Metadaten des Ansible-Namesspace auf. In den Metadaten verwenden wir die Nginx -Software und das Etikett, das einen Wertstufe in der IT enthält. In der Spezifikation des Spielbuchs listen wir den Namen und das Bild auf, das im Container gespeichert ist. Beide enthalten den Nginx darin.

Schritt 2: Erstellen Sie das Manifestdokument in Ansible

Jetzt erstellen wir ein weiteres Dokument in demselben Verzeichnis von Ansible, das das Bereitstellungsdokument in der “ist“.YML ”-Format. Verwenden Sie zum Erstellen des Manifest -Dokuments den folgenden Befehl im Ansible -Terminal:

[root@master ansible]# nano nginx_deployment.YML

Im Manifest -Dokument definieren wir zunächst erneut die App -Version, die "App/V1" ist. Anschließend sagen wir, welche Art von Datei sie ist, ob es sich um eine Bereitstellungsdatei handelt. Dann definieren wir den Namespace, der ansible-namesspace ist. Um die Implementierung zu erstellen. Die Nginx -Bilder sind 1.14.2, die in der Pod auf den Markt gebracht werden. Der Parameter von MatchLabels enthält die Tags für die Pods und deren Spezifikationen unter dem Spezifikationsparameter. Wenn die Tags auf den Pods irgendwie mit denen übereinstimmen, die in den Konfigurationsinformationen angegeben sind.

Schritt 3: Erstellen Sie das Playbook for Kubernetes -Implementierung in Ansible

Jetzt möchten wir ein weiteres Spielbuch in Ansible erstellen. In diesem Spielbuch implementieren wir die Funktionalität von Kubernetes darin. Verwenden Sie den folgenden Befehl, um das Spielbuch zu erstellen:

[root@master ansible]# nano kubernetes_main.YML

Das Spielbuch wird in demselben Verzeichnis erstellt, in dem das vorherige Spielbuch und das Manifestdokument in Ansible gespeichert sind. Im Spielbuch definieren wir zunächst die Funktionalität des Spielbuchs, das wir implementieren möchten. Um die Verbindung aufzubauen, stellen wir den Remote -Hosts zur Verfügung, auf die wir abzielen möchten. Hier zielen wir auf "alle" Hosts ab. Als Nächst. Jetzt definieren wir die Aufgaben im Spielbuch. Zunächst überprüfen wir den Status des Minikube -Geräts. Als nächstes erstellen wir einen neuen Kubernetes -Namespace im Spielbuch. Dann duplizieren Sie den nginx_pod.YML und Nginx_Deployment .YML zum Remote -Gerät.

Durch diese YML -Dokumente erstellen wir die POD -Implementierung im Remote -Gerät. Anschließend prüfen wir, ob der Kubernetes -Pod an der angegebenen Stelle im Remote -Gerät vorhanden ist oder nicht.

Nach der Playbook -Beendigung erstellen wir jetzt die Inventardatei, damit wir die Verbindung zwischen dem Ansible Controller und dem Ziel -Remote -Host herstellen.

Alle:
Gastgeber:
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

Hier ist die gewünschte Ausgabe, bei der wir sehen, dass die Aufgaben erfolgreich auf der Zielmaschine platziert werden:

Nachdem die Aufgabe auf der Zielmaschine platziert wurde. Wir verwenden den folgenden "Grep" -Befehl:

[root@master Ansible]# kubectl Holen Sie sich den Namespace | Grep Ansible-Namesspace

Wenn Sie den erstellten POD im Namespace des Kubernetes -Cluster überprüfen möchten, schreiben Sie den folgenden Befehl, um zu überprüfen:

[root@master ansible]# kubectl Get Pods-Namesspace Ansible-namesspace

Wie Sie in der vorherigen Ausgabe sehen, erhalten wir die Pods, die auf dem Gerät ausgeführt werden. Jetzt überprüfen wir die Bereitstellung, die wir im Kubernetes -Cluster erstellt haben. Verwenden Sie die folgende Anweisung, um die bereits erstellten Bereitstellungen zu überprüfen:

[root@master ansible]# kubectl erhalten Bereitstellungen-namespace Ansible-namesspace

Abschluss

Wir haben gelernt, was die Kubernetes -Inventarquelle in Ansible ist. Wir haben auch gelernt, wie man das Kubernetes -Inventar in Ansible nutzt. Dann haben wir ein Beispiel implementiert, damit wir klarer über die Arbeit von Kubernetes Inventory Source in Ansible erfahren werden.