六、K8S-DaemonSet(DS)

DaemonSet:简称DS,守护进程控制器

        DS的主要作用,是在kubernetes集群里,运行一个daemon pod。DS只管理POD 对象,然后通过nodeAffinity和Toleration这两个调度器的小功能,保证每个节点上有且只有一个pod。

特征:

  1. 集群内的每个节点都运行这一个相同的pod
  2. 当有新节点接入集群后,该pod会自动在新节点上创建
  3. 在删除节点时,对应的pod 也不回删除
  4. 会跟踪每个pod 的状态,当这个pod出现异常时,Crash掉了,会及时的去recovery这个状态

典型用法

  1. 在每个节点上运行集群的守护进程
  2. 在每个节点上运行日志收集守护进程。
  3. 在每个节点上运行监控收集进程

案例:

apiVersion: apps/v1
kind: DaemonSet
metadata:name: daemonlabels:app: nginx
spec:revisionHistoryLimit: 10selector:matchLabels:app: nginxtemplate:metadata:creationTimestamp: nulllabels:app: nginxspec:nodeSelector:ds: "true"containers:- name: nginximage: nginx:1.15.3ports:- containerPort: 80name: nginxupdateStrategy:#rollingUpdate:#  maxUnavailable: 1#type: RollingUpdatetype: OnDelete

创建完成之后就可以看到在每个节点上有一个pod

[root@k8s-master-1 test]# kubectl get pod -owide
NAME                  READY   STATUS    RESTARTS   AGE    IP             NODE         NOMINATED NODE   READINESS GATES
busybox               1/1     Running   11         46h    10.244.1.85    k8s-node-2   <none>           <none>
daemon-s5lnb          1/1     Running   0          7m1s   10.244.1.93    k8s-node-2   <none>           <none>
daemon-wjv2k          1/1     Running   0          7m4s   10.244.0.120   k8s-node-1   <none>           <none>#如果不想在某一个节点创建DaemonSet,那么就给需要创建DS的节点打一个标签
[root@k8s-master-1 test]# kubectl label node k8s-node-2 ds=true
node/k8s-node-2 labeled#然后在yaml文档中添加标签spec.template.spec.nodeSelector: ds="true"#然后更新yaml文件
[root@k8s-master-1 test]# kubectl replace -f DaemonSet.yaml 
daemonset.apps/daemon replaced#就看到只在节点2上创建了DS
[root@k8s-master-1 test]# kubectl get pod -owide
NAME                  READY   STATUS    RESTARTS   AGE    IP             NODE         NOMINATED NODE   READINESS GATES
daemon-xwtz8          1/1     Running   0          9s     10.244.1.94    k8s-node-2   <none>           <none>DaemonSet的更新和回滚和Deployment相同[root@k8s-master-1 test]# kubectl get node --show-labels   查看标签
[root@k8s-master-1 test]# kubectl rollout history ds daemon  查看历史版本记录
[root@k8s-master-1 test]# kubectl rollout undo ds daemon  回滚
[root@k8s-master-1 test]# kubectl set image ds daemon nginx=nginx:1.15.4 --record

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络-DHCP中继(思科)

思科 前提&#xff1a;将R1 R3配置16板卡 将R1更改标识符为三层交换机 将R3更改标识符为交换机 拓扑图&#xff1a; R2进行配置 配置IP地址 为12.0.0.2 配置默认路由到R1的f1/4接口 配置dhcp地址池 配置vlan10的地址池 配置vlan20的地址池 三层交换机R1进行配置 将f1/4接口…

高光谱分类论文解读分享之基于形态卷积神经网络的高光谱影像分类

IEEE TGRS 2021&#xff1a;基于形态卷积神经网络的高光谱影像分类 题目 Morphological Convolutional Neural Networks for Hyperspectral Image Classification 作者 Swalpa Kumar Roy; Ranjan Mondal; Mercedes E. Paoletti; Juan M. Haut; Antonio Plaza 关键词 Clas…

关于git与git-lfs对文件压缩存储方面的研究

先说结论&#xff0c;git使用了Delta增量压缩算法&#xff0c;git-lfs实测没有进行任何压缩&#xff0c;这个结论让我很震惊。 测试过程如下&#xff1a; 测试git仓库自身的压缩 准备一个包含许多杂项文件的文件夹&#xff0c;大概几百M&#xff0c;要保证有一个txt文本文件…

require vs import,深入了解JavaScript模块引入方式,应用场景剖析

JavaScript作为一种脚本语言&#xff0c;经过多年的发展已经成为Web开发的主要语言之一。随着项目的复杂性增加&#xff0c;对于代码组织和管理的需求也日益迫切。这促使了JavaScript模块系统的不断发展。 背景 JavaScript模块系统的发展背景 在早期&#xff0c;JavaScript并…

Qt框架学习 --- CTK编译(Qt5.15.2+vs2019+cmake)

系列文章目录 第二章 CTK的测试demo https://blog.csdn.net/yonug1107716573/article/details/135527289 文章目录 系列文章目录前言一、准备工作二、编译步骤1.修改文件2.编译CTK2.1 准备2.2 cmake界面配置2.3 配置编译器2.4 编译的配置设置2.5 选择需要编译的模块2.6 生成2.…

Python和Julia TensorFlow科学计算常微分方程求解器

常微分方程 常微分方程&#xff08;ODE&#xff09;可用于描述动态系统。 从某种程度上来说&#xff0c;我们生活在一个动态系统中&#xff0c;窗外的天气从黎明到黄昏都在变化&#xff0c;我们体内发生的新陈代谢也是一个动态系统&#xff0c;因为随着时间的推移&#xff0c;…

Jenkins容器使用宿主机Docker

构建镜像和发布镜像到harbor都需要使用到docker命令。而在Jenkins容器内部安装Docker官方推荐直接采用宿主机带的Docker即可。 设置Jenkins容器使用宿主机Docker 设置宿主机docker.sock权限&#xff1a; sudo chown root:root /var/run/docker.sock sudo chmod orw /var/run/d…

Easypoi word 模板导出问题

按word模板导出报错 源代码&#xff1a; //获取项目的根目录 ClassPathResource classPathResource new ClassPathResource("/word/template.docx"); InputStream inputStream classPathResource.getStream(); MyXWPFDocument xwpfDocument WordExportUtil.expo…

Uibot (RPA设计软件)股票板块行情抓取————课前材料四

微信群发助手机器人的小项目友友们可以参考小北的课前材料二博客~ (本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff09; 紧接着小北的前两篇博客&#xff0c;友友们我们即将开展新课的学习~RPA 培训前期准备指南——安装Uibot(RPA设计软件&#x…

Java 并发性和多线程3

七、线程安全及不可变性 当多个线程同时访问同一个资源&#xff0c;并且其中的一个或者多个线程对这个资源进行了写操作&#xff0c;才会产生竞态条件。多个线程同时读同一个资源不会产生竞态条件。 我们可以通过创建不可变的共享对象来保证对象在线程间共享时不会被修改&…

AI绘画风格化实战

在社交软件和短视频平台上&#xff0c;我们时常能看到各种特色鲜明的视觉效果&#xff0c;比如卡通化的图片和中国风的视频剪辑。这些有趣的风格化效果其实都是图像风格化技术的应用成果。 风格化效果举例 MidLibrary 这个网站提供了不同的图像风格&#xff0c;每一种都带有鲜…

Neo4j知识图谱(2)创建与删除

Neo4j - CQL简介_w3cschoolhttps://www.w3cschool.cn/neo4j/neo4j_cql_introduction.html一、创建节点 create(n:Person{name:何仙鸟,age:21}) create就是创建&#xff0c;无论是点还是边都是用create来创建 n相当于一个别名&#xff0c;比如创建一个Person&#xff0c;而Pe…

嵌入式软件面试之程序在存储器中的分布

Hi, 大家好&#xff0c;今天阿目分享的是一个嵌入式软件面试的常见问题&#xff0c;内存分布或者说程序在内存中的布局&#xff0c;我们写的程序是按照怎么的准则放在内存中的&#xff1f; 一般有操作系统的嵌入式设备&#xff0c;都会有一个Bootloader, 它负责在上电后初始化…

reids优化系列(五)

后面更新的这些文章是将所学的redis知识进行巩固并且分享&#xff0c;也希望这些知识不仅仅是用于复习面试&#xff0c;更能在实际的应用中起到优化的作用。 有时候我们会存储一些查询多&#xff0c;修改少&#xff0c;业务逻辑较弱的数据&#xff0c;并且还能高效查询&#x…

漏洞修复整理

一、Geoserver Apache HTTP/2拒绝服务漏洞&#xff08;CVE-2023-44487&#xff09;、Eclipse Jetty 资源管理错误漏洞(CVE-2023-26048)、Eclipse Jetty 信息泄露漏洞(CVE-2023-26049) 受影响版本&#xff1a;9.4.53以下版本 处理方式&#xff1a;原地升级 &#xff08; jdk版本…

【记录】求职经历

目标岗位&#xff1a;嵌入式开发 1. 线上笔试 常用算法&#xff0c;比如动态规划、递归等标准模板库&#xff08;STL&#xff09;C 11新特性LeetCode刷题牛客刷题 2. 技术一面 3. 技术二面 4. 主管面 5. HR面

学习redis有效期和数据类型

1、安装redis和连接redis 参考&#xff1a;ubuntu安装单个redis服务_ubuntu redis单机版安装-CSDN博客 连接redis&#xff1a;redis-cli.exe -h localhost -p 6379 -a 123456 2、Redis数据类型 以下操作我们在图形化界面演示。 2.1、五种常用数据类型介绍 Redis存储的是key…

BCPL语言 :这可是B语言啊,汤姆森大佬趁老婆回老家用来开发第一个unix操作系统的语言(大佬基于BCPL开发的bon语言,C语言前身)

BCPL(“基本组合编程语言”)是一种过程式、命令式和结构化的编程语言。BCPL最初旨在为其他语言编写编译器&#xff0c;现在已不再常用。然而&#xff0c;它的影响仍然存在&#xff0c;因为BCPL的一个剥离和语法改变的版本&#xff0c;称为B&#xff0c;是C编程语言的基础。BCPL…

Linux文件创建教程:简单易懂的操作指南和示例代码详解

在Linux系统中&#xff0c;文件的创建是日常使用中经常遇到的操作之一。本篇教程将向你介绍如何在Linux系统中创建文件&#xff0c;并提供详细的示例代码&#xff0c;让你能够轻松上手。 1. 使用touch命令创建文件 touch命令是最简单、最常用的创建文件的方法之一。它可以用来…

jenkins-cl参数化构建

pipeline片段&#xff08;对应jenkins-cli -p参数的BRANCHdevelop&#xff09; parameters {string(name: BRANCH, defaultValue: master, description: Enter the branch name)}stages {stage(Get Code) {steps {script {def branch params.BRANCHcheckout scmGit(branches: …