Tutorials  /  Container & Cloud

Deployment und Service in Kubernetes: Ein praktischer Leitfaden

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

CI/CD (Continuous Integration/Continuous Deployment) hat sich als unverzichtbare Praxis für die moderne Softwareentwicklung etabliert. Mit der wachsenden Beliebtheit von Kubernetes als Containerorchestrierungstool ist es sinnvoll, sich mit den Grundlagen von CI/CD in einer Kubernetes-Umgebung vertraut zu machen.

In diesem Tutorial zeigen wir Ihnen, wie Sie Kubernetes Deployments und Services erstellen, um Ihre Anwendungen in einer Kubernetes-Umgebung auszuführen und sie für den Zugriff von außen verfügbar zu machen. Diese Grundlagen bilden eine solide Basis für den Aufbau einer CI/CD-Umgebung auf Kubernetes, die wir in zukünftigen Artikeln genauer betrachten werden.

Schritt 1: Building Container Images mit Docker und Buildah

# Docker: Ein Dockerfile erstellen und ein Image erstellen

mkdir demo

cd demo

nano Dockerfile

# Fügen Sie den Dockerfile-Inhalt hinzu

sudo docker image build -t nkhare/nginx:latest .

# Buildah: Buildah-Installation und Image-Erstellung

cd

mkdir ~/buildah

cd ~/buildah

export GOPATH=`pwd`

git clone https://github.com/containers/buildah ./src/github.com/containers/buildah

cd ./src/github.com/containers/buildah

make runc all TAGS="apparmor seccomp"

sudo cp ~/buildah/src/github.com/opencontainers/runc/runc /usr/bin/.

sudo apt install buildah

sudo buildah build-using-dockerfile -t rsvpapp:buildah github.com/do-community/rsvpapp-webinar1

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: Einrichten eines Kubernetes-Clusters auf centron mit kubeadm und Terraform

# Einrichten des Clusters mit Terraform und kubeadm

ssh-keygen -t rsa

cd k8s-cicd-webinars/webinar1/2-kubernetes/1-Terraform/

./script.sh

kubectl get nodes

Schritt 3: Erstellen von Container-Images mit Kaniko

# Erstellen von Container-Images mit Kaniko

sudo kubectl create configmap docker-config --from-file=$HOME/.docker/config.json

nano pod-kaniko.yml

# Fügen Sie den Pod-Definitionsinhalt hinzu

kubectl apply -f pod-kaniko.yml

kubectl get pods

Schritt 4: Kubernetes Deployments erstellen

Kubernetes Deployments ermöglichen es Ihnen, Ihre Anwendungen auszuführen und definieren den gewünschten Zustand für Ihre Pods. In diesem Schritt erstellen wir eine Nginx-Deployment-Datei namens `deployment.yml` im Verzeichnis `~/k8s-cicd-webinars/webinar1/2-kubernetes/1-Terraform/`, um ein Nginx Deployment zu erstellen.

1. Öffnen Sie zuerst die Datei:

nano deployment.yml

2. Fügen Sie die folgende Konfiguration hinzu, um Ihr Nginx Deployment zu definieren:

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx-deployment

labels:

app: nginx

spec:

replicas: 3

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- name: nginx

image: nginx:1.7.9

ports:

- containerPort: 80

3. Deployen Sie das Deployment mit dem folgenden Befehl:

kubectl apply -f deployment.yml

Schritt 5: Kubernetes Services erstellen

Kubernetes Services ermöglichen es, Anwendungen intern und extern verfügbar zu machen. Jeder Service definiert einen `ServiceType`, der festlegt, wie der Service freigegeben wird. In diesem Beispiel verwenden wir einen `NodePort ServiceType`, der den Service auf einem statischen Port auf jedem Knoten freigibt.

1. Erstellen Sie eine Datei namens `service.yml` im Verzeichnis `~/k8s-cicd-webinars/webinar1/2-kubernetes/1-Terrafrom/`:

nano service.yml

2. Fügen Sie den folgenden Inhalt hinzu, um Ihren Service zu definieren:

kind: Service

apiVersion: v1

metadata:

name: nginx-service

spec:

selector:

app: nginx

type: NodePort

ports:

- protocol: TCP

port: 80

targetPort: 80

nodePort: 30111

3. Deployen Sie den Service mit dem folgenden Befehl:

kubectl apply -f service.yml

Nachdem Sie diese Schritte ausgeführt haben, ist Ihr Nginx-Deployment nun bereit und über den erstellten Service auf Port 30111 sowohl intern als auch extern verfügbar. Deployment und Service in Kubernetes: Ein praktischer Leitfaden

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?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

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