Difference between revisions of "Kubernetes DaemonSets"

From wikieduonline
Jump to navigation Jump to search
Line 8: Line 8:
 
* Running a node monitoring daemon on every node
 
* Running a node monitoring daemon on every node
  
 +
== Official example ==
 +
<pre>
 +
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
 +
 +
        - 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
 +
</pre>
  
  

Revision as of 06:21, 18 August 2022

Kubernetes Daemonset can be used to run replicas of a pod on specific or all node.


Typical uses of a DaemonSet are:

  • Running a cluster storage daemon on every node
  • Running a logs collection daemon on every node
  • Running a node monitoring daemon on every node

Official example

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

        - 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


Activities

Related terms

See also

Advertising: