Q 2 | Schedule Pod on Master Node
Task weight:3 %
利用 image httpd:2.4.41-alpine
在default Namespace
創(chuàng)建一個(gè)Pod
虹脯。這個(gè)Pod
的名稱應(yīng)該是pod1
恋腕,container
應(yīng)該命名為pod1-container
沙咏。
這個(gè)Pod
應(yīng)該被部署在Master
節(jié)點(diǎn)舞终, 不要在Pod
上增加label
。
請(qǐng)簡(jiǎn)單描述一下為什么默認(rèn)情況下為什么不能把Pod
部署在master node
, 然后把原因?qū)懙轿募?code>/opt/course/2/master_schedule_reason中。
解析:
通常來(lái)說(shuō) Master 節(jié)點(diǎn)默認(rèn)是不可以部署 Pod 的黑忱。這個(gè)我們可以通過(guò)以下命令來(lái)查看:
首先我們來(lái)查看 Master 節(jié)點(diǎn) taints 相關(guān)信息:
$ 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
接下來(lái)我們創(chuàng)建 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
接下來(lái)我們手動(dòng)修改一下2.yaml
這個(gè)文件。如果記得不是很清楚的話可以在Kubernetes
官網(wǎng)查詢一下 tolerations
和 nodeSelector
相關(guān)的示例:
# 2.yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: pod1
name: pod1
spec:
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: "" # add
status: {}
這里需要特別說(shuō)明的是勒魔,題目要求我們只在 Master
節(jié)點(diǎn)部署甫煞,因此,我們用 nodeSelector 來(lái)確保 Pod 只被調(diào)度到** Master** 節(jié)點(diǎn)冠绢。
現(xiàn)在抚吠,我們可以來(lái)創(chuàng)建 Pod 的了:
$ kubectl -f 2.yaml create
執(zhí)行完畢后,我們來(lái)檢查一下執(zhí)行結(jié)果:
? k get pod pod1 -o wide
NAME READY STATUS RESTARTS ... NODE NOMINATED NODE
pod1 1/1 Running 0 ... cluster1-master1 <none>
最后唐全,我們可以把默認(rèn)不會(huì)調(diào)度** Pod** 到 Master 節(jié)點(diǎn)的原因?qū)懺?/p>
/opt/course/2/master_schedule_reason
文件中埃跷。
# /opt/course/2/master_schedule_reason
master node can not be deployed by default, because it has taint "NoSchedule"
最后蕊玷,動(dòng)手來(lái)試試吧:
TGeek.cn 推出 Kubernetes 在線實(shí)戰(zhàn)平臺(tái)邮利,歡迎加我微信 rocwar 申請(qǐng)哦~
不要害羞,僅限前100名免費(fèi)測(cè)試垃帅。
通關(guān)現(xiàn)金獎(jiǎng)勵(lì)~
免費(fèi)體驗(yàn)方式:
找群主預(yù)約測(cè)試時(shí)間
您獲得了兩小時(shí)的測(cè)試體驗(yàn)時(shí)間
本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布延届!