deploying kubernetes cluster Kubernetes-Cluster mit orcharhino provisionieren

Kubernetes-Cluster mit orcharhino provisionieren

Dieser Blogbeitrag befasst sich mit einer Funktion von orcharhino, dem so-genannten Application-Centric Deployment (ACD), und beschreibt den Prozess der Provisionierung eines Kubernetes-Clusters mit orcharhino. Es ermöglicht Administratoren, Systeme auf der Grundlage von Anwendungsvorlagen zu erstellen, und erleichtert den Betrieb mehrerer Instanzen/Versionen einer komplexen Anwendung.

Ein Beispiel dafür wäre ein Kubernetes-Cluster, das aus mehreren Systemen besteht, die miteinander arbeiten müssen. Wir haben dies als unsere interne Demoanwendung verwendet und auf GitHub veröffentlicht, und stellen es nun als Teil dieses Blogbeitrags vor.

Sie können unser ACD verwenden, um Anwendungen automatisiert bereitzustellen.

 

Was ist Application-Centric Deployment?

Wenn man Anwendungen mit orcharhino provisioniert, beginnt man normalerweise damit, die Systeme, welche die Anwendung bereitstellen sollen, zu erstellen und zu konfigurieren.

Bei komplexen Anwendungen, die aus mehreren Systemen bestehen, wird dies ziemlich mühsam, vor allem, wenn Sie die Anwendung mehrmals provisionieren möchten.
Sie können eine Anwendung erneut provisionieren, wenn Sie bestimmte Änderungen vornehmen oder sie beispielsweise in einer Produktions- und einer Entwicklungsumgebung verwenden möchten.
Um die Provisionierung zu vereinfachen, wird in der Regel mit Lösungen wie Ansible oder Puppet gearbeitet.

Eine typische Provisionierung mit Ansible besteht aus den folgenen Schritten:

  1. Systeme erstellen
  2. Systeme provisionieren
  3. Inventar erstellen und Systeme gruppieren
  4. Gruppenvariablen für die Umgebung anpassen
  5. Ansible-Rolle laufen lassen, um die Anwendung im Verzeichnis zu provisionieren

Hinweis: All diese Schritte müssen jedes Mal wiederholt werden, wenn Sie eine neue Anwendungsinstanz provisonieren möchten.

orcharhino mit ACD ist eine viel effizientere Lösung für diesen Arbeitsablauf.
Mit einem bestehenden Ansible Playbook und Systemgruppen wird die Provisionierung von Anwendungen so einfach wie das Anpassen von Variablen und das Klicken auf Deploy.

Führen Sie die folgenden Schritte durch, um Ihre Anwendung mit ACD zu provisionieren:

  1. Einmalig: Importieren Sie das Ansible Playbook, mit dem Sie Ihre Anwendung auf vorkonfigurierten Systemen provisionieren.
  2. Einmalig: Erstellen Sie eine Anwendungsdefinition, in der Sie die Host Groups und die gültige Anzahl der Instanzen pro Service angeben.
  3. Definieren Sie eine Anwendungsinstanz.
  4. Optional: Passen Sie die Gruppen- und Systemvariablen für diese Instanz an.
  5. Klicken Sie auf Deploy.

orcharhino erstellt alle erforderlichen Systeme und provisioniert sie entsprechend ihrer Host Group.

Wenn alle Systeme eingerichtet sind, werden ein Verzeichnis generiert und das Ansible Playbook ausgeführt.

Provisionierung eines Kubernetes-Clusters

Die Provisionierung eines Kubernetes-Clusters, auch mit Anwendungen darauf, ist ein Paradebeispiel für die Vorzüge von ACD. ATIX bietet ein Playbook an, das einen Kubernetes-Cluster auf der Basis von containerd mit Calico oder Cilium für die Containervernetzung provisioniert.
Optional konfiguriert es einen HAProxy-Knoten, um einen hochverfügbaren API-Server zur Verfügung zu stellen.

Es provisioniert vier Systemkategorien:

  • Control-Plane-Systeme

    • Sie können die notwendige Menge selbst festlegen.

    • Diese Systeme werden im Kubernetes-Cluster zu Knoten der Control Plane.

  • Bootstrap-Systeme

    • Genau ein System muss ein Bootstrap-System sein.

    • Mit diesem System wird der Cluster am Anfang eingerichtet, und dort wird auch die „kubeconfig“-Datei  gespeichert.

    • Außerdem wird dieser Knoten wie jeder andere Knoten der Control Plane provisioniert und zum ersten Masterknoten.

  • Worker-Systeme

    • Sie können die notwendige Menge selbst festlegen.

    • Diese Systeme werden im Cluster zu Worker-Knoten.

  • HAProxy-Systeme

    • Momentan kann es maximal ein HAProxy-System geben.

    • Dieses System stellt eine hohe Verfügbarkeit des Kubernetes API Server sicher, indem es Anfragen an die Knoten der Control Plane weiterleitet.

Optional kann das Playbook, je nach Konfiguration über Gruppenvariablen, ein Kubernetes Dashboard provisionieren.

Das browserbasierte Dashboard liefert Ihnen Informationen über Ihren Cluster.

Kubernetes-Cluster mit orcharhino provisionieren

In einem ersten Schritt importieren Sie das Playbook, das Kubernetes auf den vorkonfigurierten Systemen provisioniert.

Kubernetes-Cluster mit orcharhino provisionieren

Wenn Sie die Anwendung definieren, referenzieren Sie das Playbook und definieren die Systemgruppen, die orcharhino provisionieren soll.

Kubernetes-Cluster mit orcharhino provisionieren

Um die Anwendung zu provisionieren, erstellen Sie eine Anwendungsinstanz, passen die Einstellungen an und klicken zum Speichern auf Submit.

Kubernetes-Cluster mit orcharhino provisionieren

Klicken Sie jetzt auf Deploy und warten Sie, bis Ihre Instanz bereit ist.

Wie man Kubernetes in Zukunft mit ACD provisioniert

Zum Zeitpunkt der Erstellung dieses Artikels befindet sich das Projekt noch in einem frühen Stadium. Daher fehlen noch einige Funktionen, die in den meisten Kubernetes-Clustern vorhanden sein sollten.
Dazu gehören die Überwachung des Zustands des Clusters und die Aggregation von Protokollen.
Während es derzeit möglich ist, diese Aufgaben manuell durchzuführen, könnten in Zukunft Lösungen zusammen mit dem Cluster bereitgestellt werden.

 

The following two tabs change content below.

Tobias Manske

Neueste Artikel von Tobias Manske (alle ansehen)