美文网首页
k8s-pod之DaemonSet

k8s-pod之DaemonSet

作者: david161 | 来源:发表于2022-03-13 19:08 被阅读0次

    DaemonSet 确保全部Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有Pod。
    在每一个node节点上只调度一个Pod,因此无需指定replicas的个数,比如:
    1)在每个node上都运行一个日志采集程序,负责收集node节点本身和node节点之上的各个Pod所产生的日志
    2)在每个node上都运行一个性能监控程序,采集该node的运行性能数据

    DaemonSet模板说明

    可以通过kubectl命令行方式获取更加详细信息

    kubectl explain daemonset 
    kubectl explain daemonset.spec 
    kubectl explain daemonset.spec.template.spec
    

    部署DaemonSet

    controller/daemonsetdemo.yml

    apiVersion: apps/v1 
    kind: DaemonSet 
    metadata: 
      name: demonsetdemo 
      labels: 
        app: demonsetdemo 
    spec: 
      template: 
        metadata: 
          name: demonsetdemo 
          labels: 
            app: demonsetdemo 
        spec: 
          containers: 
            - name: demonsetdemo 
              image: nginx:1.17.10-alpine 
              imagePullPolicy: IfNotPresent 
          restartPolicy: Always 
      selector: 
        matchLabels: 
          app: demonsetdemo
    

    运行DaemonSet

    运行demonset 
    kubectl apply -f demonsetdemo.yml 
    
    查看pod详细信息:只有工作节点创建pod,master节点并不会创建。 
    kubectl get pod -o wide
    

    DaemonSet的滚动更新

    DaemonSet有两种更新策略类型:
    1)OnDelete:这是向后兼容性的默认更新策略。使用 OnDelete 更新策略,在更新DaemonSet模板后,只有在手动删除旧的DaemonSet pod时才会创建新的DaemonSet pod。这与Kubernetes1.5或更早版本中DaemonSet的行为相同。
    2)RollingUpdate:使用 RollingUpdate 更新策略,在更新DaemonSet模板后,旧的DaemonSet pod将被终止,并且将以受控方式自动创建新的DaemonSet pod。

    相关文章

      网友评论

          本文标题:k8s-pod之DaemonSet

          本文链接:https://www.haomeiwen.com/subject/edtzrrtx.html