instruction: Create a Kubernetes DaemonSet configuration with best practices
output: ```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:v5.0.1
   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
  ```