25、k8s-pod的控制器-第四种-DaemonSet(DS)-有几个node就自动创建几个pod

概念:DaemonSet类型的控制器可以保证集群中的每一台(或指定)节点上都运行一个副本、一般适用于日志收集、节点监控场景等、也就是说、如果一个pod
提供的功能是节点级别的(每个节点都需要且只需要一个)、那么这类pod就适合使用DaemonSet类型的控制器创建

 

DaemonSet的特点:
    ·每当向集群中添加一个node节点时、DS控制器指定的pod副本就会自动往该新增的node节点上新增pod
    ·当节点从集群中移除时、pod也就被回收了
DamonSet的yaml清单:
--------------------------------------------------------------------
apiVersion: apps/v1
king: DaemonSet
metadata:
  name: daemonset
  namespace: dev
  labels:
    app: nginx-pod

spec:
  revisionHistoryLimit: 3       #保留的历史版本
  updataStrategy:       #更新策略(重建更新、滚动更新、金丝雀发布)
    type: RollingUpdata #滚动更新
    roolingUpdata:
      maxUnavailable: 1         #最大不可用状态的pod的最大值、可以为百分比、也可以为整数
  selector:     #选择器
    matchLabels:        #标签匹配规则
      app: nginx-pod
    matchExpressions:   #Expressions匹配规则
      - {key: app, operator: In, values: [nginx-pod]}
  template:     #pod模板
    metadata:
      labels:
        app: nginx-pod
   spec:
     containers:
     - name: nginx
       image: nginx:1.17.1
       port:
       - containerPort: 80
-------------------------------------------------------------------------------------------------------------------
    

案例

1、创建ds的yanml文件:
----------------------------------------------------
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: pc-daemonset
  namespace: dev

spec:
  selector:
    matchLabels:
      app: nginx-pod
  template:
    metadata:
      labels:
        app: nginx-pod
    spec:
      containers:
      - name: nginx
        image: nginx:1.17.1
------------------------------------------------------
2、创建ds控制器: kubectl create -f pc-daemonset.yaml
3、查看ds:kubectl get ds -ndev
--------------------------------------------------------------------------------------
NAME           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
pc-daemonset   1         1         1       1            1           <none>          49s

#注意由于这里只有一个node节点所以ds指创建了一个pod、如果有多个node节点ds就会自动创建对应的pod
#ds会保证每一个node上都运行一个pod
---------------------------------------------------------------------------------------------------

4、删除ds:kubectl delete -f pc-daemonset.yaml

 

posted @ 2024-07-01 00:12  little小新  阅读(13)  评论(0编辑  收藏  举报