一  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也被删除

kubernets之DaemonSet的更多相关文章

  1. 【07】Kubernets:资源清单(控制器 - DaemonSet)

    写在前面的话 前面讲解了 Pod / ReplicaSet / Deployment 的资源清单,我们这里谈一下 DaemonSet 的资源清单. 之前说过,DaemonSet 控制器能够保证资源在每 ...

  2. 010.kubernets的调度系统之daemonset

    daemonset简单操作使用 Deployment 是 Kubernetes 中用于处理无状态服务的资源,而 StatefulSet 是用于支持有状态服务的资源,这两种不同的资源从状态的角度对服务进 ...

  3. Kubernets 资源类型简介

    # Node 代表 Kubernets 集群运行的宿主物理机或者虚拟服务器, 为容器提供必要的计算资源: 内存 与 CPU 等. # Pod 最底层的抽象. 一个 Pod 中可以包含一个或者多个运行的 ...

  4. ASP.NET Core on K8S深入学习(3-2)DaemonSet与Job

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 上一篇<3-1 Deployment>中介绍了Deployment ...

  5. kubernets之Deployment资源

    一  声明式的升级应用 1.1  回顾一下kubernets集群里面部署一个应用的形态应该是什么样子的,通过一副简单的图来描述一下 通过RC或者RS里面的模板创建了三个pod,之后通过一个servci ...

  6. kubernets之卷

    一 卷的由来以及种类和常用的卷的类型 前面介绍了大部分都是pod的管理以及在集群内部和集群外部如何访问pod,但是我们也了解到,pod是有生命周期的,当pod所在节点下线,或者等其他原因原因导致pod ...

  7. Kubernets搭建Kubernetes-dashboard

    接上篇文章,在已经部署好Kubernetes的基础上部署kubernetes-dashboard,它是官方提供的用户管理Kubernets集群可视化工具:部署dashboard其实和在kubernet ...

  8. 【云计算】K8S DaemonSet 每个node上都运行一个pod

    Kubernetes容器集群中的日志系统集成实践 Kubernetes是原生的容器编排管理系统,对于负载均衡.服务发现.高可用.滚动升级.自动伸缩等容器云平台的功能要求有原生支持.今天我分享一下我们在 ...

  9. 单机部署 kubernets 方法汇总

    #minikube : 可以方便的在本机用虚拟机创建一个开箱即用的Kubernetes集群 #kubeadm : 可以自动化的将多台Ubuntu或者CentOS主机组建成集群 #nanokube,ki ...

随机推荐

  1. AWT09-弹球小游戏

    1.补充 为了让Java绘制动画,可以借助Swing的定时器,其构造为: 方法名 说明 Timer(int delay,ActionListener listener) 每间隔delay毫秒,自动触发 ...

  2. ATS push cache 测试

    测试 ATS 注入缓存 参考了: http://serverfault.com/questions/471684/push-content-to-apache-traffic-servers-cach ...

  3. [打基础]OI/ACM基本功&一些小功能的实现&一些错误(持续更新)

    基本功 前导0 如题,有时候需要把3输出成03这样子,可以调用 cout.width(x); ,x表示以几位,用 cout.fill(x); 来给出前导填充的内容,一般x以char的形式给出 例如可以 ...

  4. 网络编程-python实现-TCP实现文件下载(1.1.4)

    @ 目录 代码实现 代码实现 客户端 from socket import * def main(): # 创建socket tcp_client_socket = socket(AF_INET, S ...

  5. EXCEL2010分成多个窗口的,解决单个窗口显示多个文档的弊病

    本操作需要修改注册表,请在修改之前导出要修改的项目以备份. 1.定位到[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open],导出保存.展开Open,将ddeexe ...

  6. matplotlib学习日记(三)------简单统计图

    (一)函数bar()---------绘制柱状图 import matplotlib as mpl import matplotlib.pyplot as plt mpl.rcParams[" ...

  7. ATT&CK实战系列——红队实战(二)

    一.环境搭建 靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/ DC IP:10.10.10.10OS:Windows 2012应用:A ...

  8. x264编码demo定制修改介绍

    x264编码器,提供了两个demo来验证编码功能:一个是大而全的x264.c,另外一个是简洁版的example.c. 其中,前者demo,可以配置很多编码参数,但太冗长繁杂,对初学者不太友好.  后者 ...

  9. .net core 和 WPF 开发升讯威在线客服与营销系统:系统总体架构

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  10. 处理xls文件

    package com.cn.peitest.excel; import java.io.File; import java.io.FileInputStream; import java.io.Fi ...