前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 笔记 09 DaemonSet 我是一只看门狗

Kubernetes 笔记 09 DaemonSet 我是一只看门狗

作者头像
Linux云计算网络
发布2019-05-25 16:54:35
6700
发布2019-05-25 16:54:35
举报
文章被收录于专栏:Linux云计算网络

Hi,大家好,欢迎大家和我一起学 K8S,这是系列第 9 篇。

和上文中的 Deployment 一样,DaemonSet 也是一种副本管理机制,和 Deployment 可以在每个 Node 上运行好几个 Pod 副本不同的是,DaemonSet 始终保证每个 Node 最多只会运行一个副本,就像它的名称一样,作为一只看门狗(Daemon)守护在主人家里。

那么,哪些应用适合用 DaemonSet 的方式来部署呢?

主要有以下几类:

  • 监控类的,比如 Prometheus,collectd,New Relic agent,Ganglia gmond 等。
  • 系统管理类的,比如 kube-proxy, kube-flannel 等。
  • 日志收集类的,比如 fluentd,logstash 等。
  • 数据存储类的,比如 glusterd, ceph 等。
  • ......

其中,系统管理类的应用主要是 K8S 自身的一些系统组件,我们可以通过 kubectl get daemonset --namespace=kube-system 查看到:

DaemonSet kube-proxykube-flannel-ds 有 3 个副本,分别负责在每个节点上运行 kube-proxy 和 flannel 组件。

kube-proxy 前面的文章讲过,它有负载均衡的功能,主要将外部对 Service 的访问导向后端的 Pod 上。显然,一个 Node 运行一个负载均衡器足矣。

我们可以通过 kubectl edit daemonset kube-proxy --namespace=kube-system 来查看 kube-proxy 的 yaml 配置文件。

可以看到它的 kind 是 DaemonSet。

接着再来看 kube-flannel-ds,这是一个网络插件组件,主要用于构建 K8S 的集群网络,这里大家不懂可以跳过,不影响本文的理解,后面在讲到 K8S 网络的时候会重点讲这个网络方案。

这里我们只需要知道,各个 Pod 间的网络连通就是 flannel 来实现的。

这是一个第三方的插件,我们可以直接下载它的 yaml 文件进行安装,执行下面的命令:

代码语言:javascript
复制
wget https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml

得到 kube-flannel.yml 文件:

这里只列出了一部分内容,kind 类型是 DaemonSet。

其实 DaemonSet 配置文件的语法和结构和 Deployment 几乎完全一样,不同就在于将 kind 设为 DaemonSet。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档