zoukankan      html  css  js  c++  java
  • kubernets之DaemonSet

    一  k8s资源之DaemonSet

      

      1.1 介绍认识DaemonSet

        DaemonSet可以理解为一种比较特殊的RS,DaemonSet的作用是永远保持被指定的节点只运行一个pod的副本,可用作集群的监控和日志收集等作用

      另外一点的是,可能有些节点被设置为不可调度pod的时候,仍然可以使用DaemonSet来调度到该节点,因为DS可以绕过调度器进行调度到响应的节点上

    二 创建一个DaemonSet

      2.1 实现一个DaemonSet的yml的文件来通过该文件来创建一个DaemonSet

    apiVersion: apps/v1beta2
    kind: DaemonSet
    metadata:
      name: ex-daemonset
    spec:
      selector:
        matchLabels:
          app: k8s
      template:
        metadata:
          labels:
            app: k8s
        spec:
        #  nodeSelector:
         #   machine: centos
          containers:
          - name: main
            image: luksa/ssd-monitor

      2.2 查看创建出来的DaemonSet

    [root@node01 Chapter04]# k get po --show-labels -o wide
    NAME                 READY   STATUS    RESTARTS   AGE     IP            NODE     NOMINATED NODE   READINESS GATES   LABELS
    ex-daemonset-dv4p5   1/1     Running   0          7m32s   10.244.1.11   node02   <none>           <none>            app=k8s,controller-revision-hash=697679dd9c,pod-template-generation=1
    ex-daemonset-dzfjh   1/1     Running   0          7m32s   10.244.2.10   node01   <none>           <none>            app=k8s,controller-revision-hash=697679dd9c,pod-template-generation=1

        可以看到即使没指定副本数量,仍然在每个node上面创建出来了一个pod

      

      2.3 指定DaemonSet到指定的node而非所有的node节点的配置

    apiVersion: apps/v1beta2
    kind: DaemonSet
    metadata:
      name: ex-daemonset
    spec:
      selector:
        matchLabels:
          app: k8s
      template:
        metadata:
          labels:
            app: k8s
        spec:
          nodeSelector:
            machine: centos
          containers:
          - name: main
            image: luksa/ssd-monitor

      2.4 当设置了nodeSelector的时候只有node节点带有machine的centos机器才会被调度上去

    [root@node01 Chapter04]# k get ds
    NAME           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR    AGE
    ex-daemonset   0         0         0       0            0           machine=centos   31s
    
    [root@node01 Chapter04]# k get po
    No resources found in default namespace.

      可以看到当在创建的daemonset里面添加nodeselector的时候,pod只会被调度到带有标签machine=centos的上面,而现在的节点都没有该标签,所以不会调度到任何节点上

      2.5 修改其中一个node的标签,观察是否能够调度到该节点上

    [root@node01 Chapter04]# k label node node02 machine=centos
    node/node02 labeled
    [root@node01 Chapter04]# k get po NAME READY STATUS RESTARTS AGE ex
    -daemonset-xbvhh 0/1 ContainerCreating 0 5s

      当向node添加标签之后,马上就可以调度到该node节点了

      2.6 删除该node节点上面的标签,观察该pod是否也会被删除

    [root@node01 Chapter04]# k label node node02 machine=debian --overwrite
    node/node02 labeled
    [root@node01 Chapter04]# k get po
    -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ex-daemonset-xbvhh 1/1 Terminating 0 2m38s 10.244.1.13 node02 <none> <none>

      可以看到当修改了标签之后,由于node 的标签已经不和DS匹配,响应的pod也被删除

  • 相关阅读:
    Oracle 11g 在本机上安装PLSQL DEveloper
    Oracle 11g 启动与关闭服务的脚本
    Oracle 11g 安装过程图解
    linux下vi命令大全
    accuracy、precision、recall、true positives, true negatives, false positives 和 false negatives
    // 40、用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列, // 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.
    阿里巴巴第二道(研发类) 笔试题1,原题大致描述有一大批数据,百万级别的。数据项内容是:用户ID、科
    621. Task Scheduler
    625. Minimum Factorization
    623. Add One Row to Tree
  • 原文地址:https://www.cnblogs.com/wxm-pythoncoder/p/14179069.html
Copyright © 2011-2022 走看看