文章目录
- 1、基本概念与控制器特点
- 2、资源配置清单
- 3、创建控制器
- 4、删除控制器
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
maxUnavailable1
selector#选择器,指定控制那些副本
matchLabels
app nginx-pod
matchExpressions
key"app"
operator In
values"nginx-pod"
template#副本模板,当副本数量不足时,以此配置创建副本
metadata
labels
app nginx-pod
spec
containers
name nginx
image nginx1.17.1
ports
containerPort80
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 nginx1.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