首页 > 其他分享 >DaemonSet概念

DaemonSet概念

时间:2023-03-26 16:12:45浏览次数:35  
标签:副本 nginx 节点 概念 DaemonSet spec daemonset

概念

在 Kubernetes 中,DaemonSet 是一种控制器对象,用于确保在每个节点上运行一个 Pod 副本。与 ReplicaSet 和 Deployment 不同,它们只负责在集群中的所有节点上创建 Pod 副本,而不考虑副本数量

DaemonSet对象通常被用于需要在每个节点上运行某个服务或应用程序时,比如日志收集、监控代理、网络插件等。使用 DaemonSet 可以确保每个节点都运行该服务或应用程序,并且可以自动在新加入集群的节点上启动相关的 Pod 副本
与其他控制器对象类似,DaemonSet 也支持滚动更新、回滚版本、扩展和缩小副本数量等操作,同时还可以通过 NodeSelector 和 NodeAffinity等特性来指定 DaemonSet 在哪些节点上运行。

注意:由于 DaemonSet 在每个节点上都会运行一个 Pod 副本,因此对于较大的集群,可能会导致资源消耗较大,需要谨慎使用和管理。同时,在使用 DaemonSet 时,需要考虑到节点之间的差异部署。

创建DaemonSet

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: registry.cn-beijing.aliyuncs.com/dotbalo/nginx:1.15.12-alpine

此时查看每个节点上都创建了一个daemonset(如果设置了污点则不会创建),若想每个pod创建2个daemonset只能再创建一个yaml

指定节点部署(给节点打标签)

参数:

  nodeSelector: 

首先给工作节点打上标签

kubectl label node k8s-node01 k8s-node02 my-label=daemonset

然后在yaml文件加上nodeSelector:参数,并指定标签

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:
        my-label: daemonset
      containers:
      - name: nginx
        image: registry.cn-beijing.aliyuncs.com/dotbalo/nginx:1.15.12-alpine

更新回滚策略

DaemonSet也有 OnDelete 和 RollingUpdate 两种方式
DaemonSet 的更新和回滚与 Deployment 类似,请参考之前StatefulSet与deployment的wiki

标签:副本,nginx,节点,概念,DaemonSet,spec,daemonset
From: https://www.cnblogs.com/xgg123/p/17258836.html

相关文章

  • java——spring boot集成kafka——broker、主题、分区、副本——概念理解
    一、代理商Broker 在之前我们已经为大家介绍了生产者向消息队列中投递消息,消费者从消息队列中拉取数据。 在kafka消息队列中有一个非常重要的概念就是代理Broker,大家......
  • 新概念2册L68笔记(动名词的主语作主语&宾语的区分)
    L68Persistent单词理解语法理解动作词的逻辑动名词的主语:1、无特殊说明:句子主语/泛指任何人2、逻辑主语:动名词作主语:所有格动名词作宾语:所有格/宾格课文理解......
  • kafka的基本概念
    1BrokerKafka集群包含一个或多个服务器,服务器节点称为broker。如图,我们有2个broker,6个partition,则会均分;如果只有1个partition,那么另一个broker会闲置。理想情况,我们希望br......
  • java——spring boot集成kafka——kafka中主题topic和分区partition的概念
                                                       ......
  • Vue的命令式和声明式的概念
    1.命令式框架(jQuery)这里有个小例子:1.获取id为app的div标签2.设置他的文本内容是hello,world3.为其绑定点击事件4.当点击时候弹出提示ok1.首先我们通过$来活动app的标签$(`......
  • 快速掌握 机器学习(Machine Learning) 常用概念术语,常用算法
    1、什么是机器学习?机器学习的概念:传统上如果我们想让计算机工作,我们给它一串指令,然后它遵照这个指令一步步执行下去。有因有果,非常明确。这样的方式计算机是无法执行固定流......
  • AJAX概念以及使用
    一、介绍AJAX1.AJAX全称为AsynchronousjavaScriptAndXML就是异步的JS和xml通过AJAX可以在浏览器中向服务器发送异步请求,最大优化:无刷新获取数据二、介绍XML(拓展XML代......
  • 面向对象的概念
    //原料functionfn(){//将这个函数中的this改变,指向new新创建的对象//加工this.name="root";}////出厂varf=new......
  • Dubbo概念与作用
    一、介绍Dubbo是一款高性能、轻量级的JavaRPC框架,它的目标是提供高性能和透明化的RPC远程服务调用方案,使得应用之间可以通过RPC协议相互调用,从而降低系统之间的耦合度,......
  • git基本概念
     Git的四个区域1.workspace:工作区,就是你在电脑里能看到的目录,也是编辑文件的位置2.index/stage:暂存区,用于保存即将提交到文件列表的信息,实际上是一个文件(.git/index文......