Von der Einrichtung bis zum Deployment: Ein praktischer Leitfaden für Automatisierte CI/CD-Pipelines mit Jenkins X und Kubernetes

Die Verwaltung von Anwendungen in einer Kubernetes-Umgebung kann eine komplexe Aufgabe sein, insbesondere wenn es um Paketmanagement und CI/CD geht. In diesem Blogbeitrag werden wir uns mit zwei wichtigen Tools befassen, die speziell für Kubernetes entwickelt wurden, um diese Herausforderungen zu bewältigen: Helm und Jenkins X.

Schritt 1: Helm – Das Kubernetes-Paketmanagement:

Helm ist ein Paketmanager, der speziell für Kubernetes entwickelt wurde und von der Cloud Native Computing Foundation (CNCF) in Zusammenarbeit mit Microsoft, Google, Bitnami und der Helm-Community gepflegt wird. Ähnlich wie bei Linux-Paketmanagern wie APT oder YUM versteckt Helm die Komplexität der Installation von Anwendungen und deren Abhängigkeiten hinter den Kulissen. Dies erleichtert die gemeinsame Nutzung und Verwaltung von Anwendungen erheblich. Helm verwendet sogenannte „Charts“, um Anwendungen in vordefinierte Ressourcen zu verpacken, die mit einfachen Befehlen verwaltet werden können.

# Beispiel eines Helm Charts für eine einfache Anwendung
apiVersion: v1
appVersion: „1.0“
description: A simple nginx application
name: my-nginx
version: 1.0.0

Schritt 2: Jenkins X – CI/CD für Kubernetes:

Jenkins X ist ein CI/CD-Tool, das speziell für Kubernetes entwickelt wurde und dazu dient, Produktionspipelines und -umgebungen zu automatisieren. Mit Docker-Images, Helm-Charts und dem Jenkins-Pipeline-Engine kann Jenkins X Releases und Versionen automatisch verwalten und Anwendungen zwischen Umgebungen auf GitHub fördern.

pipeline {
agent any
stages {
stage(‚Build‘) {
steps {
// Schritte zum Bauen der Anwendung
}
}
stage(‚Test‘) {
steps {
// Schritte zum Testen der Anwendung
}
}
stage(‚Deploy‘) {
steps {
// Schritte zum Bereitstellen der Anwendung
}
}
}
}

Schritt 3: Praktische Umsetzung:

Um die Funktionalität von Helm und Jenkins X zu demonstrieren, führen wir eine praktische Übung durch. Zuerst richten wir eine lokale Kubernetes-Clusterumgebung mit Minikube ein. Anschließend installieren wir Helm auf dem Cluster und erstellen ein Beispiel-Chart, um eine Anwendung bereitzustellen. Danach setzen wir Jenkins X ein, um eine CI/CD-Pipeline einzurichten und unsere Anwendung zu automatisieren.

# Beispielbefehle zum Einrichten einer Minikube-Umgebung und Installation von Helm
minikube start
helm install myapp ./mychart

Schritt 4: Jenkins X einrichten

Installieren Sie zunächst das jx CLI-Tool und konfigurieren Sie Docker, um unsichere Register für den lokalen IP-Bereich zu verwenden. Dann erstellen Sie Ihr Minikube Kubernetes-Cluster mit CI/CD-Fähigkeiten:

curl -L https://github.com/jenkins-x/jx/releases/download/v1.3.781/jx-linux-amd64.tar.gz | tar xzv
mv jx /usr/local/bin

echo ‚{ „insecure-registries“ : [„0.0.0.0/0“] }‘ | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

jx create cluster minikube –cpu=5 –default-admin-password=admin –vm-driver=none –memory=13314

Schritt 5: Testanwendung erstellen

Klonen Sie eine Beispielanwendung und importieren Sie sie in Jenkins X:

git clone https://github.com/do-community/rsvpapp.git
cd rsvpapp
rm -r .git/

jx import

Passen Sie die Anwendungskonfiguration an, pushen Sie sie in Ihr GitHub-Repository und überwachen Sie den Pipeline-Status:

sed -i ’s/servicePort: 5000/servicePort: 8080/‘ values.yaml
git add .
git commit -m „Change servicePort to 8080“
git push origin main

jx get build logs

Öffnen Sie Ihre Anwendung im Browser:

Schritt 6: Anwendung in die Produktionsumgebung verschieben

Verwenden Sie den Befehl `jx promote`, um die Anwendung in die Produktionsumgebung zu verschieben:

jx promote rsvpapp –version=0.0.2 –env=production

Öffnen Sie die Anwendung in Ihrem Browser, um sicherzustellen, dass sie erfolgreich in die Produktionsumgebung verschoben wurde:

minikube service rsvpapp –namespace=jx-production

Mit diesen 6 Schritten haben Sie erfolgreich eine Jenkins X-Umgebung eingerichtet und eine Testanwendung mit einer Jenkins X-Pipeline in die Produktionsumgebung verschoben – Von der Einrichtung bis zum Deployment: Ein praktischer Leitfaden für Automatisierte CI/CD-Pipelines mit Jenkins X und Kubernetes

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren:

centron Managed Cloud Hosting in Deutschland

Joins in SQL: Tabellen effizient kombinieren

MySQL
Joins in SQL: Tabellen effizient kombinieren Content1 Einführung2 Voraussetzungen für Joins in SQL3 Verbindung zu MySQL und Einrichtung einer Beispieldatenbank für Joins in SQL4 Verstehen der Syntax von Joins in…