服务守护进程:DaemonSet的使用

简介: 服务守护进程:DaemonSet的使用

DaemonSet又是什么?

DaemonSet是守护进程集,简写为ds;是在所有的节点或者匹配的节点上都部署一个Pod。

[root@k8s-master01 ~]# kubectl get nodes
NAME           STATUS   ROLES    AGE   VERSION
k8s-master01   Ready    <none>   8d    v1.23.3
k8s-master02   Ready    <none>   8d    v1.23.3
k8s-master03   Ready    <none>   8d    v1.23.3
k8s-node01     Ready    <none>   8d    v1.23.3
k8s-node02     Ready    <none>   8d    v1.23.3

比如从上段代码中可以看到我们集群有五个节点,Daemon会在这五个节点都部署一个Pod;又或者我们只需要在node节点部署,那么可以利用标签的方式只在node节点上部署Pod。比如我们的calico网络插件就是用DaemonSet部署的。

DaemonSet 的使用场景:

  • 监控数据收集:需要每个节点上收集数据
  • 监控节点状态
  • 负责每个节点的网络、存储等组件,如calico、ceph等

DaemonSet的使用:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: nginx
  name: nginx
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.18.0
        imagePullPolicy: Always
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

注意:没有副本数的参数

创建一个ds;然后查看可以看到每个节点上都生成了一个nginx副本。

[root@k8s-master01 ~]# kubectl create -f nginx-ds.yaml 
daemonset.apps/nginx created
[root@k8s-master01 ~]# kubectl get pod -o wide 
NAME          READY   STATUS    RESTARTS         AGE    IP               NODE           NOMINATED NODE   READINESS GATES
busybox       1/1     Running   21 (2m45s ago)   8d     172.27.14.193    k8s-node02     <none>           <none>
nginx-2c7xf   1/1     Running   0                2m2s   172.25.92.79     k8s-master02   <none>           <none>
nginx-kjdx8   1/1     Running   0                2m2s   172.25.244.200   k8s-master01   <none>           <none>
nginx-wwltz   1/1     Running   0                2m2s   172.27.14.199    k8s-node02     <none>           <none>
nginx-zl2lr   1/1     Running   0                2m2s   172.18.195.19    k8s-master03   <none>           <none>
nginx-znprg   1/1     Running   0                2m2s   172.17.125.7     k8s-node01     <none>           <none>

需要注意的地方:

  • restartPolicy字段默认是Always
  • Daemon Set没有副本数
  • 最大失败数需要写数字,建议1
  • 更新策略建议使用OnDelete,保留历史版本为1

其他地方与Deployment和StatefulSet类似,就不说了,可以看我另外两篇!

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2月前
|
Java 关系型数据库 MySQL
java控制Windows进程,服务管理器项目
本文介绍了如何使用Java的`Runtime`和`Process`类来控制Windows进程,包括执行命令、读取进程输出和错误流以及等待进程完成,并提供了一个简单的服务管理器项目示例。
44 1
|
3月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
200 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
6月前
|
开发框架 安全 .NET
【权限提升】Win本地用户&进程注入&令牌窃取&AT&SC&PS服务命令
【权限提升】Win本地用户&进程注入&令牌窃取&AT&SC&PS服务命令
|
7月前
|
安全 Linux 应用服务中间件
操作系统引导过程 与 服务进程的控制
操作系统引导过程 与 服务进程的控制
|
7月前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
7月前
|
数据采集 Java Python
python并发编程:Python在FastAPI服务中使用多进程池加速程序运行
python并发编程:Python在FastAPI服务中使用多进程池加速程序运行
1209 0
|
7月前
|
Linux
遇到Linux 端口占用时如何查看并杀掉服务进程
遇到Linux 端口占用时如何查看并杀掉服务进程
|
7月前
|
Kubernetes Cloud Native Linux
云原生|kubernetes |kubelet服务加入系统守护进程supervisor(centos7系统下演示通过)
云原生|kubernetes |kubelet服务加入系统守护进程supervisor(centos7系统下演示通过)
125 0
|
7月前
|
缓存 负载均衡 算法
百度搜索:蓝易云【如何优化Nginx服务进程详细。
优化Nginx服务进程是一个持续的过程,需要不断地监测和调整。建议在优化之前备份配置文件,并逐步应用和测试每个优化步骤的效果,以确保服务的稳定性和可靠性。
63 0
|
云安全 安全 生物认证
常见WAF进程/服务与WAF识别总结
常见WAF进程/服务与WAF识别总结
292 0

相关实验场景

更多