Q 2 | Schedule Pod on Master Node
Task weight:3 %
利用 image httpd:2.4.41-alpine
在default Namespace
创立一个Pod
。这个Pod
的名称应该是pod1
,container
应该命名为 pod1-container
。
这个Pod
应该被部署在Master
节点, 不要在Pod
上减少label
。
请简略形容一下为什么默认状况下为什么不能把Pod
部署在master node
, 而后把起因写到文件/opt/course/2/master_schedule_reason
中。
解析:
通常来说 Master 节点默认是不能够部署 Pod 的。这个咱们能够通过以下命令来查看:
首先咱们来查看 Master 节点 taints 相干信息:
$ kubectl get node # find master node$ kubectl describe node cluster1-master1 | grep Taint # get master node taints$ kubectl describe node cluster1-master1 | grep Labels -A 10 # get master node labels$ kubectl get node cluster1-master1 --show-labels # OR: get master node labels
接下来咱们创立 Pod template
:
# check the export on the very top of this document so we can use $do$ kubectl run pod1 --image=httpd:2.4.41-alpine $do > 2.yaml$ vim 2.yaml
接下来咱们手动批改一下 2.yaml
这个文件。如果记得不是很分明的话能够在Kubernetes
官网查问一下 tolerations
和 nodeSelector
相干的示例:
# 2.yamlapiVersion: v1kind: Podmetadata: creationTimestamp: null labels: run: pod1 name: pod1spec: containers: - image: httpd:2.4.41-alpine name: pod1-container # change resources: {} dnsPolicy: ClusterFirst restartPolicy: Always tolerations: # add - effect: NoSchedule # add key: node-role.kubernetes.io/master # add nodeSelector: # add node-role.kubernetes.io/master: "" # addstatus: {}
这里须要特地阐明的是,题目要求咱们只在 Master
节点部署,因而,咱们用 nodeSelector 来确保 Pod 只被调度到 Master 节点。
当初,咱们能够来创立 Pod 的了:
$ kubectl -f 2.yaml create
执行结束后,咱们来检查一下执行后果:
➜ k get pod pod1 -o wideNAME READY STATUS RESTARTS ... NODE NOMINATED NODEpod1 1/1 Running 0 ... cluster1-master1 <none>
最初,咱们能够把默认不会调度 Pod 到 Master 节点的起因写在
/opt/course/2/master_schedule_reason
文件中。
# /opt/course/2/master_schedule_reasonmaster node can not be deployed by default, because it has taint "NoSchedule"
最初,入手来试试吧:
TGeek.cn 推出 Kubernetes 在线实战平台,欢送加我微信 rocwar 申请哦~
不要害羞,仅限前100名收费测试。
通关现金处分~
收费体验形式:
找群主预约测试工夫
您取得了两小时的测试体验工夫