Docker&Kubernetes ❀ Kubernetes集群Pod控制器 - DaemonSet(DS)
Posted 无糖可乐没有灵魂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker&Kubernetes ❀ Kubernetes集群Pod控制器 - DaemonSet(DS)相关的知识,希望对你有一定的参考价值。
文章目录
1、基本概念与控制器特点
DaemonSet类型的控制器可以保证集群中的每一台Node上都运行一个副本,一般适用于日志收集、节点监控等场景,如果一个Pod提供的功能是节点级别的(每一个节点只需要一个Pod),那么这类Pod就适合使用DaemonSet类型的控制器创建;
DaemonSet控制器的特点:
- 每当向集群中添加一个节点时,指定的Pod副本就会在新增节点上进行创建;
- 当节点从集群中移除时,Pod自动被回收;
2、资源配置清单
参数查询方法:
[root@master ~]# kubectl explain ds
参数汇总梳理:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: pc-daemonset
namespace: dev
labels:
controller: deamonset
spec:
revisionHistoryLimit: 3 #保留历史版本,默认10
updateStrategy: #更新策略
type: RollingUpdate #滚动更新
rollingUpdate:
maxUnavailable: 1
selector: #选择器,指定控制那些副本
matchLabels:
app: nginx-pod
matchExpressions:
- key: "app"
operator: In
values: ["nginx-pod"]
template: #副本模板,当副本数量不足时,以此配置创建副本
metadata:
labels:
app: nginx-pod
spec:
containers:
- name: nginx
image: nginx:1.17.1
ports:
- containerPort: 80
3、创建控制器
#创建YAML文件
[root@master ~]# vim pc-daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: pc-daemonset
namespace: dev
spec:
selector: #选择器,指定控制那些副本
matchLabels:
app: nginx-pod
template: #副本模板,当副本数量不足时,以此配置创建副本
metadata:
labels:
app: nginx-pod
spec:
containers:
- name: nginx
image: nginx:1.17.1
#调用YAML文件
[root@master ~]# kubectl apply -f pc-daemonset.yaml
daemonset.apps/pc-daemonset created
#查看DS控制器状态
[root@master ~]# kubectl get ds -n dev -o wide
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE CONTAINERS IMAGES SELECTOR
pc-daemonset 2 2 2 2 2 <none> 49s nginx nginx:1.17.1 app=nginx-pod
#查看node数量
[root@master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
master.kubernetes Ready control-plane,master 26d v1.23.0
node1.kubernetes Ready <none> 26d v1.23.0
node2.kubernetes Ready <none> 26d v1.23.0
#由于Node节点数量只有两个,因此每个Node创建一个Pod,共2个Pod
[root@master ~]# kubectl get pod -n dev -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pc-daemonset-gkbnc 1/1 Running 0 2m23s 10.244.37.202 node2.kubernetes <none> <none>
pc-daemonset-zthlv 1/1 Running 0 2m23s 10.244.80.89 node1.kubernetes <none> <none>
4、删除控制器
[root@master ~]# kubectl delete -f pc-daemonset.yaml
daemonset.apps "pc-daemonset" deleted
以上是关于Docker&Kubernetes ❀ Kubernetes集群Pod控制器 - DaemonSet(DS)的主要内容,如果未能解决你的问题,请参考以下文章
Docker&Kubernetes ❀ Kubernetes集群安装部署过程与常见的错误解决方法
Docker&Kubernetes ❀ Kubernetes集群安装部署过程与常见的错误解决方法
Docker&Kubernetes ❀ Kubernetes集群实践与部署笔记知识点梳理
Docker&Kubernetes ❀ Docker 容器技术笔记链接梳理