Kubernetes之DaemonSet控制器
2024-10-11 20:21:55
DaemonSet 简介
DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。
使用 DaemonSet 的一些典型用法:
- 运行集群存储 daemon,例如在每个 Node 上运行
glusterd
、ceph
。 - 在每个 Node 上运行日志收集 daemon,例如
fluentd
、logstash
。 - 在每个 Node 上运行监控 daemon,例如 Prometheus Node Exporter、
collectd
、Datadog 代理、New Relic 代理,或 Gangliagmond
。
一个简单的用法是,在所有的 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
最新文章
- 常用的数据统计Sql 总结(转)
- tab1
- Fatal error: cannot allocate memory for the buffer pool
- Data Base sqlServer sa用户登陆失败的解决办法
- Careercup - Google面试题 - 4716965625069568
- envi中selected rgb bands contain different spatial sizes
- cocos2d-x 2.x版本中,场景切换各方法调用顺序
- node.js 浏览器中输出 “hello world”
- SGU 152.Making round
- 初识Devexpress ChartControl 之 动态添加stepline及TextAnnotation
- OrientDB入门(1)Getting Started
- ASP.NET CORE系列【六】Entity Framework Core 之数据库迁移
- 【苹果通知APNs】不知道大家用过PushSharp没?
- 用webpack2.0构建vue2.0超详细精简版
- 从零开始的ESP8266探索(1)-使用Server功能搭建Web Server
- lettcode21. Merge Two Sorted Lists
- 通过JDBC进行简单的增删改查(以MySQL为例) 目录
- 潭州课堂25班:Ph201805201 第六课:散列类型,运算符优先级和逻辑运算 (课堂笔记)
- MySql安全模式的关闭和开启
- Qt+数据库发布后无法打开数据库