K8S哲学 - 资源调度 DaemonSet

应用场景 日志收集

引出:

正常情况下,每个服务都会进行 各自的日志收集、但是因为他们不在 同一台 Node 上,导致一旦查日志就需要 调动各个 机器进行切换,不方便也不高效

低级做法:

在每个需要收集日志的机器上部署 fiuentd 组件进行 后台收集日志 ,需要手动控制

高级做法:

用 DaemonSet 守护进程进行收集,由 k8s为 匹配到 nodeSelector 自动部署 ,这里是

nodeSelector:

type: microServices

后续如果有新增 节点,只要有 这个 标签,那么k8s 会自动新增 一个 DaemonSet 到该节点

Affinity 亲和力

创建资源

如果不指定 nodeSelector 直接 create -f 创建 ,DeamonSet 会部署到 非 master 的 每一个 node 上

复制代码
apiVersion: apps/v1
kind: DaemonSet
metadata: 
  name: fluentd
spec: 
  selector: 
    matchLabels:
      id: fluentd
      app: logging
  template:
    metadata: 
      name: fluentd
      labels:  
        id: fluentd
        app: logging
    spec: 
      containers:
         - name: fluentd-es
           image: fluentd
           env: 
            - name: FLUENTD_ARGS
              value: -qq
           volumeMounts:
             - name: containers
               mountPath: /var/lib/docker/containers
             - name: varlog
               mountPath: /varlog
      volumes:
        - name: containers
          hostPath: 
           path: /var/lib/docker/containers
        - name: varlog
          hostPath: 
           path: /varlog

但是 加上后

删除 重新 创建 ds 查看:

由于 本机节点没有 app=ds 的 label 所以不会在本机创建 ds

但是一旦加上,立刻就创建了

所以只要 节点在 改集群内,只要 在需要的节点加上 nodeSelector 就会在该节点创建 ds

修改 ds 的默认更新策略

默认是滚动更新,结果是,一旦修改 yaml文件 template 里面的 内容,那么所有节点的 ds 都会更新,所以 修改为 OnDelete 模式、当 某一个 节点的 ds需要更新,就删除 改 ds ,会自动按照新的 yaml文件创建一个 ds

相关推荐
AOwhisky12 小时前
Python 学习笔记(第三期)——流程控制:条件判断与循环结构
运维·笔记·python·学习·云原生·流程控制·循环
极客先躯12 小时前
高级java每日一道面试题-2026年03月30日-实战篇[Docker]-如何监控容器的网络流量?
java·运维·docker·容器·prometheus·高级面试
Waay13 小时前
Linux 三个核心环境变量配置文件、作用域、生效方式完整梳理
linux·运维·学习·云原生·容器
大E帝国子民114 小时前
Docker 部署 RocketMQ 5
docker·容器·rocketmq
SelectDB14 小时前
云数仓费钱?用 SelectDB Serverless 三步配出秒级弹性,最高降本 70%
数据库·云原生·数据分析
江湖有缘15 小时前
【保姆级教程】使用Docker Compose一键搭建Picsur私有图床服务
java·docker·容器
长不胖的路人甲17 小时前
微服务限流
微服务·云原生·架构
java_logo18 小时前
5 分钟共享打印机:用 Docker 一键部署 CUPS
运维·docker·容器·cups·网络打印机·共享打印机·docker部署cups
fen_fen18 小时前
Docker部署PostgreSQL10 开启SSL和证书安装文档
docker·容器·ssl
ai_coder_ai19 小时前
编写自动化脚本,在自己后端服务中使用云原生Baas服务进行设备相关操作
数据库·云原生·自动化