k8s-daemonSet控制器

k8s-daemonSet控制器

DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。 当有节点加入集群时, 也会为他们新增一个 Pod 。 当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。

DaemonSet 的一些典型用法:
1.在每个节点上运行集群守护进程
2.在每个节点上运行日志收集守护进程
3.在每个节点上运行监控守护进程

查看控制器


[root@master ~]# kubectl -n kube-system get daemonsets.apps
NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
kube-flannel-ds-amd64   2         2         2       2            2           <none>                        18h
kube-proxy              2         2         2       2            2           beta.kubernetes.io/os=linux   18h

创建控制器

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: my-daemonset
spec:
  selector:
    matchLabels:
      app: dae1
  template:
    metadata:
      labels:
        app: dae1
    spec:
      containers:
      - name: my-pod-dae
        image: 192.168.84.11/k8s/music:v3
        ports:
        - protocol: TCP
          containerPort: 80
[root@master controllers]# kubectl get daemonsets.apps -o wide
NAME           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE   CONTAINERS   IMAGES                       SELECTOR
my-daemonset   1         1         1       1            1           <none>          50s   my-pod-dae   192.168.84.11/k8s/music:v3   app=dae1
[root@master controllers]# kubectl get pod  -o wide
NAME                             READY   STATUS             RESTARTS   AGE    IP            NODE           NOMINATED NODE   READINESS GATES
my-daemonset-l2twf               1/1     Running            0          2m2s   10.244.1.23   node01.local   <none>           <none>

daemonSet控制器的调度策略-pod在那些节点运行-默认master不运行
1、污点容忍度影响了daemonSet控制器的调度:下面查看一下节点的污点容忍度

[root@master controllers]# kubectl describe nodes |grep Taints
Taints:             node-role.kubernetes.io/master:NoSchedule
Taints:             <none>
master节点的污点容忍度是NoSchedule,所以pod不在上面运行
>容忍度说明:
>NoSchedule: 不会被调度
>NoExecute:
>PremerNoSchedule:

daemonSet控制器的调度策略-pod在那些节点运行-默认master不运行
2、设置污点容忍度

[root@master controllers]# kubectl taint node node01.local key=value:NoSchedule
node/node01.local tainted
[root@master controllers]# kubectl describe nodes |grep Taints
Taints:             node-role.kubernetes.io/master:NoSchedule
Taints:             key=value:NoSchedule

daemonSet控制器的调度策略-pod在那些节点运行-默认master不运行
2、删除污点


[root@master controllers]# kubectl taint node node01.local key-
node/node01.local untainted
[root@master controllers]# kubectl describe nodes |grep Taints
Taints:             node-role.kubernetes.io/master:NoSchedule
Taints:             <none>

daemonSet控制器的调度策略-pod在那些节点运行-默认master不运行
3、无视污点

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd-elasticsearch
  labels:
    k8s-app: fluentd-logging
spec:
  selector:
    matchLabels:
      name: fluentd-elasticsearch
  template:
    metadata:
      labels:
        name: fluentd-elasticsearch
    spec:
      tolerations:
      # 这些容忍度设置是为了让该守护进程集在控制平面节点上运行
      # 如果你不希望自己的控制平面节点运行 Pod,可以删除它们
      - key: node-role.kubernetes.io/control-plane
        operator: Exists
        effect: NoSchedule
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      containers:
      - name: fluentd-elasticsearch
        image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值