服务守护进程: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类似,就不说了,可以看我另外两篇!

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
Java Linux
使用supervisor纳管java进程,自动重启服务
使用supervisor守护java进程,实现服务智能管理,自动重启。
1284 0
|
24天前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
4月前
|
Linux
遇到Linux 端口占用时如何查看并杀掉服务进程
遇到Linux 端口占用时如何查看并杀掉服务进程
|
5月前
|
Kubernetes Cloud Native Linux
云原生|kubernetes |kubelet服务加入系统守护进程supervisor(centos7系统下演示通过)
云原生|kubernetes |kubelet服务加入系统守护进程supervisor(centos7系统下演示通过)
61 0
|
5月前
|
缓存 负载均衡 算法
百度搜索:蓝易云【如何优化Nginx服务进程详细。
优化Nginx服务进程是一个持续的过程,需要不断地监测和调整。建议在优化之前备份配置文件,并逐步应用和测试每个优化步骤的效果,以确保服务的稳定性和可靠性。
27 0
|
8月前
|
云安全 安全 生物认证
常见WAF进程/服务与WAF识别总结
常见WAF进程/服务与WAF识别总结
147 0
|
9月前
|
应用服务中间件 Apache Windows
Apache Tomcat 9.0 Tomcat9服务无法启动,提示“Windows无法启动Apache Tomcat……错误1067:进程意外终止
Apache Tomcat 9.0 Tomcat9服务无法启动,提示“Windows无法启动Apache Tomcat……错误1067:进程意外终止
451 0
Apache Tomcat 9.0 Tomcat9服务无法启动,提示“Windows无法启动Apache Tomcat……错误1067:进程意外终止
|
11月前
|
负载均衡 监控 JavaScript
后台服务守护进程神器pm2介绍及使用
后台服务守护进程神器pm2介绍及使用
|
12月前
|
Java 开发工具 Android开发
跨进程访问(AIDL服务)
跨进程访问(AIDL服务)
77 0
|
网络协议 前端开发 JavaScript
深入了解 Node 的多进程服务
深入了解 Node 的多进程服务