Formation DevOps | Formation kubernetes : DaemonSet
DaemonSet
Un DaemonSet garantit que tous (ou certains) nœuds exécutent une copie d’un pod. Au fur et à mesure que des nœuds sont ajoutés au cluster, des pods leur sont ajoutés. À mesure que les nœuds sont supprimés du cluster, ces pods sont récupérés. La suppression d’un DaemonSet nettoiera les pods qu’il a créés.
Certaines utilisations typiques d’un DaemonSet sont :
• exécuter un démon de stockage de cluster sur chaque nœud
• exécuter un démon de collecte de journaux sur chaque nœud
• exécuter un démon de surveillance de nœud sur chaque nœud
Dans un cas simple, un DaemonSet, couvrant tous les nœuds, serait utilisé pour chaque type de démon. Une configuration plus complexe peut utiliser plusieurs DaemonSets pour un seul type de démon, mais avec des indicateurs différents et/ou des demandes de mémoire et de processeur différentes pour différents types de matériel.
Écrire une spécification
Créer un DaemonSet
Vous pouvez décrire un DaemonSet dans un fichier YAML. Par exemple, le daemonset.yamlfichier ci-dessous décrit un DaemonSet qui exécute l’image Docker fluentd-elasticsearch
On utilise souvent ce use case pour la récupération des logs avec fluentd et les stockées dans une base de donnée elasticsearch , et ensuite les éxposé avec kibana , je vous ai préparer un tutoriel complet pour le deployement de la stack ELK sur kubernetes .
Créez un DaemonSet basé sur le fichier YAML :
kubectl apply -f daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentd-elasticsearch
namespace: kube-system
labels:
k8s-app: fluentd-logging
spec:
selector:
matchLabels:
name: fluentd-elasticsearch
template:
metadata:
labels:
name: fluentd-elasticsearch
spec:
tolerations:
# these tolerations are to have the daemonset runnable on control plane nodes
# remove them if your control plane nodes should not run pods
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
containers:
- name: fluentd-elasticsearch
image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
resources:
limits:
memory: 200Mi
requests:
cpu: 100m
memory: 200Mi
volumeMounts:
- name: varlog
mountPath: /var/log
# it may be desirable to set a high priority class to ensure that a DaemonSet Pod
# preempts running Pods
# priorityClassName: important
terminationGracePeriodSeconds: 30
volumes:
- name: varlog
hostPath:
path: /var/log
Comment les pods démons sont programmés
Un DaemonSet peut être utilisé pour garantir que tous les nœuds éligibles exécutent une copie d’un pod. Le contrôleur DaemonSet crée un pod pour chaque nœud éligible et ajoute le spec.affinity.nodeAffinitychamp du pod pour correspondre à l’hôte cible.
Une fois le pod créé, le scheduleur par défaut prend généralement le relais, puis lie le pod à l’hôte cible en définissant le .spec.nodeNamechamp. Si le nouveau pod ne peut pas tenir sur le nœud, le sheduleur par défaut peut préempter (expulser) certains des pods existants en fonction de la priorité du nouveau pod.
L’affinité de nœud d’origine spécifiée dans le .spec.template.spec.affinity.nodeAffinitychamp (si spécifiée) est prise en compte par le contrôleur DaemonSet lors de l’évaluation des nœuds éligibles.
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchFields:
- key: metadata.name
operator: In
values:
- target-host-name
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io