⒈简介

  Replicationcontroller和ReplicaSet都用于在Kubermetes集群上部署运行特定数量的pod。但是,当某些情况下我们希望在集群中的每个节点上运行同一个指定的pod就需要更为复杂的操作。
  这些情况包括pod执行系统级别的与基础结构相关的操作。例如,希望在每个节点上运行日志收集器和资源监控器。一个典型的例子就是Kubernetes自己的kube-proxy进程,它需要运行在所有节点上才能使服务工作。

  要在所有集群节点上运行一个pod,需要创建一个DaemonSet对象,DaemonSet确保创建足够的pod,并在自己的节点上部署每个pod,DaemonSet并没有期望副本数的概念。它不需要,因为它的工作是确保一个匹配它选择器的pod在每个节点上运行。如果节点下线,DaemonSet不会在其他地方重新创建pod。但是,当将一个新节点添加到集群中时,DaemonSet会立刻部署一个新的pod实例。如果有人无意中删除了一个pod,那么它也会重新创建一个新的pod。与ReplicaSet一样,DaemonSet 从配置的pod模板创建pod。

⒉使用DaemonSet只在特定的节点上运行pod

  默认情况下DaemonSet将在集群中的所有节点上部署pod,除非指定这些pod只在部分节点上运行,这是通过DaemonSet描述文件中pod模板的nodeselector属性指定的。
  DaemonSet中的节点选择器定义了DaemonSet必须将其pod部署到的节点。
  注意:节点可以防止pod被部署到节点上而设置为不可调度的。DaemonSet仍然可以将pod部署到这些节点上,因为无法调度的属性只会被调度器使用,而DaemonSet管理的pod则完全绕过调度器。这是预料之中的,因为DaemonSet的目的是运行系统服务,即使是在不可调度的节点上,系统服务通常也需要运行。

⒊定义(创建)DaemonSet

apiVersion: apps/v1  #指定当前描述文件遵循apps/v1版本的KubernetesAPI
kind: DaemonSet #我们在描述一个DaemonSet
metadata:
name: ssd-monitor #指定DaemonSet的名称
spec:
selector: #pod选择器决定了DaemonSet的操作对象
matchLabels:
app: ssd-monitor
template: #创建新pod所使用的pod模板
metadata:
labels:
app: ssd-monitor #模板中的pod标签显然必须和DaemonSet的标签选择器相匹配,否则控制器将无休止的创建新的pod实例。因为创建新的pod不会使实际的副本数量接近期望的副本数量。为了防止出现这种情况,Kubernetes API服务会校验DaemonSet的定义不会接收错误的配置。
#不指定DaemonSet的标签选择器也是一种选择,因为DaemonSet会自动从模板中提取标签,而且描述文件也将更简短
spec:
nodeSelector: #pod模板包含一个节点选择器,会选择有disk=ssd标签的节点
disk: ssd
containers:
- name: coreqi
image: fanqisoft/coreqi
ports:
- containerPort:

  创建以上描述文件后使用kubectl命令创建DaemonSet

kubectl create -f ssd-monitor-daemonset.yaml

  可以使用kubectl get 和 kubectl describe来检查DaemonSet

#ds是DaemonSet的缩写
kubectl get ds
kubectl describe ds

* 如果节点的标签更改了,那么节点的标签不符合DaemonSet的指定标签,该节点上由DaemonSet创建的pod也会被随之销毁。

⒋删除DaemonSet

  使用以下命令删除DaemonSet

kubectl delete ds {dsName} 

  删除DaemonSet会删除所有的pod。这种情况下是需要列出pod来确认的。

Kubernetes组件-DaemonSet的更多相关文章

  1. kubernetes组件

    kubernetes组件 @(马克飞象)[k8s] 组件 kubernetes除了必备的dns和网络组件外,官方推出大量的cluster-monitoring,dashboard,fluentd-el ...

  2. 构建Docker平台【第三篇】安装 kubernetes 组件

    第一步:准备 1. 安装包: kubeadm-1.6.0-0.alpha.0.2074.a092d8e0f95f52.x86_64.rpm kubernetes-cni-0.3.0.1-0.07a8a ...

  3. Kubernetes的DaemonSet(下篇)

    用Daemon Pod来进行通信 使用Pod来再DaemonSet中通信的手段有: 推的方式:在DaemonSet中的Pod会被配置成发送更新到如状态数据库这样的服务.这些都没有客户端. IP+端口方 ...

  4. centos7下kubernetes(4.kubernetes组件)

    Kubenetes cluster 由master和node组成 Master是kubenetes的大脑.运行着以下进程:kube-apiserver.kube-scheduler.kube-cont ...

  5. Kubernetes组件与架构

    转载请标明出处: 文章首发于>https://www.fangzhipeng.com/kubernetes/2018/09/30/k8s-basic1/ 本文出自方志朋的博客 Kubernete ...

  6. Kubernetes【K8S】(一):Kubernetes组件

    什么是Kubernetes ​ Kubernetes 是一个可移植的.可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化.Kubernetes拥有一个庞大且快速增长的生态系统. ...

  7. 使用 C# 开发 Kubernetes 组件,获取集群资源信息

    写什么呢 前段时间使用 C# 写了个项目,使用 Kubernetes API Server,获取信息以及监控 Kubernetes 资源,然后结合 Neting 做 API 网关. 体验地址 http ...

  8. Kubernetes之DaemonSet控制器

    DaemonSet 简介 DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本.当有 Node 加入集群时,也会为他们新增一个 Pod .当有 Node 从集群移除时,这些 P ...

  9. Kubernetes学习笔记之认识Kubernetes组件

    前言:笔记知识点来源于Kubernetes官方文档说明,链接:https://kubernetes.io/docs/concepts/overview/components/ ,本记录仅仅是学习笔记记 ...

随机推荐

  1. 「CF484E」Sign on Fence「整体二分」「线段树」

    题意 给定一个长度为\(n\)的正整数序列,第\(i\)个数为\(h_i\),\(m\)个询问,每次询问\((l, r, w)\),为\([l, r]\)所有长度为\(w\)的子区间最小值的最大值.( ...

  2. 【概率论】3-1:随机变量和分布(Random Variables and Discrete Distributions)

    title: [概率论]3-1:随机变量和分布(Random Variables and Discrete Distributions) categories: Mathematic Probabil ...

  3. 存在日期类型的JSON数据,进行SpringMVC参数绑定时存在的问题和解决方案

    这篇文章已经过时了. 请参考比较合适的前后端交互方式. 首先是发送AJAX请求的html页面 <!DOCTYPE html> <html> <head> <m ...

  4. 集合家族——stack

    一.概述 在 Java 中 Stack 类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的 它通过五个操作对类 Vector 进行了扩展 ,允许将向 ...

  5. 查看Oracle表空间使用情况

    1.查询表空间的总容量 as MB from sys.dba_data_files a group by a.TABLESPACE_NAME 2.查询表空间的空闲容量 select b.TABLESP ...

  6. 如何查看appPackage和启动appActivity

    安装apk,模拟器或真机中在前台运行该应用程序,获取appPackage,即应用包名 appPackage:  adb shell dumpsys activity | find "mFoc ...

  7. 解决阿里云轻量级服务器mysql无法用数据库操作软件连接

    第一步:去阿里云购买一台轻量应用服务器Lamp然后登录到控制台点击应用详情 点击后你可以看到一些服务器的数据 首先是访问服务器的首页地址,默认会放一个html文件在网站根目录下(即/home/www/ ...

  8. 从UDP的”连接性”说起–告知你不为人知的UDP

    原文地址:http://bbs.utest.qq.com/?p=631 很早就计划写篇关于UDP的文章,尽管UDP协议远没TCP协议那么庞大.复杂,但是,要想将UDP描述清楚,用好UDP却要比TCP难 ...

  9. 2.5 Go语言基础之map

    Go语言中提供的映射关系容器为map, Go中内置类型,其内部使用散列表(hash)实现,为引用类型. 无序键值对(key-value)集合,通过key(类似索引)快速检索数据 必须初始化才能使用. ...

  10. eclipse远程连接hadoop单机模式出现的问题

    按照http://tydldd.iteye.com/blog/2007938配置单机模式 主要是 (1)配置hadoop-env.sh,指定jdk的安装路径 添加jdk路径 # The java im ...