Share via


Créer des daemonSets Kubernetes

S’applique à : AKS sur Azure Stack HCI 22H2, AKS sur Windows Server

Cet article explique comment créer et utiliser un DaemonSet Kubernetes dans AKS activé par Azure Arc pour garantir qu’une copie d’un pod est toujours disponible sur chaque nœud Worker d’un cluster. Vous pouvez utiliser un DaemonSet pour améliorer les performances du cluster en vous assurant qu’une application s’exécute sur tous les nœuds Worker, et pour déployer des pods qui effectuent la maintenance et fournissent des services de support pour les nœuds.

Vue d’ensemble de DaemonSets

Un DaemonSet est un objet Kubernetes qui garantit que la copie d’un pod défini dans la configuration est toujours disponible sur chaque nœud Worker d’un cluster. Quand un nouveau nœud est ajouté à un cluster, le DaemonSet alloue automatiquement le pod sur ce nœud.

De même, lorsqu’un nœud est supprimé, le pod qui s’exécute sur le nœud est également supprimé et n’est pas replanifié sur un autre nœud (par exemple, comme c’est le cas avec ReplicaSets). Cela vous permet de surmonter les limitations de planification Kubernetes et de vous assurer qu’une application spécifique est déployée sur tous les nœuds du cluster.

Les DaemonSets peuvent améliorer les performances globales du cluster. Par exemple, vous pouvez les utiliser afin de déployer des pods pour effectuer des tâches de maintenance et prendre en charge des services sur chaque nœud :

  • Exécutez un démon de collection de journaux, tel que Fluentd et Logstash.
  • Exécutez un démon de surveillance de nœud, tel que Prometheus.
  • Exécutez un démon de stockage de cluster, tel que glusterd ou ceph.

Bien que les DaemonSets créent un pod sur chaque nœud par défaut, vous pouvez limiter le nombre de nœuds acceptables en prédéfinissant le champ du sélecteur de nœud dans le fichier YAML. Le contrôleur DaemonSet crée uniquement des pods sur les nœuds qui correspondent au sélecteur de nœud.

En général, un DaemonSet déploie un type de démon sur tous les nœuds, mais il est possible que plusieurs DaemonSets contrôlent un type de démon avec des étiquettes différentes. Une étiquette Kubernetes spécifie les règles de déploiement en fonction des caractéristiques de nœuds individuels.

Pour plus d’informations sur l’utilisation de DaemonSets, consultez DaemonSets Kubernetes.

Créer un DaemonSet

Utilisez un fichier YAML pour décrire un DaemonSet, puis créez-le avec la commande kubectl create ou kubectl apply (par exemple, kubectl create –f example-daemon.yaml).

L’exemple suivant décrit les fonctionnalités d’un fichier de configuration DaemonSet avec une image nginx :

apiVersion: apps/v1  
kind: DaemonSet  
metadata: 
      labels: 
         app: nginx
      name: example-daemon
spec:  
  template:
    metadata:
    labels:
             app: nginx
          spec:  
    containers:  
        -name: nginx  
         image: nginx

Pour voir l’état actuel du DaemonSet, utilisez la commande kubectl describe (par exemple, kubectl describe daemonset example-daemon).

Limiter DaemonSet à des nœuds spécifiques

Par défaut, les DaemonSets créent des pods sur tous les nœuds d’un cluster. Toutefois, avec des sélecteurs de nœud, vous pouvez les configurer pour créer des pods uniquement dans des nœuds spécifiques. Si vous souhaitez limiter un DaemonSet à des nœuds spécifiques, utilisez la commande kubectl label.

Mettre à jour un DaemonSet

Vous pouvez mettre à jour un DaemonSet avec la commande kubectl edit ds<NAME>. Toutefois, il est recommandé de modifier le fichier de configuration d’origine, puis d’utiliser la commande lors de sa kubectl apply création initiale. Après avoir appliqué une mise à jour, vous pouvez afficher la mise à jour status à l’aide de la kubectl rollout status ds <daemonset-name> commande .

Supprimer un DaemonSet

Pour supprimer un DaemonSet, utilisez la commande kubectl delete (par exemple, kubectl delete –f example-daemon.yaml -n monitoring). Vous devez être prudent lorsque vous spécifiez le nom du fichier DaemonSet, car la suppression d’un DaemonSet nettoie tous les pods qu’il a déployés.

Étapes suivantes