书籍来源:《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略》
一边学习一边整理老师的课程内容及实验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:CKA备考实验 | 汇总_热爱编程的通信人的博客-CSDN博客
类似于前面讲的pod,可以通过标签的方式指定daemonset的pod在指定的节点上运行。
前面已经给vms11设置了一个标签diskxx=ssdxx,如果没有给vms11设置这个标签,请自行设置一下。
步骤1:修改yaml文件,增加nodeSelector。
##########实操验证##########
[root@vms10 ds]# cat ds1.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ds1
spec:
selector:
matchLabels:
app: busybox
template:
metadata:
labels:
app: busybox
spec:
nodeSelector:
diskxx: ssdxx
containers:
- image: busybox
imagePullPolicy: IfNotPresent
name: busybox
command: ["sh","-c","sleep 36000"]
[root@vms10 ds]#
这里通过nodeSelector来指定pod运行在含有标签diskxx=ssdxx的节点上,在这个环境里只有http://vms11.rhce.cc才有diskxx=ssdxx这个标签,所以此daemonset所产生的pod只会在http://vms11.rhce.cc这个节点上运行。
步骤2:应用此yaml文件。
##########实操验证##########
[root@vms10 ds]# kubectl apply -f ds1.yaml
daemonset.apps/ds1 created
[root@vms10 ds]#
[root@vms10 ds]# kubectl get pods -o wide --no-headers
ds1-bkjn8 1/1 Running 0 16s 10.244.81.123 vms11.rhce.cc <none> <none>
[root@vms10 ds]#
可以看到,ds所产生的pod只在vms11上运行,并没有在vms12上运行,因为vms12没有指定的标签。
步骤3:删除daemon set。
##########实操验证##########
[root@vms10 ds]# kubectl delete ds ds1
daemonset.apps "ds1" deleted
[root@vms10 ds]#