Docker容器技术应用 实验指导书 任务9.2.5 通过标签调度Pod.docx
任务9.2.5通过标签调度Pod
(1)任务目标
掌握通过标签调度Pod的方法
(2)任务内容
为K8S集群中的工作节点添加标签
创建Pod并指定其标签
通过标签进行调度
(3)完成任务所需的设备和软件
一台安装Windows10操作系统的计算机
VMwareWorkstation,Docker
远程管理工具MobaXterm
(4)任务实施步骤:
第一步:在master节点上查看Node节点的标签,操作命令如下:
[root@master~]#kubectlgetnodes--show-labels
命令运行结果如图9-37所示。
图9-37在master节点上查看Node节点的标签
第二步:修改Node节点的标签,操作命令如下:
[root@master~]#kubectllabelnodesnode1labelname=node1
[root@master~]#kubectllabelnodesnode2labelname=node2
[root@master~]#kubectlgetnodes--show-labels
命令运行结果如图9-38所示。
图9-38修改Node节点的标签
第三步:编写mynginx-label.yaml文件,操作命令及代码如下:
[root@master~]#vimmynginx-label.yaml
apiVersion:v1
kind:Pod
metadata:
labels:
app:mynginx-label
name:mynginx-label
spec:
containers:
-image:nginx:latest
imagePullPolicy:IfNotPresent
name:nginx
ports:
-name:nginx
protocol:TCP
containerPort:80
hostPort:30000
resources:{}
dnsPolicy:ClusterFirst
restartPolicy:Never
nodeSelector:
labelname:node1
第四步:通过mynginx-label.yaml创建Pod,操作命令如下:
[root@master~]#kubectlapply-fmynginx-label.yaml
[root@master~]#kubectlgetpod
[root@master~]#kubectldescribepodmynginx-label
命令运行结果如图9-39所示。
图9-39通过mynginx-label.yaml创建Pod
从图中可以看出,该Pod被调度到了node1节点上。
第五步:删除该Pod,操作命令如下:
[root@master~]#kubectldeletepodmynginx-label
[root@master~]#kubectlgetpod
命令运行结果如图9-40所示。
图9-40删除该Pod:mynginx-label
第六步:修改mynginx-label.yaml文件,将Pod调度到node2节点上,操作命令及代码如下:
[root@master~]#vimmynginx-label.yaml
apiVersion:v1
kind:Pod
metadata:
labels:
app:mynginx-label
name:mynginx-label
spec:
containers:
-image:nginx:latest
imagePullPolicy:IfNotPresent
name:nginx
ports:
-name:nginx
protocol:TCP
containerPort:80
hostPort:30000
resources:{}
dnsPolicy:ClusterFirst
restartPolicy:Never
nodeSelector:
labelname:node2
[root@master~]#kubectlapply-fmynginx-label.yaml
[root@master~]#kubectlgetpod
[root@master~]#kubectldescribepodmynginx-