Skalieren und Verwalten von Pods mit Deployments

KubernetesKubernetesBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab erfahren Sie, wie Sie Pods in Kubernetes mithilfe von Deployments skalieren und verwalten können. Deployments sind eine höherwertige Abstraktion, die es Ihnen ermöglicht, Replikate von Pods deklarativ zu verwalten und zu skalieren. Mit Deployments können Sie Ihre Anwendung problemlos auf eine neue Version aktualisieren, auf eine frühere Version zurücksetzen und Ihre Anwendung je nach Bedarf hoch- oder herunterskalieren.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 92% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Starten des Minikube-Clusters

Bevor Sie Ressourcen erstellen können, benötigen Sie einen laufenden Kubernetes-Cluster. Minikube ist eine leichte Kubernetes-Umgebung, die auf Ihrem lokalen Rechner läuft.

  1. Navigieren Sie in Ihr Arbeitsverzeichnis:

    Öffnen Sie das Terminal und navigieren Sie in den Standardprojektordner:

    cd /home/labex/project
  2. Starten Sie Minikube:

    Starten Sie Minikube, um einen Kubernetes-Cluster zu initialisieren:

    minikube start
    • Dieser Befehl richtet einen Ein-Knoten-Kubernetes-Cluster auf Ihrem lokalen Rechner ein.
    • Je nach Leistung Ihres Systems kann es einige Minuten dauern, bis Minikube gestartet ist.
  3. Vergewissern Sie sich, dass Minikube läuft:

    Überprüfen Sie den Status des Minikube-Clusters:

    minikube status
    • Achten Sie darauf, dass Komponenten wie kubelet und apiserver als Running aufgeführt sind.
    • Wenn der Cluster nicht läuft, führen Sie minikube start erneut aus.

Falls Sie Probleme beim Starten von Minikube haben, können Sie minikube delete verwenden, um die Umgebung bei Bedarf zurückzusetzen.

Erstellen eines Deployments

  1. Erstellen Sie eine Datei namens my-deployment.yaml in /home/labex/project/ mit folgendem Inhalt:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: nginx:latest
          ports:
            - containerPort: 80

Diese YAML-Datei definiert ein Deployment mit 3 Replikaten, das einen Nginx-Container ausführt. Das Feld selector wählt die von dem Deployment kontrollierten Pods anhand der app-Bezeichnung (Label) aus.

  1. Stellen Sie das my-deployment Deployment bereit:
kubectl apply -f my-deployment.yaml

Dadurch wird das my-deployment Deployment sowie die zugehörigen ReplicaSets und Pods erstellt.

  1. Vergewissern Sie sich, dass das Deployment erstellt wurde:
kubectl get deployments

Dadurch werden Ihnen die Deployments in Ihrem Cluster angezeigt, einschließlich des my-deployment Deployments.

Skalieren des Deployments

  1. Skalieren Sie das my-deployment Deployment auf 5 Replikate hoch:
kubectl scale deployment my-deployment --replicas=5

Dadurch wird die Anzahl der Replikate im my-deployment Deployment auf 5 erhöht.

  1. Vergewissern Sie sich, dass das Deployment skaliert wurde:
kubectl get deployments

Dadurch werden Ihnen die Deployments in Ihrem Cluster angezeigt, einschließlich des my-deployment Deployments mit 5 Replikaten.

Aktualisieren des Deployments

  1. Bearbeiten Sie das my-deployment Deployment, um das nginx:1.19-Image zu verwenden:
kubectl edit deployment my-deployment

Dadurch wird das Deployment in Ihrem Standardtexteditor geöffnet. Ändern Sie das image-Feld in nginx:1.19 und speichern Sie die Datei.

  1. Vergewissern Sie sich, dass das Deployment aktualisiert wurde:
kubectl rollout status deployment/my-deployment

Dadurch wird Ihnen der Status des neuesten Rollouts des my-deployment Deployments angezeigt.

Rückgängig machen des Deployments

  1. Setzen Sie das my-deployment Deployment auf die vorherige Version zurück:
kubectl rollout undo deployment/my-deployment

Dadurch wird das my-deployment Deployment auf die vorherige Version zurückgesetzt.

  1. Vergewissern Sie sich, dass das Deployment rückgängig gemacht wurde:
kubectl rollout status deployment/my-deployment

Dadurch wird Ihnen der Status des neuesten Rollouts des my-deployment Deployments angezeigt.

Aufräumen

  1. Löschen Sie das my-deployment Deployment:
kubectl delete deployment my-deployment

Dadurch wird das my-deployment Deployment sowie die zugehörigen ReplicaSets und Pods gelöscht.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Deployments in Kubernetes erstellen und verwalten. Sie haben ein Deployment mit 3 Replikaten erstellt, das Deployment auf 5 Replikate skaliert, das Deployment aktualisiert, um ein anderes Image zu verwenden, und das Deployment auf die vorherige Version zurückgesetzt.