Difference between revisions of "Kubernetes DaemonSets"
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
- CKA v1.18: Understand the role of DaemonSets
Related terms
See also
Advertising: