DaemonSet 简介

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

使用 DaemonSet 的一些典型用法:

  • 运行集群存储 daemon,例如在每个 Node 上运行 glusterdceph
  • 在每个 Node 上运行日志收集 daemon,例如fluentdlogstash
  • 在每个 Node 上运行监控 daemon,例如 Prometheus Node Exporter、collectd、Datadog 代理、New Relic 代理,或 Ganglia gmond

一个简单的用法是,在所有的 Node 上都存在一个 DaemonSet,将被作为每种类型的 daemon 使用。 一个稍微复杂的用法可能是,对单独的每种类型的 daemon 使用多个 DaemonSet,但具有不同的标志,和/或对不同硬件类型具有不同的内存、CPU要求。

kubernetes 自己也在使用DaemonSet 管理自己的组件

$ kubectl get ds -n kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE-SELECTOR AGE
calico-node <none> 34d

案例:

#启动一个redis配置一下filebeat

apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
namespace: default
spec:
replicas:
selector:
matchLabels:
app: redis
role: log-store
template:
metadata:
labels:
app: redis
role: log-store
spec:
containers:
- name: redis-pod
image: redis:4.0-alpine
ports:
- name: redis
containerPort: ---
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: filebeat-ds
namespace: default
spec:
selector:
matchLabels:
app: filebeat
release: all
template:
metadata:
labels:
app: filebeat
release: all
spec:
containers:
- name: filebeat-ds-pod
image: ikubernetes/filebeat:5.6.-alpine
env:
- name: REDIS_HOST
value: redis.default.svc.cluster.local
- name: REDIS_LOG_LEVEL
value: info

暴露redis端口 供filebeat访问

$ kubectl expose deployment redis --port=

查看一下服务

$ kubectl get ds
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE-SELECTOR AGE
filebeat-ds <none> 12m
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
filebeat-ds-8tf5v / Running 13m 10.42.2.78 k8s-node01
filebeat-ds-9fqfv / Running 13m 10.42.0.220 rancher-node
filebeat-ds-pdc8m / Running 13m 10.42.1.108 k8s-master
filebeat-ds-v4dct / Running 13m 10.42.3.214 k8s-node02

滚动更新

kubectl explain ds.spec.updateStrategy

默认是 rollingUpdate 是删除式更新

rollingUpdate 只支持 maxUnavailable  ,因为ds是每个主机上启动一个pod,所以不能有多余节点的启动

$ kubectl set image ds filebeat-ds filebeat-ds-pod=ikubernetes/filebeat:5.6.-alpine
daemonset "filebeat-ds" image updated

最新文章

  1. 常用的数据统计Sql 总结(转)
  2. tab1
  3. Fatal error: cannot allocate memory for the buffer pool
  4. Data Base sqlServer sa用户登陆失败的解决办法
  5. Careercup - Google面试题 - 4716965625069568
  6. envi中selected rgb bands contain different spatial sizes
  7. cocos2d-x 2.x版本中,场景切换各方法调用顺序
  8. node.js 浏览器中输出 “hello world”
  9. SGU 152.Making round
  10. 初识Devexpress ChartControl 之 动态添加stepline及TextAnnotation
  11. OrientDB入门(1)Getting Started
  12. ASP.NET CORE系列【六】Entity Framework Core 之数据库迁移
  13. 【苹果通知APNs】不知道大家用过PushSharp没?
  14. 用webpack2.0构建vue2.0超详细精简版
  15. 从零开始的ESP8266探索(1)-使用Server功能搭建Web Server
  16. lettcode21. Merge Two Sorted Lists
  17. 通过JDBC进行简单的增删改查(以MySQL为例) 目录
  18. 潭州课堂25班:Ph201805201 第六课:散列类型,运算符优先级和逻辑运算 (课堂笔记)
  19. MySql安全模式的关闭和开启
  20. Qt+数据库发布后无法打开数据库

热门文章

  1. AES 加密与解密
  2. RHEL/Centos7 安装图形化桌面(转)
  3. 进程命令(tasklist)
  4. SQLServer之视图简介
  5. kaptcha验证码的使用
  6. zabbix源码安装 令人窒息的操作
  7. android9.0系统适配遇到的问题
  8. JavaWeb工程中web.xml基本配置(转载学习)
  9. odoo中def init(self):
  10. Vue-项目打包上线