Kubernetes-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.
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
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
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
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?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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
Kubernetes-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.
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
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
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
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?
Danke für Ihr Feedback!