前面介绍了k8s的deployment和statefulset这两种控制器。
deployment是属于无状态的服务,nginx,Tomcat,没有关联的pod
statefulset是属于有状态的服务。mysql,zk、etcd,集群形式的pod


下面我们来介绍一下第三种方式DaemonSet这种控制器模式
DaemonSet 的典型应用场景:
在集群的每个节点上运行存储 Daemon,比如:glusterd 或 ceph。
在每个节点上运行日志收集 Daemon,比如:flunentd 或 logstash。
在每个节点上运行监控 Daemon,比如:Prometheus Node Exporter 或 collectd。


DaemonSet 与 Deployment 的区别
Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本。
DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本。


总结: DaemonSet这种控制器方式,主要是用来对node节点上面每个节点平均分配一个pod的,比如每个node节点上面运行的监控agent,或者是收集日志的agent。。。

----------------------------------------------------------------------------------、
接下来部署一个
cat daemonset.yaml
kind: DaemonSet
apiVersion: extensions/v1beta1
metadata:
name: nginx-ds
labels:
k8s-app: nginx
spec:
template:
metadata:
labels:
k8s-app: nginx
spec:
containers:

  • image: nginx:1.7.9
    name: nginx
    ports:
    • name: http
      containerPort: 80
      k8s运行DaemonSet控制器管理pod(8)_第1张图片

如果我们要是修改为deployment在测试一下

注意这里没有指定副本数量哈

k8s运行DaemonSet控制器管理pod(8)
看到了吧,这里只是启动了1个。DaemonSet这个还是比较简单的

今天讲解就到这里,欢迎大家私信留言