Middle
Quelle est l'application pratique de DaemonSet dans Kubernetes?
sobes.tech IA
Réponse de l'IA
DaemonSet garantit qu’un pod est exécuté sur tous (ou sur un sous-ensemble spécifié) des nœuds du cluster. Cela est utile pour déployer des démons système qui doivent fonctionner sur chaque nœud.
Applications pratiques :
- Collecte de logs : Exécuter un agent de collecte de logs (par exemple, Fluentd, Logstash) sur chaque nœud pour transmettre les logs à un stockage centralisé.
- Surveillance des nœuds : Déployer un agent de surveillance (par exemple, Prometheus Node Exporter, Datadog Agent) sur chaque nœud pour collecter des métriques de l’état du nœud.
- Stockage en cluster : Exécuter un démon de stockage (par exemple, Ceph, Glusterfs) sur chaque nœud pour assurer un stockage distribué.
- Agents de sécurité : Déployer des agents de sécurité ou d’audit sur chaque nœud.
Différence avec Deployment : DaemonSet crée un pod sur chaque nœud, alors que Deployment tente de maintenir un nombre défini de réplicas dans tout le cluster, en les répartissant entre les nœuds disponibles.
Exemple de manifeste DaemonSet pour un agent de collecte de logs :
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentd-elasticsearch
labels:
k8s-app: fluentd-logging
spec:
selector:
matchLabels:
name: fluentd-elasticsearch
template:
metadata:
labels:
name: fluentd-elasticsearch
spec:
containers:
- name: fluentd-elasticsearch
image: fluentd/fluentd-kubernetes-daemonset:v1.14-debian-elasticsearch7-1
env:
- name: FLUENT_ELASTICSEARCH_HOST
value: "elasticsearch.default.svc.cluster.local" # Exemple d’adresse Elasticsearch
- name: FLUENT_ELASTICSEARCH_PORT
value: "9200"
- name: FLUENT_ELASTICSEARCH_SCHEME
value: "http"
volumeMounts:
- name: varlog
mountPath: /var/log
- name: varlibdockercontainers
mountPath: /var/lib/docker/containers
readOnly: true
terminationGracePeriodSeconds: 30
volumes:
- name: varlog
hostPath:
path: /var/log
- name: varlibdockercontainers
hostPath:
path: /var/lib/docker/containers
DaemonSet ajoute automatiquement un pod sur les nouveaux nœuds et le supprime lors de la suppression d’un nœud du cluster.