七、K8S之DaemonSet

DaemonSet

一、概念

DaemonSet 是一个针对节点的Pod控制器,确保全部或者某些节点上运行一个Pod副本。当有节点加入集群时,也会为他们新增一个Pod。节点从集群移除,Pod也会被回收,删除DaemonSet 将会删除它创建的所有Pod。

DaemonSet 常见的用法:

  • 在每个节点上运行集群守护进程
  • 在每个节点上运行日志收集守护进程
  • 在每个节点上运行监控守护进程

二、配置文件

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd
spec:
  selector:
    matchLabels:
      app: logging # 必须要和spec.template.metadata.labels 相匹配,用来声明DaemonSet控制哪些Pod
  template:
    metadata:
      labels:
        app: logging
      name: fluentd
    spec:
      # 节点匹配
      nodeSelector:
        app: log_nodes
      containers:
      - name: fluentd-es
        image: agilestacks/fluentd-elasticsearch:v1.3.0
        env:
         - name: FLUENTD_ARGS
           value: -qq
        volumeMounts:
         - name: containers
           mountPath: /var/lib/docker/containers
         - name: varlog
           mountPath: /varlog
      volumes:
         - hostPath:
             path: /data/docker/containers
           name: containers
         - hostPath:
             path: /data/docker/log
           name: varlog

上述文件中spec.template.spec.nodeSelector 指定了带有标签app=log_nodes的节点上部署, 如果不指定的话就是所有

你可能感兴趣的:(Kubernetes,运维,kubernetes,容器,云原生)