Kubernetes - 4.6 Workload - DaemonSet,


什么是DaemonSet?

DaemonSet是部署在所有节点上用于在集群存储、日志收集、性能监控等场景。Pod的生命周期跟随节点,保证集群内的每一个(或者一些)节点都运行一组相同功能的Pod。在新的Kubernetes节点加入时,将会在节点上自动新增一个Pod,在节点移除后Pod也进行回收。

DaemonSet操作

DaemonSet使用Pod模板,此模板包含适用于其Pod的规范。Pod规范确定每个Pod的内容:应在其容器内运行的应用、应装载的卷、其标签和选择器等。

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nginx
spec:
  selector:
      matchLabels:
        name: nginx
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.16

查看StatefulSet列表
kubectl get daemonset
查看StatefulSet描述信息
kubectl describe daemonset

DaemonSet更新策略

通过指定 spec: updateStrategy 中定义的更新策略来确定如何处理更新。

OnDelete: 当手动删除旧的Pod时,新的Pod才会被自动被创建。
RollingUpdate: 默认的更新策略。旧的Pod自动被删除,新的Pod也自动创建。

相关内容