Ausführen von Pods mit DaemonSets

KubernetesKubernetesBeginner
Jetzt üben

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

Einführung

In Kubernetes ist ein DaemonSet eine Art von Controller, der sicherstellt, dass eine Kopie eines Pods auf jedem Knoten im Cluster ausgeführt wird. In diesem Lab werden Sie durch den Prozess der Erstellung eines DaemonSets geführt, um Replikate eines Pods auf jedem Knoten im Cluster auszuführen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") subgraph Lab Skills kubernetes/initialization -.-> lab-8454{{"Ausführen von Pods mit DaemonSets"}} kubernetes/get -.-> lab-8454{{"Ausführen von Pods mit DaemonSets"}} kubernetes/create -.-> lab-8454{{"Ausführen von Pods mit DaemonSets"}} kubernetes/apply -.-> lab-8454{{"Ausführen von Pods mit DaemonSets"}} kubernetes/describe -.-> lab-8454{{"Ausführen von Pods mit DaemonSets"}} end

Starten des Minikube-Clusters

Bevor Sie Ressourcen erstellen, 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.
    • Minikube kann je nach Leistung Ihres Systems einige Minuten dauern, um zu starten.
  3. Überprüfen Sie, ob Minikube läuft:

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

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

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

Erstellen eines Pods

Erstellen Sie einen einfachen Pod, der als Vorlage für die Replikate verwendet wird. Erstellen Sie eine Datei namens /home/labex/project/myapp-pod.yaml mit folgendem Inhalt:

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
    - name: myapp-container
      image: nginx
      ports:
        - containerPort: 80

Erstellen Sie den Pod mit folgendem Befehl:

kubectl apply -f /home/labex/project/myapp-pod.yaml

Erstellen eines DaemonSets

Erstellen Sie ein DaemonSet, um Replikate des myapp-pod auf jedem Knoten im Cluster auszuführen. Erstellen Sie eine Datei namens /home/labex/project/myapp-daemonset.yaml mit folgendem Inhalt:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: myapp-daemonset
spec:
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: myapp-container
          image: nginx
          ports:
            - containerPort: 80

Dieses DaemonSet verwendet den myapp-pod als Vorlage für die Replikate und setzt den matchLabels-Selektor auf app: myapp, um sicherzustellen, dass die Replikate auf jedem Knoten erstellt werden.

Erstellen Sie das DaemonSet mit folgendem Befehl:

kubectl apply -f /home/labex/project/myapp-daemonset.yaml

Überprüfen des DaemonSets

Überprüfen Sie, ob das DaemonSet erstellt wurde und ob Replikate des myapp-pod auf jedem Knoten ausgeführt werden. Verwenden Sie den folgenden Befehl, um die Knoten im Cluster aufzulisten:

kubectl get nodes

Verwenden Sie den folgenden Befehl, um die von dem DaemonSet erstellten Pods aufzulisten:

kubectl get pods -l app=myapp

Sie sollten für jeden Knoten im Cluster einen Pod sehen.

Aktualisieren des DaemonSets

Aktualisieren Sie das DaemonSet, um das von myapp-container verwendete Image zu ändern. Erstellen Sie eine Datei namens /home/labex/project/myapp-daemonset-update.yaml mit folgendem Inhalt:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: myapp-daemonset
spec:
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: myapp-container
          image: busybox
          command: ["sleep", "3600"]

Dieses aktualisierte DaemonSet ändert das von myapp-container verwendete Image auf busybox und setzt den Befehl auf sleep 3600.

Aktualisieren Sie das DaemonSet mit folgendem Befehl:

kubectl apply -f /home/labex/project/myapp-daemonset-update.yaml

Überprüfen Sie, ob das DaemonSet aktualisiert wurde und ob Replikate des myapp-pod mit dem neuen Image ausgeführt werden. Verwenden Sie den folgenden Befehl, um die von dem DaemonSet erstellten Pods aufzulisten:

kubectl get pods -l app=myapp

Sie sollten neue Pods sehen, die mit dem aktualisierten Image erstellt wurden.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie ein DaemonSet in Kubernetes verwenden, um Replikate eines Pods auf jedem Knoten im Cluster auszuführen.