美文网首页
Pod控制器之DaemonSet

Pod控制器之DaemonSet

作者: 会倒立的香飘飘 | 来源:发表于2021-03-04 11:05 被阅读0次

Pod控制器之DaemonSet

简介:
DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod也会被回收。删除 DaemonSet将会删除它创建的所有 Pod
使用 DaemonSet 的一些典型用法:
运行集群存储 daemon,例如在每个 Node 上运行 glusterd 、 ceph
在每个 Node 上运行日志收集 daemon,例如 fluentd 、 logstash
在每个 Node 上运行监控 daemon,例如 Prometheus Node Exporter、 collectd 、Datadog 代理、New Relic 代理,或 Ganglia gmond

创建一个DaemonSet

vim ds.yaml 
apiVersion: apps/v1
kind: DaemonSet
metadata: 
  name: nginx-ds
  namespace: default
spec:
  selector:
    matchLabels:
      app: nginx 
      release: stable
  template:
    metadata:
      labels:
        app: nginx 
        release: stable
    spec:
      containers:
      - name: nginx 
        image: nginx:1.14
        imagePullPolicy: IfNotPresent
        ports:
        - name: http
          containerPort: 80
    

创建DaemonSet

 kubectl apply -f ds.yaml 

查看DaemonSet

image.png

DaemonSet创建的pod只会在每个节点运行一个

DaemonSet也支持滚动更新:

image.png

v1.6 + 支持 DaemonSet 的滚动更新,可以通过 .spec.updateStrategy.type 设置更新策略。目前支持两种策略

OnDelete:默认策略,更新模板后,只有手动删除了旧的 Pod 后才会创建新的 Pod
RollingUpdate:更新 DaemonSet 模版后,自动删除旧的 Pod 并创建新的 Pod
在使用 RollingUpdate 策略时,还可以设置
.spec.updateStrategy.rollingUpdate.maxUnavailable, 默认 1
spec.minReadySeconds,默认 0

回滚:

1 查询历史版本
 kubectl rollout history daemonset <daemonset-name>
2  查询某个历史版本的详细信息
kubectl rollout history daemonset <daemonset-name> --revision=1
3,回滚
kubectl rollout undo daemonset <daemonset-name> --to-revision=<revision>
4,查询回滚状态
kubectl rollout status ds/<daemonset-name>

指定 Node 节点

DaemonSet 会忽略 Node 的 unschedulable 状态,有两种方式来指定 Pod 只运行在指定的 Node 节点上:

  • nodeSelector:只调度到匹配指定 label 的 Node 上
  • nodeAffinity:功能更丰富的 Node 选择器,比如支持集合操作
  • podAffinity:调度到满足条件的 Pod 所在的 Node 上

nodeSelector 示例

DaemonSet 会忽略 Node 的 unschedulable 状态,有两种方式来指定 Pod 只运行在指定的 Node 节点上:

nodeSelector:只调度到匹配指定 label 的 Node 上
nodeSelector 示例
1,首先给 Node 打上标签

kubectl label nodes node-01 disktype=ssd

2,然后在 daemonset 中指定 nodeSelector 为 disktype=ssd:

spec:
  nodeSelector:
    disktype: ssd

相关文章

网友评论

      本文标题:Pod控制器之DaemonSet

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