Erstellen von Kubernetes DaemonSets
Gilt für: AKS in Azure Stack HCI 22H2, AKS unter Windows Server
In diesem Artikel wird beschrieben, wie Sie ein Kubernetes DaemonSet in AKS erstellen und verwenden, das von Azure Arc aktiviert ist, um sicherzustellen, dass auf jedem Workerknoten in einem Cluster immer eine Kopie eines Pods verfügbar ist. Sie können ein DaemonSet verwenden, um die Clusterleistung zu verbessern, indem Sie sicherstellen, dass eine App auf allen Workerknoten ausgeführt wird, und Pods bereitstellen, die Wartungs- und Supportdienste für Knoten bereitstellen.
Übersicht über DaemonSets
Ein DaemonSet ist ein Kubernetes-Objekt, das sicherstellt, dass immer eine Kopie eines in der Konfiguration definierten Pods auf jedem Workerknoten in einem Cluster verfügbar ist. Wenn einem Cluster ein neuer Knoten hinzugefügt wird, ordnet das DaemonSet den Pod automatisch auf diesem Knoten zu.
Ebenso wird beim Löschen eines Knotens auch der Pod, der auf dem Knoten ausgeführt wird, gelöscht und nicht auf einem anderen Knoten neu geplant (z. B. wie bei ReplicaSets). Dadurch können Sie Kubernetes-Planungsbeschränkungen überwinden und sicherstellen, dass eine bestimmte Anwendung auf allen Knoten innerhalb des Clusters bereitgestellt wird.
DaemonSets können die Gesamtleistung des Clusters verbessern. Sie können sie beispielsweise zur Bereitstellung von Pods verwenden, um Wartungstasks auszuführen und Dienste für jeden Knoten zu unterstützen:
- Führen Sie einen Protokollsammlungsdaemon aus, z
Fluentd
. B. undLogstash
. - Führen Sie einen Knotenüberwachungsdaemon aus, z
Prometheus
. B. . - Führen Sie einen Clusterspeicherdaemon aus, z
glusterd
. B. oderceph
.
DaemonSets erstellen zwar standardmäßig einen Pod auf jedem Knoten, Sie können aber die Anzahl zulässiger Knoten begrenzen, indem Sie vorab das Knotenselektorfeld in der YAML-Datei definieren. Der DaemonSet-Controller erstellt nur Pods auf Knoten, die der Knotenauswahl entsprechen.
In der Regel stellt ein DaemonSet einen Daemontyp auf allen Knoten bereit. Es kommt aber auch vor, dass mehrere DaemonSets einen Daemontyp mithilfe verschiedener Bezeichnungen steuern. Eine Kubernetes-Bezeichnung gibt Bereitstellungsregeln basierend auf den Merkmalen einzelner Knoten an.
Weitere Informationen zur Verwendung von DaemonSets finden Sie unter Kubernetes DaemonSets.
Erstellen eines DaemonSets
Sie beschreiben ein DaemonSet mithilfe einer YAML-Datei und erstellen es dann mit den Befehlen kubectl create
oder kubectl apply
(z. B. kubectl create –f example-daemon.yaml
).
Im folgenden Beispiel werden die Merkmale einer DaemonSet-Konfigurationsdatei beschrieben, die ein nginx-Image verwendet:
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
app: nginx
name: example-daemon
spec:
template:
metadata:
labels:
app: nginx
spec:
containers:
-name: nginx
image: nginx
Wenn Sie den aktuellen Zustand des DaemonSets anzeigen möchten, verwenden Sie den Befehl kubectl describe
(z. B. kubectl describe daemonset example-daemon
).
Beschränken des DaemonSets auf bestimmte Knoten
Standardmäßig erstellen DaemonSets Pods auf allen Knoten in einem Cluster. Mit Knotenselektoren können Sie sie jedoch so konfigurieren, dass Pods nur auf bestimmten Knoten erstellt werden. Wenn Sie ein DaemonSet auf bestimmte Knoten beschränken möchten, verwenden Sie den Befehl kubectl label
.
Aktualisieren eines DaemonSets
Sie können ein DaemonSet mithilfe des Befehls kubectl edit ds<NAME>
aktualisieren. Es wird jedoch empfohlen, die ursprüngliche Konfigurationsdatei zu bearbeiten und dann den kubectl apply
Befehl zu verwenden, wenn er ursprünglich erstellt wurde. Nachdem Sie ein Update angewendet haben, können Sie das Update status mit dem kubectl rollout status ds <daemonset-name>
Befehl anzeigen.
Löschen eines DaemonSets
Verwenden Sie zum Entfernen eines DaemonSets den Befehl kubectl delete
(z. B. kubectl delete –f example-daemon.yaml -n monitoring
). Sie sollten vorsichtig sein, wenn Sie den Namen der DaemonSet-Datei angeben, da das Löschen eines DaemonSets alle bereitgestellten Pods bereinigt.
Nächste Schritte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für