zoukankan      html  css  js  c++  java
  • 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字段控制滚动更新节奏,必要时可以执行暂停和继续操作。

     
     
  • 相关阅读:
    方法名的string类型应用(补)
    unity3D里面的点乘和叉乘
    C# 计算时间日期
    iOS设备屏幕分辨率分布
    免证书发布ipa文件真机测试
    unity3D +php +数据库
    windows下mysql5.1忘记root密码解决方法[win7]
    springboot配置多数据源(JdbcTemplate方式)
    【转】Google Chrome中顺时针/逆时针滚动圆的含义
    Redis内存模型(2):存储细节
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/12876200.html
Copyright © 2011-2022 走看看