Tutorials  /  Container & Cloud

Von der Einrichtung bis zur Bereitstellung: Automatisierte CI/CD-Pipelines mit Jenkins X und Kubernetes

Ccentron Redaktion · März 2024 ·5 Min. Lesezeit ·Container & Cloud, Tutorial

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

K8

Passende Infrastruktur bei centron

Vom Container zum Cluster: Managed Kubernetes mit cStack gibt es ab 29,99 € im Monat – Control Plane, AutoScaler und Traffic inklusive. Managed Kubernetes ansehen →

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:

minikube service rsvpapp

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

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Container & Cloud
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren