K8S学习笔记之控制器Deamonset

k8s 控制器:Daemonset 和 Job k8s Job 阅读详情

关键概念

该控制器会确保每一个节点上部署一个相同的副本,且只部署一个副本。

应用场景

在集群的每个节点上运行存储,比如:glusterd 或 ceph。
在每个节点上运行日志收集组件,比如:flunentd 、 logstash、filebeat 等。
在每个节点上运行监控组件,比如:Prometheus、 Node Exporter 、collectd 等。

了解工作原理:如何管理 Pod

daemonset 的控制器会监听 kuberntes 的 daemonset 对象、pod 对象、node 对象,这些被监听的对象之变动,就会触发 syncLoop 循环让 kubernetes 集群朝着 daemonset 对象描述的状态进行演进。

资源清单解释

# kubectl explain ds.spec
没有replicas字段
minReadySeconds <integer>        #当新的 pod 启动几秒种后,再 kill 掉旧的pod。 
revisionHistoryLimit <integer>   #历史版本 
selector <Object> -required-     #用于匹配 pod 的标签选择器 
template <Object> -required-     #定义 Pod 的模板,基于这个模板定义的所有 pod 是一样的 
updateStrategy <Object>          #daemonset 的升级策略

#  kubectl explain ds.spec.updateStrategy
rollingUpdate        <Object>    # 只支持RollingUpdate
     Rolling update config params. Present only if type = "RollingUpdate".
type <string>
     Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is
     RollingUpdate.
表示rollingUpdate 更新策略只支持 maxUnavailabe,先删除在更新;
因为我们不支持一个节点运行两个pod,因此需要先删除一个,在更新一个。

字段详述

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:                          # 定义容忍度,使其调度到master节点
      - key: node-role.kubernetes.io/master # master节点的污点
        effect: NoSchedule
      containers:
      - name: fluentd-elasticsearch
        image: xianchao/fluentd:v2.5.1
        imagePullPolicy: IfNotPresent
        resources:                          # 定义资源限额
          limits:
            cpu: 500m
            memory: 512Mi
          requests: 
            cpu: 200m 
            memory: 215Mi
        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

测试:部署日志组件

日志收集组件-fluentd

# 上传镜像,一定要在涉及到的所有节点上传镜像(包括master节点)
vim ds-fluentd.yaml
kubectl apply -f ds-fluentd.yaml

# 查看
kubectl get ds -n kube-system
kubectl get pods -n kube-system
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: 
      - key: node-role.kubernetes.io/master 
        effect: NoSchedule
      containers:
      - name: fluentd-elasticsearch
        image: xianchao/fluentd:v2.5.1
        resources:
          limits:
            cpu: 500m
            memory: 512Mi
          requests: 
            cpu: 200m 
            memory: 215Mi
        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

(k8s)Kubernetes 部署 Ingress 控制器 Traefik v2.0 一、Traefik 简介 二、Kubernetes 部署 Traefik 1、创建 CRD 资源 2、创建 RBAC 权限 3、创建 Traefik 配置文件 4、节点设置 Label 标签 5、Kubernetes 部署 Traefik 三、Traefik 路由规则配置 1、配置 HTTP 路由规则 (Traefik Dashboard 为例) 2、配置 HTTPS 路由规则... 阅读详情

相关推荐

17. Pod 自动管理——DeamonSet 和 Job

我们来假设一种场景,我们集群有很多个工作节点,我们需要在每一个工作节点上都运行一个监控程序,用以收集节点状态、日志等。那么如果使用 Deployment、StatefulSet,我们就得设置各自标签、污点来保证每一个副本相互隔离开,并正确调度到各个工作节点,那样真的是太麻烦了。有没有一种更为简单的方法呢?当然有,那就是 DeamonSet。我们来假设一个场景,有些任务在执行时,就是一个一次性任务,不像 Deployment 服务一直作为服务端运行。那应该如何处理呢?

qq_32468785的博客 735

【k8s】deamonset文件和说明

在Kubernetes的`DaemonSet`配置文件的`template`下的`spec`部分,可以指定`serviceAccount`或`serviceAccountName`。据我所知截止到我的知识截止点,`DaemonSet`中是不具有`serviceAccount`字段的,只有`serviceAccountName`字段。是Pod使用的Service Account的名称,Pod与Kubernetes API进行交互时,例如拉取配置信息,更新资源状态等,需要对API请求进行授权。

我的笔记本 5960

【K8S系列】深入解析DaemonSet

Kubernetes是一个容器编排平台,其中DaemonSet是Kubernetes中的一个重要概念。DaemonSet是一种控制器,用于在集群内运行一组Pod,并确保每个节点上都有一个Pod副本在运行。 1.2 常用特性 下面是一些DaemonSet的常用特性: 只在特定的节点上运行Pod:可以使用NodeSelector或者NodeAffinity来限制DaemonSet的Pod只在特定的节点上运行。 根据节点的标签更新Pod:如果在集群中添加或删除了节点,Kubernetes会通过DaemonS

颜淡慕潇 3万+

关于 Kubernetes中DeamonSet实操的一些笔记

人生真难,但不配让我认输 ---------沃金(知乎)

山河已无恙 1621

Aurix TC387 Ethernet代码解析之二_移植

英飞凌官方仅提供了TC397的例程,故需通过TC397例程来移植到TC387新建工程里。TC397官方例程名称【Ethernet_1_KIT_TC397_TFT】,网络上可以免费获取到,此处不赘述。使用工具【

m0_69929716的博客 884

神联动:LSTM+卡尔曼滤波!一区大门轻松开!

近来热度飙升,成为时间序列预测和状态估计等领域的香饽饽,非常好发高区!主要在于:这两者结合,不仅能提高模型预测准确性;还能拓展应用场景,为我们的论文创新提供发挥空间,且当下还在蓝海阶段,还不算卷。具体点说:卡尔曼滤波擅长处理线性状态估计和噪声,能使LSTM更好地适应动态环境的变化,减少噪声干扰,降低预测误差。而LSTM通过捕捉长期依赖关系,擅长处理非线性时间序列,能够弥补卡尔曼滤波在这方面的不足,从而把应用场景从传统的状态估计,延伸到金融预测、工业检测、自动驾驶等任务。

2401_82426425的博客 2208

K8S系列(六)DaemonSet详解

下面介绍第二个控制器:**DaemonSet。**同样的问题:如果我们没有 DaemonSet 会怎么样?下面有几个需求:DaemonSet 也是 Kubernetes 提供的一个 default controller,它实际是做一个守护进程的控制器,它能帮我们做到以下几件事情:这里用 fluentd 来做例子。DaemonSet 最常用的点在于以下几点内容:首先是存储,GlusterFS 或者 Ceph 之类的东西,需要每台节点上都运行一个类似于 Agent 的东西,DaemonSet 就能很好地满足这个

林木森的博客 1万+

PCB过孔电流承载解析:完整指南与数据参考

深入解析PCB过孔的电流承载能力,结合实际应用场景提供可靠设计参考。涵盖影响载流的关键因素,并整理实用的pcb过孔与电流对照一览表,帮助工程师优化布局与布线。

weixin_35677363的博客 632

小白-k8s学习-随笔2

1.pod是最小原子借口

weixin_44597836的博客 313

交通仿真软件:SUMO_(13).Python脚本与TraCI接口

通过TraCI接口,用户可以实现与SUMO仿真器的实时交互,获取和控制交通数据。本文档详细介绍了如何使用Python脚本与TraCI接口进行交互,包括基本的设置、数据获取和控制方法。此外,还展示了几个高级应用示例,如交通流优化、多代理系统、车辆路径规划和车辆行为模拟。这些示例可以帮助用户更好地理解如何利用TraCI接口进行复杂的交通仿真和分析。希望这些内容对您有所帮助,如果您有任何问题或需要进一步的帮助,请参考SUMO的官方文档或社区支持。

kkchenjj的博客 995

【异常】‘build.plugins.plugin.version‘ for org.apache.maven.plugins:maven-resources-plugin is missing

maven-compiler-plugin 插件版本信息没有指定导致了错误提示如下字面意思就是没有指定版本信息。

奶爸的编程之路,也就一周冷个三天 4599

【K8s】K8s控制器——Deamonset、Statefulset、Job与CronJob

3、Job与CronJob。一次性作业与周期性作业。

sweetsounding的博客 418

NXP(恩智浦)—TJA1043TK CAN收发器芯片详解

本文章主要讲解NXP(恩智浦)—TJA1043TK CAN收发器的相关知识。

零零刷的博客 2201

Kubernetes Pod控制器(ReplicaSet Deployment DeamonSet)

Kubernetes Pod控制器Kubernetes Pod控制器概述Pod控制器是什么Pod和Pod控制器控制器的必要性常见的控制器ReplicaSetDeploymentDaemonSetStatefulSetJobCronJobReplicaSet控制器ReplicaSet概述ReplicaSet功能创建ReplicaSetReplicaSet示例创建资源清单创建rs控制器查看rs控制器查看pod容器更新控制器应用更新查看更新流程删除pod应用查看版本RS扩缩容scale命令扩容配置文件缩容删除rs

m0_46690280的博客 959

嵌入式软考必备知识点:嵌入式系统开发中的重要概念和示例代码

在嵌入式软考中,有一些重要的知识点需要掌握,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口等。实时操作系统是一种专门设计用于嵌入式系统的操作系统,可以提供对任务调度、中断处理和资源管理等方面的支持。GPIO(通用输入输出):GPIO是嵌入式系统中常用的硬件接口,用于连接外部设备和嵌入式系统。以上是嵌入式软考中的一些必备知识点,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口。通过配置串口的波特率、数据位数和校验位等参数,可以实现与其他设备的可靠通信。一、嵌入式系统的基本概念。

PixeGO的博客 313

国科大学习资料--自然语言处理(宗成庆)-2019期末考试题

国科大学习资料–自然语言处理(宗成庆)-2019期末考试题 国科大学习资料–自然语言处理(宗成庆)-2019期末考试题 国科大学习资料–自然语言处理(宗成庆)-2019期末考试题

无名何许人的博客 2438

13-【kubernetes】Kubernetes Pod控制器—Depoyment、DeamonSet

一、Deployment(deploy) 1、Deployment与ReplicaSet之间的关系 2、Deployment的自动升级更新的结构图 上面是Depolyment,下面是ReplicaSet 3、Deployment需要注意的点 Deployment是通过管理ReplicaSet来管理Pod的,一个Deployment能管理的ReplicaSet的个数是可以自定义的,不定义的话,默认是10个 Deployment支持声明式更新配置 ,声明式更新配置的yaml文件,在创建资源.

qq_42303254的博客 623

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Kubernetes(k8s)Deployment、StatefulSet、DaemonSet、Job、CronJob五种控制器详解

一、简介 一般情况下,我们并不直接创建 Pod,而是通过 Deployment 来创建 Pod,由 Deployment 来负责创建、更新、维护其所管理的所有 Pods。 ReplicationSet(RS)和ReplicationController(RC)区别 这里就需要说一下ReplicationSet(RS)和ReplicationController(RC),RS是在RC基础上发展来的,在新版的Kubernetes中,已经将RC替换为RS 了,它们两者没有本质的区别,都是用于Pod副本数量的

匠人精神,持之以恒! 5884

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Kubernetes 实战 应用程序部署到k8s集群

程序简介: 服务端: beego写的restapi服务,简称 restapi db:mysql 数据库 简称:restapi-mariadb 源码地址 准备工作: 1. restapi 通过deployment部署; 2. restapi-mariadb 通过有状态的StatefulSet 部署; 3. db 的用户名密码通过secret配置; 4. restapi-mariadb 使用本地...

xiliangMa的博客 2029

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

第144天学习打卡( Kubernetes DaemonSet k8s集群组件 k8s的核心概念)

DaemonSet DaemonSet确保全部(或者一些)Node上运行一个Pod的副本。当有Node加入集群时,也会为他们新增一个Pod。当有Node从集群移除时,这些Pod也会被回收。删除Daemonet将会删除它创建的所有Pod。 使用DaemonSet的一些典型的用法: 运行集群存储daemon,例如在每个Node上运行glusterd、ceph。 在每个Node上运行日志收集daemon, 例如fluentd、logstash。 在每个Node上运行监控daemon,例如Prometheus N

doudoutj的博客 287

K8s: 控制器之DaemonSet对象和调度

6 )DaemonSet 仅在某些节点上运行 Pod。5 )DaemonSet Pod选择器。4 )DaemonSet Pod模板。3 )DaemonSet 必须字段。

Wang的专栏 1219

kubernetes之DaemonSet控制器

一、什么是DaemonSet? DaemonSet确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 使用 DaemonSet 的一些典型用法: 运行集群存储 daemon,例如在每个 Node 上运行glust...

syztoo 3584

k8s控制器之Daemonset

参考文档: https://www.qikqiak.com/k8strain/controller/daemonset/ DaemonSet控制器:概念、原理解读 DaemonSet概述 DaemonSet控制器能够确保k8s集群所有的节点都运行一个相同的pod副本,当向k8s集群中增加node节点时,这个node节点也会自动创建一个pod副本,当node节点从集群移除,这些pod也会自动删除;删除Daemonset也会删除它们创建的pod 基本上我们可以用下图来描述 DaemonSet 的拓扑图: 集群

李凯的博客 728

Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)

文章目录Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)一、Ingress 介绍二、Traefik 介绍三、部署 Ingress 控制器 Traefik1、Traefik 两种部署方式介绍2、创建 Traefik 配置文件3、将 Traefik 配置文件挂载到 ConfigMap4、设置 CA 证书5、给节点设置 Label6、创建 Traefik 服务账户与角...

qq_32641153的博客 1431

Kubernetes 控制器 DaemonSet

DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod DaemonSet 的典型应用场景有: 在集群的每个节点上运行存储 Daemon,比如 glusterd 或 ceph。 在每个节点上运行日志收集 Daemon,比如 flunentd 或 logstash。 在每个节点上运行监控 ..

小楼一夜听春雨,深巷明朝卖杏花 566

【云原生| K8S系列】Kubernetes Daemonset,全面指南

如果有500个工作节点,并且您部署了一个daemonset,则默认情况下daemonset控制器将为每个工作节点运行一个pod。另一个例子是,您有特定数量的工作节点专用于平台工具(入口、监控、日志等),并且希望仅在标记为平台工具的节点上运行与平台工具相关的Daemonset。在这种情况下,您可以使用nodeSelector仅在平台工具专用的工作节点上运行daemonset pods。例如,在有100个工作节点的集群中,一个可能有20个标记为GPU的工作节点来运行批处理工作负载。我们将在本指南的后面讨论它。

didiplus 2938
上一篇: K8S学习笔记之控制器statefulset
下一篇: 【23设计模式】代理模式及其应用
AlgebraFly
博客等级 码龄9年 260粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlgebraFly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值