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

本文首发于个人公众号 Linux云计算网络(id: cloud_dev),专一于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」便可领取,欢迎你们关注,二维码文末能够扫。git

Hi,你们好,欢迎你们和我一块儿学 K8S,这是系列第 9 篇。github

和上文中的 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 配置文件。spa

能够看到它的 kind 是 DaemonSet。插件

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

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

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

wget https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml

获得 kube-flannel.yml 文件:

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

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

OK,DaemonSet 的探讨就到这里,下文咱们继续讨论另一种 Controller:Job。


个人公众号 「Linux云计算网络」(id: cloud_dev) ,号内有 10T 书籍和视频资源,后台回复 「1024」 便可领取,分享的内容包括但不限于 Linux、网络、云计算虚拟化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++编程技术等内容,欢迎你们关注。

相关文章
相关标签/搜索