Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Kubernetes-Bereitstellung: Einrichtung und Start | CI/CD & Automatisierung
Einführung in DevOps

bookKubernetes-Bereitstellung: Einrichtung und Start

Nachdem Ihre Anwendung reibungslos in Containern läuft, besteht die nächste Herausforderung darin, diese Container in großem Maßstab zu orchestrieren und zu verwalten. Hier kommt Kubernetes ins Spiel.

Um zu beginnen, definieren Sie den gewünschten Zustand Ihrer Anwendung mithilfe von YAML-Dateien. Eine Datei beschreibt ein Deployment, das für Updates und Skalierung zuständig ist, während eine andere eine Service definiert, die Ihre Anwendung im Netzwerk verfügbar macht und den Zugriff für Benutzer ermöglicht.

Note
Mehr erfahren

YAML (YAML Ain't Markup Language) ist ein menschenlesbares Format für Konfigurationsdateien. Es wird häufig verwendet, um Infrastruktur zu beschreiben, Prozesse zu automatisieren und Anwendungseinstellungen zu speichern.

Ein Deployment stellt sicher, dass die gewünschte Anzahl von Anwendungsinstanzen (Pods) stets ausgeführt wird, und erleichtert das Einspielen von Updates oder das Zurücksetzen auf vorherige Versionen. Ein Service macht diese Container im Netzwerk verfügbar und verteilt eingehenden Datenverkehr zwischen ihnen.

Minikube ausführen

Note
Definition

Minikube ist ein leichtgewichtiges Tool, mit dem ein lokaler Kubernetes-Cluster auf dem eigenen Rechner ausgeführt werden kann. Es erstellt eine virtuelle Umgebung, in der Kubernetes getestet und erkundet werden kann, ohne Cloud-Dienste zu benötigen.

Nach der Installation von Minikube und dem Hinzufügen zum System-PATH PowerShell (oder ein Terminal Ihrer Wahl) öffnen und folgenden Befehl ausführen:

Dieser Befehl prüft, ob Minikube verfügbar ist, und zeigt die installierte Version an.

Nachdem Sie bestätigt haben, dass Minikube installiert ist, starten Sie Ihren lokalen Kubernetes-Cluster mit:

Dieser Befehl erstellt und startet einen lokalen Kubernetes-Cluster auf Ihrem Rechner. Er lädt die erforderlichen Komponenten herunter und startet die Steuerungsebene sowie die Worker-Knoten.

Deployment: Anwendungsausbringung

Beginnen Sie mit der Erstellung der Datei deployment.yaml. Ein Deployment in Kubernetes stellt sicher, dass eine bestimmte Anzahl von Pods (Anwendungsinstanzen) stets ausgeführt wird und ohne Ausfallzeit aktualisiert oder zurückgesetzt werden kann.

deployment.yaml

deployment.yaml

copy

In diesem Manifest gibt der Parameter replicas an, wie viele Pod-Instanzen gleichzeitig ausgeführt werden sollen – in diesem Fall zwei. Um zu bestimmen, welche Pods verwaltet werden sollen, verwendet das Deployment eine Kombination aus Selector und Labels: Der Selector fungiert als Filter, um Pods mit einem bestimmten Label zu finden, und die Pod-Vorlage definiert dieses Label. Wenn die Labels übereinstimmen, behandelt das Deployment diese Pods als eigene und sorgt für deren Anzahl, Aktualisierung und Neustart bei Bedarf.

Alle Pods laufen auf Port 3000. Sie können denselben Port verwenden, da jeder Pod in seinem eigenen isolierten Netzwerkbereich arbeitet, sodass es keine Konflikte zwischen ihnen gibt.

Service: Netzwerkzugriff auf die Anwendung

Sobald das Deployment eingerichtet ist, wird ein Service benötigt, um Netzwerkzugriff und Lastverteilung zwischen den Pods bereitzustellen. Erstellen Sie die Datei service.yaml:

service.yaml

service.yaml

copy

Dieses Manifest definiert einen Service mit dem Namen my-app-service, der den Datenverkehr an Pods mit dem Label app: my-app weiterleitet. Er lauscht extern auf Port 80 und leitet Anfragen an Port 3000 innerhalb der Pods weiter.

Der Typ LoadBalancer ist wichtig, da er die Anwendung extern verfügbar macht und den Datenverkehr auf die Pods verteilt.

Bereitstellung der Anwendung in Kubernetes

Sobald die YAML-Dateien bereit sind, können sie auf den Cluster angewendet werden:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Der Befehl kubectl apply -f erstellt oder aktualisiert Ressourcen im Cluster basierend auf dem Inhalt der YAML-Datei.

Überprüfen des Status

Nach dem Anwenden der Konfigurationsdateien ist es wichtig zu bestätigen, dass alles wie erwartet bereitgestellt wurde. Da Pods und Services einen Moment zum Starten benötigen, beginnen Sie damit, die laufenden Pods aufzulisten:

Wenn die Datei deployment.yaml replicas: 2 angibt, sollten zwei Pods in der Ausgabe erscheinen.

Um zu bestätigen, dass der Service läuft und erreichbar ist:

Dies zeigt die IP-Adresse des Service sowie die Ports an, über die auf die Anwendung zugegriffen werden kann.

Abrufen der Service-URL

Um auf Ihre Anwendung zuzugreifen, führen Sie den folgenden Befehl in PowerShell oder Ihrem Terminal aus:

Dieser Befehl fordert Minikube auf, die URL zurückzugeben, unter der Ihre Anwendung erreichbar ist. Minikube überprüft den von Ihnen erstellten Service (my-app-service) und stellt einen Link bereit, den Sie in Ihrem Browser öffnen können.

Skalierung der Anwendung

Kubernetes ermöglicht es, die Anzahl der laufenden Pods einfach anzupassen, ohne die Anwendung zu stoppen.

Beispielsweise, um von 2 auf 4 Replikate zu skalieren:

Das erneute Ausführen von kubectl get pods listet nun vier aktive Pods auf.

Kubernetes bietet leistungsstarke Werkzeuge zur Verwaltung containerisierter Anwendungen in jeder Größenordnung. Ein Deployment stellt sicher, dass die korrekte Anzahl von Pods ausgeführt wird, und ermöglicht einfache Aktualisierungen oder Rollbacks. Ein Service stellt die Anwendung im Netzwerk bereit und verteilt den eingehenden Datenverkehr. YAML-Konfigurationsdateien sorgen für eine übersichtliche und verständliche Einrichtung, während kubectl-Befehle das Anwenden und Verwalten dieser Konfigurationen in Echtzeit ermöglichen.

1. Was ist der Hauptzweck eines Deployments in Kubernetes?

2. Warum können mehrere Pods auf derselben Portnummer (z. B. 3000) ohne Konflikte laufen?

question mark

Was ist der Hauptzweck eines Deployments in Kubernetes?

Select the correct answer

question mark

Warum können mehrere Pods auf derselben Portnummer (z. B. 3000) ohne Konflikte laufen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 9

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

What should I do if my pods are not starting as expected?

How can I update my application without downtime using Kubernetes?

Can you explain the difference between a Deployment and a Service in Kubernetes?

Awesome!

Completion rate improved to 3.7

bookKubernetes-Bereitstellung: Einrichtung und Start

Swipe um das Menü anzuzeigen

Nachdem Ihre Anwendung reibungslos in Containern läuft, besteht die nächste Herausforderung darin, diese Container in großem Maßstab zu orchestrieren und zu verwalten. Hier kommt Kubernetes ins Spiel.

Um zu beginnen, definieren Sie den gewünschten Zustand Ihrer Anwendung mithilfe von YAML-Dateien. Eine Datei beschreibt ein Deployment, das für Updates und Skalierung zuständig ist, während eine andere eine Service definiert, die Ihre Anwendung im Netzwerk verfügbar macht und den Zugriff für Benutzer ermöglicht.

Note
Mehr erfahren

YAML (YAML Ain't Markup Language) ist ein menschenlesbares Format für Konfigurationsdateien. Es wird häufig verwendet, um Infrastruktur zu beschreiben, Prozesse zu automatisieren und Anwendungseinstellungen zu speichern.

Ein Deployment stellt sicher, dass die gewünschte Anzahl von Anwendungsinstanzen (Pods) stets ausgeführt wird, und erleichtert das Einspielen von Updates oder das Zurücksetzen auf vorherige Versionen. Ein Service macht diese Container im Netzwerk verfügbar und verteilt eingehenden Datenverkehr zwischen ihnen.

Minikube ausführen

Note
Definition

Minikube ist ein leichtgewichtiges Tool, mit dem ein lokaler Kubernetes-Cluster auf dem eigenen Rechner ausgeführt werden kann. Es erstellt eine virtuelle Umgebung, in der Kubernetes getestet und erkundet werden kann, ohne Cloud-Dienste zu benötigen.

Nach der Installation von Minikube und dem Hinzufügen zum System-PATH PowerShell (oder ein Terminal Ihrer Wahl) öffnen und folgenden Befehl ausführen:

Dieser Befehl prüft, ob Minikube verfügbar ist, und zeigt die installierte Version an.

Nachdem Sie bestätigt haben, dass Minikube installiert ist, starten Sie Ihren lokalen Kubernetes-Cluster mit:

Dieser Befehl erstellt und startet einen lokalen Kubernetes-Cluster auf Ihrem Rechner. Er lädt die erforderlichen Komponenten herunter und startet die Steuerungsebene sowie die Worker-Knoten.

Deployment: Anwendungsausbringung

Beginnen Sie mit der Erstellung der Datei deployment.yaml. Ein Deployment in Kubernetes stellt sicher, dass eine bestimmte Anzahl von Pods (Anwendungsinstanzen) stets ausgeführt wird und ohne Ausfallzeit aktualisiert oder zurückgesetzt werden kann.

deployment.yaml

deployment.yaml

copy

In diesem Manifest gibt der Parameter replicas an, wie viele Pod-Instanzen gleichzeitig ausgeführt werden sollen – in diesem Fall zwei. Um zu bestimmen, welche Pods verwaltet werden sollen, verwendet das Deployment eine Kombination aus Selector und Labels: Der Selector fungiert als Filter, um Pods mit einem bestimmten Label zu finden, und die Pod-Vorlage definiert dieses Label. Wenn die Labels übereinstimmen, behandelt das Deployment diese Pods als eigene und sorgt für deren Anzahl, Aktualisierung und Neustart bei Bedarf.

Alle Pods laufen auf Port 3000. Sie können denselben Port verwenden, da jeder Pod in seinem eigenen isolierten Netzwerkbereich arbeitet, sodass es keine Konflikte zwischen ihnen gibt.

Service: Netzwerkzugriff auf die Anwendung

Sobald das Deployment eingerichtet ist, wird ein Service benötigt, um Netzwerkzugriff und Lastverteilung zwischen den Pods bereitzustellen. Erstellen Sie die Datei service.yaml:

service.yaml

service.yaml

copy

Dieses Manifest definiert einen Service mit dem Namen my-app-service, der den Datenverkehr an Pods mit dem Label app: my-app weiterleitet. Er lauscht extern auf Port 80 und leitet Anfragen an Port 3000 innerhalb der Pods weiter.

Der Typ LoadBalancer ist wichtig, da er die Anwendung extern verfügbar macht und den Datenverkehr auf die Pods verteilt.

Bereitstellung der Anwendung in Kubernetes

Sobald die YAML-Dateien bereit sind, können sie auf den Cluster angewendet werden:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Der Befehl kubectl apply -f erstellt oder aktualisiert Ressourcen im Cluster basierend auf dem Inhalt der YAML-Datei.

Überprüfen des Status

Nach dem Anwenden der Konfigurationsdateien ist es wichtig zu bestätigen, dass alles wie erwartet bereitgestellt wurde. Da Pods und Services einen Moment zum Starten benötigen, beginnen Sie damit, die laufenden Pods aufzulisten:

Wenn die Datei deployment.yaml replicas: 2 angibt, sollten zwei Pods in der Ausgabe erscheinen.

Um zu bestätigen, dass der Service läuft und erreichbar ist:

Dies zeigt die IP-Adresse des Service sowie die Ports an, über die auf die Anwendung zugegriffen werden kann.

Abrufen der Service-URL

Um auf Ihre Anwendung zuzugreifen, führen Sie den folgenden Befehl in PowerShell oder Ihrem Terminal aus:

Dieser Befehl fordert Minikube auf, die URL zurückzugeben, unter der Ihre Anwendung erreichbar ist. Minikube überprüft den von Ihnen erstellten Service (my-app-service) und stellt einen Link bereit, den Sie in Ihrem Browser öffnen können.

Skalierung der Anwendung

Kubernetes ermöglicht es, die Anzahl der laufenden Pods einfach anzupassen, ohne die Anwendung zu stoppen.

Beispielsweise, um von 2 auf 4 Replikate zu skalieren:

Das erneute Ausführen von kubectl get pods listet nun vier aktive Pods auf.

Kubernetes bietet leistungsstarke Werkzeuge zur Verwaltung containerisierter Anwendungen in jeder Größenordnung. Ein Deployment stellt sicher, dass die korrekte Anzahl von Pods ausgeführt wird, und ermöglicht einfache Aktualisierungen oder Rollbacks. Ein Service stellt die Anwendung im Netzwerk bereit und verteilt den eingehenden Datenverkehr. YAML-Konfigurationsdateien sorgen für eine übersichtliche und verständliche Einrichtung, während kubectl-Befehle das Anwenden und Verwalten dieser Konfigurationen in Echtzeit ermöglichen.

1. Was ist der Hauptzweck eines Deployments in Kubernetes?

2. Warum können mehrere Pods auf derselben Portnummer (z. B. 3000) ohne Konflikte laufen?

question mark

Was ist der Hauptzweck eines Deployments in Kubernetes?

Select the correct answer

question mark

Warum können mehrere Pods auf derselben Portnummer (z. B. 3000) ohne Konflikte laufen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 9
some-alt