http://www.dockerinfo.NET/1139.html
如果您正在使用kubernetes构建你的生产环境,如果您正在寻找如何在每台计算节点上运行一个守护进程(Pod),恭喜您,
DaemonSet为您提供了答案!
什么是DaemonSet
DaemonSet能够让所有(或者一些特定)的Node节点运行同一个pod。当节点加入到kubernetes集群中,pod会被(DaemonSet)调度到该节点上运行,当节点从kubernetes集群中被移除,被(DaemonSet)调度的pod会被移除,如果删除DaemonSet,所有跟这个DaemonSet相关的pods都会被删除。
在使用kubernetes来运行应用时,很多时候我们需要在一个区域(zone)或者所有Node上运行同一个守护进程(pod),例如如下场景:
- 每个Node上运行一个分布式存储的守护进程,例如glusterd,ceph
- 运行日志采集器在每个Node上,例如fluentd,logstash
- 运行监控的采集端在每个Node,例如prometheus node exporter,collectd等
在简单的情况下,一个DaemonSet可以覆盖所有的Node,来实现Only-One-Pod-Per-Node这种情形;在有的情况下,我们对不同的计算几点进行着色,或者把kubernetes的集群节点分为多个zone,DaemonSet也可以在每个zone上实现Only-One-Pod-Per-Node。
如何使用DaemonSet
在具体介绍如何使用DaemonSet之前,我们先来这样的一个场景:
- java应用已经容器化并运行在kubernetes集群中
- 需要实时采集java应用的日志并做相关分析,对业务监控和预警
- 日志采集使用fluentd + kafka + elastic search + kibana实现
- EFK技术栈都已容器化并运行在kubernetes中
在这样一个具体场景下我们如何对Java日志采集?假设现在没有DaemonSet,看我们至少有以下几种方法:
- 将fluentd采集端集成到每个java应用的docker镜像中,随着应用启动而启动
- 将fluentd采集端和java应用运行在一个pod内,随着pod的创建而启动
- 将fluentd运行在每个计算节点(Node)上,把java应用的输出直接输出到控制台,fluentd根据规则采集所有应用的日志
比较上述三种方法,第一种很笨重,应用和fluentd耦合太紧,修改fluentd的配置,就要重新构建镜像;第二种很复杂,不同的应用日志对应不同的fluentd采集规则,耦合的因素仍在;第三种方式最为简单和优雅,但是如何才能将fluentd调度到每台计算节点上?对,就是DaemonSet。
http://blog.csdn.net/liukuan73/article/details/54710597
相关推荐
【容器化守护进程的意义:DaemonSet】 在 Kubernetes 集群管理中,DaemonSet 是一种关键的控制器,用于确保在集群中的每个节点上都运行一个特定的 Pod,或者在某些特定节点上运行 Pod。理解 DaemonSet 的工作原理和...
《Kubernetes: Up and Running: Dive into the Future of Infrastructure》这本书深入浅出地介绍了Kubernetes这一引领基础设施未来的强大容器编排系统。Kubernetes,通常简称为K8s,是Google开源的一个容器管理系统...
9. **DaemonSet的意义举例**:DaemonSet的Pod实例被用于执行各种必需的集群级功能,包括但不限于: - 各种网络插件的Agent组件,处理节点上的容器网络。 - 各种存储插件的Agent组件,负责节点上的远程存储挂载和...
Kubernetes的Fluentd Daemonset 支持的标签和相应的Dockerfile链接 另请参阅dockerhub标签页面: ://hub.docker.com/r/fluent/fluentd-kubernetes-daemonset/tags 德比安 电流稳定 x86_64图片 Azureblob docker ...
DaemonSet 是 Kubernetes 项目中的一种编排对象,主要作用是让用户在 Kubernetes 集群里运行一个守护进程 Pod。这个 Pod 具有三个特征:每个节点上只有一个这样的 Pod 实例, 当有新的节点加入 Kubernetes 集群后,...
3. **监控 daemon**:DaemonSet 可以用于部署 Prometheus Node Exporter、collectd、Datadog 代理、New Relic 代理以及 Ganglia gmond 等监控工具,确保在每个节点上都能采集性能指标,实现全面的集群监控。...
分享课程——【2022】云原生Kubernetes全栈架构师:基于世界500强的k8s实战课程,2022年最新版,基于V1.23版本,完整版提供文档和软件下载! 课程适合人群: 1、准备学习k8s的运维、开发、测试、架构师; 2、k8s...
【编者的话】Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、扩展机制等功能。Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab...
《Kubernetes全栈架构师:基于世界500强的k8s实战课程》是针对2021年12月最新更新的V1.22版本设计的高级培训课程,旨在帮助学员深入理解并掌握Kubernetes(k8s)这一核心容器编排系统。课程内容涵盖Kubernetes的基础...
* DaemonSet:提供守护进程管理 * StatefulSet:提供有状态服务管理 * Job:提供批处理任务管理 * CronJob:提供定时任务管理 Kubernetes的安装过程包括: * 准备环境 * 安装Docker * 安装Kubernetes组件 * 配置...
《VMware vSphere with Kubernetes 基础知识》白皮书详尽地介绍了如何将传统的 vSphere 环境与先进的容器编排平台 Kubernetes 结合,从而推动云原生领域的进步。VMware vSphere 是一款广泛使用的虚拟化平台,而 ...
5. **扩展性**:如果需要增加集群规模,只需修改StatefulSet的副本数量,Kubernetes会自动创建新的RabbitMQ节点并加入集群。 6. **安全策略**:在生产环境中,应考虑对RabbitMQ集群实施安全措施,如限制网络访问、...
1. **保证Pod的覆盖性**:DaemonSet会确保至少在每个节点上运行一个指定的Pod副本,如果集群中添加了新的节点,DaemonSet会自动在新节点上部署相应的Pod。 2. **自动扩展与收缩**:当节点被移除或从集群中消失时,...
这是使用iptables规则的Kubernetes代理的快速实现。 设置: iptables -t nat -I PREROUTING -j my-dnatiptables -t nat -I OUTPUT -j my-dnatiptables -t nat -I POSTROUTING -j my-snat/usr/bin/docker run --name ...
Kubernetes JSON模式 在探索用于Kubernetes的工具时,我需要使用架构来描述定义文件,并且一直在寻找不需要安装kubectl或类似工具甚至不需要Kubernetes安装的东西。 事实证明, 规范包含此信息,但对于可能只需要...
kube-flannel.yml 适用于 kubernetes 1.15.1 --- apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: psp.flannel.unprivileged annotations: seccomp.security.alpha.kubernetes.io/...
用法:docker load < kubernetes-dashboard-amd64:v1.4.1.tar.gz
kubernetes-v1.2.0二进制版.400M+只能上传百度云盘了
kubernetes-tutorial:https:dn.devmaster的Kubernetes教程