游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

一文带你深入Kubernetes中的DeamonSet

  写在前面学习k8s遇到整理笔记感觉不管是dev还是ops,离不开生命周期,钩子,守护进程这些,还是要看看底层的东西。DeamonSet可以理解为特殊的ReplicaSet,即确保每个节点只运行一个pod副本的podSet生命周期与集群中node节点的周期相同类似系统中的守护进程systemd等
  人生真难,但不配让我认输沃金(知乎)daemonset
  DaemonSet确保全部节点上运行一个Pod的副本。当有节点加入集群时,也会为他们新增一个Pod。当有节点从集群移除时,这些Pod也会被回收。删除DaemonSet将会删除它创建的所有Pod。即单实例,每个节点只跑一个podDaemonSet应用场景
  DaemonSet的一些典型用法:在每个Node上运行一个GlusterFS存储或者Ceph存储的Daemon进程在每个Node上运行一个日志采集程序,例如Fluentd或者Logstach。在每个Node上运行一个性能监控程序,采集该Node的运行性能数据,例如PrometheusNodeExporter,collectd,NewRelicagent或者Gangliagmond等。
  一种简单的用法是为每种类型的守护进程在所有的节点上都启动一个DaemonSet。一个稍微复杂的用法是为同一种守护进程部署多个DaemonSet;每个具有不同的标志,并且对不同硬件类型具有不同的内存、CPU要求。这句话不太懂,以后再研究下
  DaemonSet的Pod调度策略与RC类似,除了使用系统内置的算法在每台Node上进行调度,也可以在Pod的定义中使用NodeSelector或NodeAffinity来指定满足条件的Node范围进行调度。
  学习环境准备〔rootvms81。liruilongs。github。io〕〔ansible〕dirk8sdaemonsetcreate;mkdirdir;cddir〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlconfigcurrentcontextkubernetesadminkubernetes〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlcreatensliruilongdameonsetcreatenamespaceliruilongdameonsetcreatecreated〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlconfigsetcontext(kubectlconfigcurrentcontext)namespaceliruilongdaemonsetcreateContextkubernetesadminkubernetesmodified。kubeadm中的deamonset
  使用kubeadm安装的k8s环境中是使用的DaemonSet,calico是网路相关,所有节点都需要有,kubeproxy是代理相关,用于负载均衡等操作〔rootvms81。liruilongs。github。io〕〔ansiblek8sReplicationController〕kubectlgetdsANAMESPACENAMEDESIREDCURRENTREADYUPTODATEAVAILABLENODESELECTORAGEkubesystemcaliconode33333kubernetes。iooslinux4d23hkubesystemkubeproxy33333kubernetes。iooslinux4d23h〔rootvms81。liruilongs。github。io〕〔ansiblek8sReplicationController〕Demonset的创建
  这里要说明的是DaemonSet和deployment只有在kind的位置不同,可以拷贝deployment的模板进行修改apiVersion:appsv1kind:DaemonSetmetadata:creationTimestamp:nulllabels:app:myds1name:myds1spec:replicas:1selector:matchLabels:app:myds1strategy:{}template:metadata:creationTimestamp:nulllabels:app:myds1spec:containers:image:nginxname:nginxresources:{}status:{}〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlcreatedeploymentmyds1imagenginxdryrunclientoyamldeamonset。yaml〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕vimdeamonset。yaml
  我们创建一个deamonset,当前只有master节点和一个node节点正常工作
  因为master节点有污点,所以会发现这里只允许一个deamonset〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlapplyfdeamonset。yamldaemonset。appsmyds1created〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlgetnodesNAMESTATUSROLESAGEVERSIONvms81。liruilongs。github。ioReadycontrolplane,master4d22hv1。22。2vms82。liruilongs。github。ioReadynone4d22hv1。22。2vms83。liruilongs。github。ioNotReadynone4d22hv1。22。2〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEmyds1fbmhp11Running035s〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕节点加入集群自动新增节点pod
  我们在启动一台机器,会发现,新加入的vms83。liruilongs。github。io节点自动运行一个deamonset〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlgetnodesNAMESTATUSROLESAGEVERSIONvms81。liruilongs。github。ioReadycontrolplane,master4d22hv1。22。2vms82。liruilongs。github。ioReadynone4d22hv1。22。2vms83。liruilongs。github。ioReadynone4d22hv1。22。2〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEmyds1prldj11Running06m13smyds1pvwm411Running010mDeamonset污点节点加入pod
  下面我们从新修改deamonset资源文件,容忍有污点的节点apiVersion:appsv1kind:DaemonSetmetadata:creationTimestamp:nulllabels:app:myds1name:myds1spec:replicas:1selector:matchLabels:app:myds1strategy:{}template:metadata:creationTimestamp:nulllabels:app:myds1spec:terminationGracePeriodSeconds:0tolerations:operator:Existscontainers:image:nginxname:nginxresources:{}status:{}〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlapplyfdeamonsettaint。yamldaemonset。appsmyds1created〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEmyds18tsnz01ContainerCreating03smyds19l6d901ContainerCreating03smyds1wz44b01ContainerCreating03s
  会发现每个节点都运行一个deamontset相关的pod〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectldescribenodesvms81。liruilongs。github。iogrepTaintTaints:noderole。kubernetes。iomaster:NoSchedule〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlrunpod1imagenginxdryrunserveroyamlgrepA6terminationGracePeriodSecondsterminationGracePeriodSeconds:30tolerations:effect:NoExecutekey:node。kubernetes。ionotreadyoperator:ExiststolerationSeconds:300effect:NoExecute
  当然,如果我们不想所以有污点的节点都运行deamonset相关pod,那么我们可以使用另一种指定kye的方式apiVersion:appsv1kind:DaemonSetmetadata:creationTimestamp:nulllabels:app:myds1name:myds1spec:selector:matchLabels:app:myds1template:metadata:creationTimestamp:nulllabels:app:myds1spec:terminationGracePeriodSeconds:0tolerations:operator:Existskey:noderole。kubernetes。iomastereffect:NoSchedulecontainers:image:nginxname:nginxresources:{}
  会发现deamonset可以运行在master和node节点〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlapplyfdeamonsetaint。yamldaemonset。appsmyds1created〔rootvms81。liruilongs。github。io〕〔ansiblek8sdaemonsetcreate〕kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEmyds1f7hbb01ContainerCreating04smyds1hksp901ContainerCreating04smyds1nnmzp01ContainerCreating04sDaemonPods是如何被调度的
  DaemonSet确保所有符合条件的节点都运行该Pod的一个副本。通常,运行Pod的节点由Kubernetes调度器选择。不过,DaemonSetPods由DaemonSet控制器创建和调度。这就带来了以下问题:
  Pod行为的不一致性:正常Pod在被创建后等待调度时处于Pending状态,DaemonSetPods创建后不会处于Pending状态下。
  Pod抢占由默认调度器处理。启用抢占后,DaemonSet控制器将在不考虑Pod优先级和抢占的情况下制定调度决策。这里的默认调度器即k8s中调度器。
  ScheduleDaemonSetPods允许您使用默认调度器而不是DaemonSet控制器来调度DaemonSets,方法是将NodeAffinity条件而不是。spec。nodeName条件添加到DaemonSetPods。默认调度器接下来将Pod绑定到目标主机。
  如果DaemonSetPod的节点亲和性配置已存在,则被替换(原始的节点亲和性配置在选择目标主机之前被考虑)。DaemonSet控制器仅在创建或修改DaemonSetPod时执行这些操作,并且不会更改DaemonSet的spec。template。nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:matchFields:key:metadata。nameoperator:Invalues:targethostname与DaemonPods通信
  DaemonSet中的Pod进行通信的几种可能模式如下:
  推送(Push):配置DaemonSet中的Pod,将更新发送到另一个服务,例如统计数据库。这些服务没有客户端。
  NodeIP和已知端口:DaemonSet中的Pod可以使用hostPort,从而可以通过节点IP访问到Pod。客户端能通过某种方法获取节点IP列表,并且基于此也可以获取到相应的端口。
  DNS:创建具有相同Pod选择算符的无头服务,通过使用endpoints资源或从DNS中检索到多个A记录来发现DaemonSet。
  Service:创建具有相同Pod选择算符的服务,并使用该服务随机访问到某个节点上的守护进程(没有办法访问到特定节点)。更新DaemonSet
  如果节点的标签被修改,DaemonSet将立刻向新匹配上的节点添加Pod,同时删除不匹配的节点上的Pod。你可以修改DaemonSet创建的Pod。不过并非Pod的所有字段都可更新。下次当某节点(即使具有相同的名称)被创建时,DaemonSet控制器还会使用最初的模板。
  你可以修改DaemonSet创建的Pod。不过并非Pod的所有字段都可更新。下次当某节点(即使具有相同的名称)被创建时,DaemonSet控制器还会使用最初的模板。
  您可以删除一个DaemonSet。如果使用kubectl并指定cascadeorphan选项,则Pod将被保留在节点上。接下来如果创建使用相同选择算符的新DaemonSet,新的DaemonSet会收养已有的Pod。如果有Pod需要被替换,DaemonSet会根据其updateStrategy来替换。DaemonSet的替代方案init脚本
  直接在节点上启动守护进程(例如使用init、upstartd或systemd)的做法当然是可行的。不过,基于DaemonSet来运行这些进程有如下一些好处:像所运行的其他应用一样,DaemonSet具备为守护进程提供监控和日志管理的能力。为守护进程和应用所使用的配置语言和工具(如Pod模板、kubectl)是相同的。在资源受限的容器中运行守护进程能够增加守护进程和应用容器的隔离性。然而,这一点也可以通过在容器中运行守护进程但却不在Pod中运行之来实现。例如,直接基于Docker启动。裸Pod
  直接创建Pod并指定其运行在特定的节点上也是可以的。然而,DaemonSet能够替换由于任何原因(例如节点失败、例行节点维护、内核升级)而被删除或终止的Pod。由于这个原因,你应该使用DaemonSet而不是单独创建Pod。静态Pod
  通过在一个指定的、受kubelet监视的目录下编写文件来创建Pod也是可行的。这类Pod被称为静态Pod。不像DaemonSet,静态Pod不受kubectl和其它KubernetesAPI客户端管理。静态Pod不依赖于API服务器,这使得它们在启动引导新集群的情况下非常有用。此外,静态Pod在将来可能会被废弃。Deployments
  DaemonSet与Deployments非常类似,它们都能创建Pod,并且Pod中的进程都不希望被终止(例如,Web服务器、存储服务器)。建议为无状态的服务使用Deployments,比如前端服务。对这些服务而言,对副本的数量进行扩缩容、平滑升级,比精确控制Pod运行在某个主机上要重要得多。当需要Pod副本总是运行在全部或特定主机上,并且当该DaemonSet提供了节点级别的功能(允许其他Pod在该特定节点上正确运行)时,应该使用DaemonSet。
  例如,网络插件通常包含一个以DaemonSet运行的组件。这个DaemonSet组件确保它所在的节点的集群网络正常工作〔rootvms81。liruilongs。github。io〕〔ansiblek8sReplicationController〕kubectlgetdsANAMESPACENAMEDESIREDCURRENTREADYUPTODATEAVAILABLENODESELECTORAGEkubesystemcaliconode33333kubernetes。iooslinux4d23hkubesystemkubeproxy33333kubernetes。iooslinux4d23h〔rootvms81。liruilongs。github。io〕〔ansiblek8sReplicationController〕

侵权易维权难,腾讯云发起松竹行动解决内容产业两大难题10月28日,腾讯云发起面向内容产业创作者和开发者的松竹行动,通过正版图库直通车、正版曲库直通车等产品降低正版素材使用门槛;整合腾讯云至信链能力,解决原创内容保护难题。松竹行动……深圳蛇口澳门航班复!航!啦终于!深圳蛇口澳门航班复!航!啦!9月10日9月13日蛇口外港外港蛇口10:0011:0011:3012:30蛇口氹仔氹仔蛇口13:0014:0014:301……实拍坦克500,配3。0TV6发动机,车长超5米,值得期待吗坦克400凭借机甲风的外观设计和家用的内饰风格,坦克400在自身优点和坦克300的铺路下一经发布就是自带流量出身,所以它们的大哥坦克500的热度自然也是不少。在当今老牌车企都争……最近想买台电脑,但是对电脑硬件又一窍不通,想请大家给些建议?选择电脑,首要考虑的是你入手这台电脑的应用目的是什么?然后根据你的应用目的,再请专业电脑人员为你建议配置与你所需要相匹配的电脑,这样比较实际的有的放矢地配置电脑;再有,根据自己……国家市场管理总局ATMB垄断行为再次作出顶格处罚,包含22宗7月7日,国家市场监督管理总局再次出手,针对阿里、腾讯、美团、滴滴、苏宁等互联网大厂的垄断行为进行顶格处罚,每家处罚金50万元,这已经不是第一次针对上述公司的垄断行为实施处罚,……遭三巨头夹击,主攻下沉市场,松果出行能否守住县城?共享单车进入我们的生活也有些年头了,甚至已经成为了很多人生活中必不可少的一部分,面对如此广阔的市场,各大资本并没有停下来,而是选择了更进一步,在很多一二线城市又推出了共享电动车……比特币核心有什么用?BitcoinCore是该软件的领先实现,使用户能够与比特币网络进行交互。它不归任何单个企业或组织所有,而是由全球开发人员社区更新和审查。该软件最初由中本聪(以比特币为名……发布三个月,小米12Pro值得入手吗?我们先来看一组数据,看完大家就知道小米12Pro是否值得入手了,毕竟数据不说说谎话:小米12Pro目前在JG自营店铺依然保持着月销2。57万台的好成绩,也就比小米12的3……如果连我也忘记了,那就没人记得了01hr一段视频,让我们成为英雄,开始全国巡游。走在人群中,周围吵杂的声音,总让我想起那时的情景。突然一声的拍桌响,都让我惊吓。烟花声响,像极了爆炸的声音。……祥鑫科技汽车模具龙头,逆势增长能否持续选股理由:新股上市逆周期业绩增长证券简称:祥鑫科技评级:BB数据截止日期:2019年9月30日单位:亿元证券代码:002965;成立日期:2004年;所在地:……云看东京奥运会!坚果O1给你身临其境的感觉东京奥运会赛程已经开始好几天了,各国运动员激战正酣,可以说是汇聚了全世界一流的运动员,真就神仙打架!但是受疫情影响,本次奥运会不得不空场举行,很多人都打算蜗居在家,通过手机Ap……互联网大厂校招名额大增!Android开发低门槛的时代一去不作者:loonggg最近看到一条热搜话题,问:互联网公司校招名额大幅增加说明了什么问题?这条新闻很长,我就不详细搬运了,大致意思就是:阿里巴巴,字节跳动,腾讯,京东……
新姿势实力派腾讯ROG游戏手机5震撼发布3月10日,新姿势,实力派腾讯ROG游戏手机5新品发布会线上举办,行业大咖、人气主播、电竞明星齐聚盛宴,与粉丝和网友热情互动,共同揭开新一代旗舰游戏手机的神秘面纱。自20……粤港澳大湾区居民生鲜消费能力惊人618京东物流助力在线消费升自比肩世界三大湾区的粤港澳大湾区升级为国家战略后,受到多方关注。迈进2018年,大湾区真正进入建设年。6月11日,智慧物流研究院发布了改革开放40年粤港澳大湾区物流发展洞察报告……万魔旗下品牌,逆风通话,小巧便携,玩游戏无延迟科技日新月异,万魔声学旗下子品牌omthing最近推出了首款真无线蓝牙耳机EO002BT,继承了万魔的声学技术,有着亲民的价位和不错的使用体验。耳机使用了ENC环境降噪技术,4……禁高通实则打击OVM,不如不买苹果,助力国产机发展关注科技圈的用户应该知道,美国这两天又闹幺蛾子了,5月15日出台了全面限制华为获取芯片的最新限制政策。华为受到美国的打击已有一年有余,身为同胞的我们当然不能坐以待毙。其中……合资大7座中型SUV,空间大过汉兰达,配2。5T动力,带你看提起七座SUV,少了谁也少不了丰田的汉兰达。有一说一,汉兰达在国内市场真的非常成功,而成功的原因就在于汉兰达可以满足消费者一切的需求。要空间,七座满载空间不会显得太过于拥挤,如……河南暴雨后浸泡的汽车怎么办?保险的估损又是多少最后何去何从?2021年的7月20日八时,河南中北部出现有史以来的特大暴雨,最严重的郑州城区的下雨量高达500~657毫米,国家防疫总局启动防汛级应急响应,针对暴雨引发的险情,应急部第一时间……每次10分钟跟我学Python(第十五次课)大家好!我是幻化意识流。今天继续跟我学Python。真是对不住粉丝!由于最近忙于处理各种琐事,着实是没有闲暇时间继续写课,今天终于能继续写了。我重新考虑了一下,我写这个的……新出现的怪象?全国这类打工者暴增,有人说这情况不妙根据最近一次人口普查显示,我国的人口数量已经达到14。1亿。这个人口数量虽然不低,但与前几次人口普查数量数据进行比对,可以发现近几年我国人口数量增长速度已经放缓多年。这一代我国……做一个忙忙碌碌的姑娘平时我们每天都是忙忙碌碌的,为了生活,每天都要早出晚归,要努力去上班赚钱,所有想要享受生活,过上自己心中理想的生活很难。但其实有时候并没有自己想的那么难,现在的很多姑娘生活都是……黄磊张艺兴的救星!它为何成为向往的生活指定产品?厨房,是每个家庭都值得认真装修的地方。而科技的创新,也大大改变了传统厨房模式,设计的细致,使得生活多了几分美,使烹饪变成一种享受。你多久自己做一次饭?你上一次点外卖是什么时候?……7月21日新机发布,真我手机誓为打造下半年的黑马最近国产手机线上销量前三名的realme又发布新品了,现在正在预热中。就是对于旗舰来说有很多标准,第一个是真正达到旗舰的配置,但是价格却无上限。第二种是在相应的价格中将配置拉满……家用汽车产品修理更换退货责任规定文件要点国家市场监督管理总局日前发布第43号令,公布《家用汽车产品修理更换退货责任规定》(以下简称《汽车三包规定》),自2022年1月1日起施行。该规章在2013年施行的……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网