前面介绍了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
- name: http
如果我们要是修改为deployment在测试一下
注意这里没有指定副本数量哈
看到了吧,这里只是启动了1个。DaemonSet这个还是比较简单的
今天讲解就到这里,欢迎大家私信留言
原文地址:https://blog.51cto.com/xiaorenwutest/2483049
时间: 2024-09-30 14:35:33