2025,每天10分钟,跟我学K8S(十五)- DaemonSet

        前面了解学习了K8S中的对象deployment和statefulset,知道他们对pod的管理,今天学习一种特殊的对象:DaemonSet。

        

什么是DaemonSet?

        DaemonSet用于确保在集群的每个节点上都运行一个或多个Pod的副本。与其他控制器(如statefulset和deployment)不同,DaemonSet主要用于在整个集群中的节点上运行系统级别的任务,如日志收集、监控代理等。

DaemonSet的主要作用

  1. 节点级别任务的部署:DaemonSet确保在每个节点上运行一个或多个Pod的副本,用于执行节点级别的任务。
  2. 自动扩展:当新的节点加入集群时,DaemonSet会自动在新节点上启动Pod实例,确保集群中每个节点都有一个或多个Pod的副本。
  3. 系统服务的运行:DaemonSet常用于运行集群中的系统服务,如日志收集、监控代理、群集数据库等。

还是以一个例子说明:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: daemonset-nginx
spec:
  selector:
    matchLabels:
      app: ds-nginx
  template:
    metadata:
      labels:
        app: ds-nginx
    spec:
      containers:
      - name: ds-nginx
        image: m.daocloud.io/docker.io/nginx:latest

注意DaemonSet 类型是没有replicas属性的。通过kubectl get pod -o wide命令 可以看到在每个node上面都启动了一个pod。并且当有新的服务器加入这个K8S群集,也会在这个新的服务器上自动扩展启动一个新的pod。

posted @ 2025-03-13 17:03  Devopser06  阅读(58)  评论(0)    收藏  举报  来源