• k8sDaemonSet控制器


     

    DaemonSet用于再集群中的全部节点上同时运行一份指定的pod资源副本,后续新加入的工作节点也会自动创建一个相关的pod对象,当从集群中移除节点时,此类pod对象也将被自动回收而无须重建。也可以使用节点选择器及节点标签指定仅在部分具有特定特征的节点上运行指定的pod对象。通常运行那些执行系统级操作任务的应用,具体如下:

    1、运行集群存储的守护进程,如在各个节点上运行glusterfs或ceph

    2、在各个节点上运行日志收集守护进程,如fluentd和logstash

    3、在各个节点上运行监控系统的代理守护进程,如Prometheus Node Exporter、collectd、Datadog agent、New Relic agent或Ganlia gmond等

    一、创建DaemonSet资源对象

    spec字段中嵌套使用的字段同样主要包含pod控制器资源支持的selector、template和minReadySeconds,并且功能和用法基本相同,但不支持使用replicas。

    复制代码
    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: filebeat-ds
      labels:
        app: filebeat
    spec:
      selector:
        matchLabels:
          app: filebeat
        template:
          metadata:
            labels:
              app:filebeat
            name: filebeat
          spec: 
            containers:
            - name: filebeat
              image: ikubernetes/filebeat:5.6.5-alpine
              env:
              - name: REDIS_HOST
                value: db.linux.io:6379
              - name: LOG_LEVEL
                value: info
    复制代码

    通过清单文件创建DaemonSet资源的命令:kubectl apply -f filebeat.yaml

    二、更新DaemonSet对象

    DaemonSet同样支持更新机制,相关配置定义在spec.updateStrategy嵌套字段中。目前,支持RollingUpdate(滚动更新)和OnDelete(删除时更新)两种策略,滚动更新为默认策略,工作逻辑类似于deploy,不过仅支持使用maxUnavailable属性定义最大不可用Pod资源副本数,默认为1,而删除时更新的方式则是在删除相应节点的pod资源后重建并更新为新版本。默认的滚动更新策略是一次删除一个工作节点上的pod资源,待其新版本pod资源重建完成后再开始操作另一个工作节点上的pod资源。也可以使用minReadySeconds字段控制滚动更新节奏,必要时可以执行暂停和继续操作。

     
     
  • 相关阅读:
    使用OPC的方式去连接PLC进行AB SLC-5_04数据的采集
    pytest:conftest.py运行细节一则
    《数据结构与算法》和《设计模式》之开门见山篇
    C语言真正的编译过程
    外挂原理之植物大战僵尸
    ORACLE数据库创建动态表
    JS中事件绑定问题
    由 “无法使用从远程表选择的 lob 定位符” 错误而引导出来的一系列问题解决方案
    安装JDK,配置环境变量有感
    MSSQL 常见故障处理
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/12876200.html
Copyright © 2020-2023  润新知