Difference between revisions of "Kubernetes DaemonSets"
Jump to navigation
Jump to search
Line 31: | Line 31: | ||
# remove them if your control plane nodes should not run pods | # remove them if your control plane nodes should not run pods | ||
- key: node-role.kubernetes.io/control-plane | - key: node-role.kubernetes.io/control-plane | ||
− | |||
operator: Exists | operator: Exists | ||
− | |||
effect: NoSchedule | effect: NoSchedule | ||
− | |||
- key: node-role.kubernetes.io/master | - key: node-role.kubernetes.io/master | ||
− | |||
operator: Exists | operator: Exists | ||
− | + | effect: NoSchedule | |
− | effect: NoSchedule | ||
− | |||
containers: | containers: | ||
− | |||
- name: fluentd-elasticsearch | - name: fluentd-elasticsearch | ||
− | |||
image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2 | image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2 | ||
− | |||
resources: | resources: | ||
− | |||
limits: | limits: | ||
− | |||
memory: 200Mi | memory: 200Mi | ||
− | |||
requests: | requests: | ||
− | |||
cpu: 100m | cpu: 100m | ||
− | |||
memory: 200Mi | memory: 200Mi | ||
− | |||
volumeMounts: | volumeMounts: | ||
− | |||
- name: varlog | - name: varlog | ||
− | |||
mountPath: /var/log | mountPath: /var/log | ||
− | |||
- name: varlibdockercontainers | - name: varlibdockercontainers | ||
− | |||
mountPath: /var/lib/docker/containers | mountPath: /var/lib/docker/containers | ||
− | |||
readOnly: true | readOnly: true | ||
− | |||
terminationGracePeriodSeconds: 30 | terminationGracePeriodSeconds: 30 | ||
− | |||
volumes: | volumes: | ||
− | |||
- name: varlog | - name: varlog | ||
− | |||
hostPath: | hostPath: | ||
− | |||
path: /var/log | path: /var/log | ||
− | |||
- name: varlibdockercontainers | - name: varlibdockercontainers | ||
− | |||
hostPath: | hostPath: | ||
− | |||
path: /var/lib/docker/containers | path: /var/lib/docker/containers | ||
− | |||
== Activities == | == Activities == |
Revision as of 13:22, 22 February 2024
Kubernetes Daemonset can be used to run replicas of a pod on specific or all nodes.
- https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
- https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/#daemonset
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
https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
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 node # 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
- Stop daemonset:
kubectl patch daemonset <name-of-daemon-set> -p '{"spec": {"template": {"spec": {"nodeSelector": {"non-existing": "true"}}}}}'
Related terms
kubectl api-resources
kind: DaemonSet
kubectl get daemonset, kubectl get daemonset -A
kubectl rollout daemonset
- StatefulSet
- aws-node
See also
Advertising: