kubernetes中DaemonSet控制器

本文介绍了DaemonSet控制器在Kubernetes中的应用,如何在每个节点上保证Pod副本的自动部署和回收,以及如何通过设置污点容忍来控制Pod调度。案例演示了创建和管理DaemonSet资源的过程。
摘要由CSDN通过智能技术生成

一、概念

        使用DaemonSet控制器,相当于在节点上启动了一个守护进程。通过DaemonSet控制器可以确保在每个节点上运行Pod的一个副本。如果有新的node节点加入集群,则DaemonSet控制器会自动给新加入的节点增加一个Pod的副本;反之,当有node节点被从集群中移除时,DaemonSet控制器也会自动回收Pod的副本。在删除DaemonSet控制器时,会删除DaemonSet控制器所创建的所有Pod的副本。

        他可以实现与pod反亲和性同样的目的,每个节点分别创建一个相同的pod;

典型的用法:

        1,在每个节点上运行集群的守护进程(例如:flannel,proxy)

        2,在每个节点上运行日志收集的守护进程(例如:filebeat)

        3,在每个节点上运行监控的守护进程(例如:zabbix、prometheus)

温馨提示:

1,当有新的节点加入集群,也会在新的节点上创建pod;

2,当有节点被集群移除,这些pod也会被收回;

3,删除daemonset资源,也会删除它所创建的pod;

4,如果节点被打了污点,且daemonset没有定义污点容忍,则pod并不会被调度到该节点上

 二、DaemonSet操作案例

1、创建资源清单

这里设置了master的污点容忍,这样就可以在master上也能分配资源

[root@k8s231 daemonset]# cat daemonset.yaml 
apiVersion: apps/v1
kind: DaemonSet
metadata: 
  name: ds-01
spec:
  selector:
    matchLabels:
      k8s: xinjizhiwa
  template:
    metadata:
      labels:
        k8s: xinjizhiwa
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master # 表示容忍污点的表情
        effect: NoSchedule   #表示容忍污点标签的类型
      containers:
      - name: c1
        image: nginx:1.20.1-alpin

2、创建资源

[root@master deployment-demo]# kubectl apply -f daemonset.yaml 
daemonset.apps/ds-01 created
 

3、查看资源

我们可以看到,在3个节点都有创建pod资源 

4、补充点,污点类型

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值