版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Kubernetes基础对象-Pod2目录容器启动命令和参数01任务容器镜像拉取策略02任务03任务容器的重启策略04任务pod定义多个容器学习目标【知识目标】掌握Kubernetes资源对象pod的基本使用。【技能目标】能够完成Kubernetespod资源的创建、配置。1容器镜像拉取策略1Kubernetes支持配置三种拉取策略:IfNotPresent:只有当镜像在本地不存在时才会拉取。Always:每次创建Pod都会重新拉取一次镜像Never:Pod不会主动拉取这个镜像,仅使用本地镜像。容器镜像拉取策略1如果省略imagePullPolicy字段,容器镜像的标签是
:latest,imagePullPolicy会自动设置为Always。没有指定容器镜像的签,imagePullPolicy会自动设置为Always。为容器镜像指定了非
:latest
的标签,imagePullPolicy就会自动设置为IfNotPresent。容器镜像拉取策略imagePullPolicy字段1注意:容器的imagePullPolicy的值是在对象初次创建时设置的,如果后来镜像的标签发生变化,则不会更新。容器镜像拉取策略imagePullPolicy字段1想总是强制执行拉取,可以使用下述的一中方式:设置容器的imagePullPolicy为Always。省略imagePullPolicy,并使用:latest作为镜像标签;当你提交Pod时,Kubernetes会将策略设置为Always。省略imagePullPolicy和镜像的标签;当你提交Pod时,Kubernetes会将策略设置为Always。启用准入控制器AlwaysPullImages。容器镜像拉取策略imagePullPolicy字段1查看exmple-pod的镜像拉取策略:[root@node-1~]#kubectlgetpodsexmple-pod-oyamlspec:containers:-image:nginx:1.7.9imagePullPolicy:IfNotPresent容器镜像拉取策略配置拉取策略1将镜像拉取策略改为always:[root@node-1~]#vipod-demo.yaml。。。spec:containers:-name:exmple-nginximage:nginx:1.7.9imagePullPolicy:Always。。。容器镜像拉取策略配置拉取策略1删除原exmple-pod的资源对象:[root@node-1~]#kubectldeletepodexmple-podpod"exmple-pod"deleted容器镜像拉取策略配置拉取策略1通过yaml文件创建pod资源:[root@node-1~]#kubectlapply-fpod-demo.yamlpod/exmple-podcreated容器镜像拉取策略配置拉取策略1查看pod资源的详细信息:[root@node-1~]#kubectldescribepodexmple-podEvents:TypeReasonAgeFromMessage-------------------------NormalScheduled55sdefault-schedulerSuccessfullyassigneddefault/exmple-podtonode-2NormalPulling54skubelet,node-2Pullingimage"nginx:1.7.9"NormalPulled40skubelet,node-2Successfullypulledimage"nginx:1.7.9"NormalCreated40skubelet,node-2Createdcontainerexmple-nginxNormalStarted40skubelet,node-2Startedcontainerexmple-nginx容器镜像拉取策略配置拉取策略1将镜像拉取策略改为ifNotPresent并重建Pod[root@node-1~]#vipod-demo.yamlimagePullPolicy:IfNotPresent[root@node-1~]#kubectldeletepodexmple-podpod"exmple-pod"deleted[root@node-1~]#kubectlapply-fpod-demo.yamlpod/exmple-podcreated容器镜像拉取策略配置拉取策略1查看pod资源的详细信息:[root@node-1~]#kubectldescribepodexmple-podEvents:TypeReasonAgeFromMessage-------------------------NormalScheduled66sdefault-schedulerSuccessfullyassigneddefault/exmple-podtonode-2NormalPulled65skubelet,node-2Containerimage"nginx:1.7.9"alreadypresentonmachineNormalCreated65skubelet,node-2Createdcontainerexmple-nginxNormalStarted65skubelet,node-2Startedcontainerexmple-nginx容器镜像拉取策略配置拉取策略1省略imagePullPolicy:[root@node-1~]#vipod-demo.yamlspec:containers:-name:exmple-nginximage:nginxports:-name:http-80containerPort:80protocol:TCP容器镜像拉取策略配置拉取策略1[root@node-1~]#kubectldeletepodexmple-podpod"exmple-pod"deleted[root@node-1~]#[root@node-1~]#kubectlapply-fpod-demo.yaml[root@node-1~]#kubectldescribepodexmple-podEvents:TypeReasonAgeFromMessage-------------------------NormalScheduled47sdefault-schedulerSuccessfullyassigneddefault/exmple-podtonode-2NormalPulling46skubelet,node-2Pullingimage"nginx"容器镜像拉取策略配置拉取策略1省略imagePullPolicy,并使用:latest作为镜像标签:[root@node-1~]#vipod-demo.yamlspec:containers:-name:exmple-nginximage:nginx:latest容器镜像拉取策略配置拉取策略1创建pod资源并查看pod详细信息:[root@node-1~]#kubectldeletepodexmple-podpod"exmple-pod"deleted[root@node-1~]#kubectlapply-fpod-demo.yamlpod/exmple-podcreated[root@node-1~]#[root@node-1~]#kubectldescribepodexmple-podEvents:TypeReasonAgeFromMessage-------------------------NormalScheduled23sdefault-schedulerSuccessfullyassigneddefault/exmple-podtonode-2NormalPulling22skubelet,node-2Pullingimage"nginx:latest"容器镜像拉取策略配置拉取策略2容器启动命令和参数2创建Pod时可以为其下的容器设置启动时要执行的命令及其参数。
设置命令--填写在配置文件的command字段下,
设置命令的参数--填写在配置文件的args字段下。一旦Pod创建完成,该命令及其参数就无法再进行更改了。容器启动命令和参数2配置文件中设置的容器启动时要执行的命令及其参数会覆盖镜像中自带的命令与参数。如果配置文件中只是设置了参数,却没有设置其对应的命令,那么容器镜像中自带的命令会使用该新参数作为其执行时的参数。容器启动命令和参数2在node-3节点查看nginx镜像的详情信息:[root@node-3~]#dockerimageinspectnginx:1.7.9"Cmd":["nginx","-g","daemonoff;"],"Entrypoint":null容器启动命令和参数2修改容器启动命令和参数[root@node-1~]#vipod-demo.yaml。。。spec:containers:-name:exmple-nginximage:nginx:1.7.9imagePullPolicy:IfNotPresent
command:["nginx"]args:["-g","daemonoff;"]ports:-name:http-80containerPort:80protocol:TCP容器启动命令和参数设置command和args2删除并重建Pod[root@node-1~]#kubectldelete-fpod-demo.yamlpod"exmple-pod"deleted[root@node-1~]#kubectlapply-fpod-demo.yamlpod/exmple-podcreated容器启动命令和参数设置command和args2查看Pod详细信息[root@node-1~]#kubectldescribepodexmple-podContainers:exmple-nginx:Command:nginxArgs:-gdaemonoff;容器启动命令和参数设置command和args2[root@node-1~]#vipod-demo.yamlcommand:["nginx","-g","daemonoff;"]删除并新建Pod[root@node-1~]#kubectldelete-fpod-demo.yamlpod"exmple-pod"deleted[root@node-1~]#kubectlapply-fpod-demo.yamlpod/exmple-podcreated容器启动命令和参数省略args2查看详细信息[root@node-1~]#kubectldescribepodexmple-podCommand:nginx-gdaemonoff;容器启动命令和参数省略args2[root@node-1~]#vipod-demo.yamlspec:containers:-name:exmple-nginximage:nginx:1.7.9imagePullPolicy:IfNotPresentargs:["nginx","-g","daemonoff;"]容器启动命令和参数只定义args2重新创建pod资源并查看:[root@node-1~]#kubectldelete-fpod-demo.yamlpod"exmple-pod"deleted[root@node-1~]#kubectlapply-fpod-demo.yamlpod/exmple-podcreated[root@node-1~]#kubectldescribepodexmple-podArgs:nginx-gdaemonoff;容器启动命令和参数只定义args3容器的重启策略3容器的重启策略Pod的spec中包含一个restartPolicy字段,其可能取值包括Always、OnFailure和Never。默认值是Always。Always:不管容器是否正常退出,都是执行重启操作OnFailure:容器内部的进程运行异常的时候,容器才会进行重启Never:容器不重启,常用于批处理任务,只需要执行一次即可3容器的重启策略restartPolicy适用于Pod中的所有容器。restartPolicy仅针对同一节点上kubelet的容器重启动作。当Pod中的容器退出时,kubelet会按指数回退方式计算重启的延迟,其最长延迟为5分钟。一旦某容器执行了10分钟并且没有出现问题,kubelet对该容器的重启回退计时器执行重置操作。3容器的重启策略[root@node-1~]#virestart_policy.yaml。。。spec:containers:-name:pod-restart-demoimage:busybox:latestimagePullPolicy:IfNotPresentcommand:["cat"]args:["/etc/passwd"]restartPolicy:Always重启策略设置为Always3容器的重启策略重启Pod[root@node-1~]#kubectlapply-frestart_policy.yamlpod/pod-restart-democreated[root@node-1~]#kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEpod-restart-demo0/1CrashLoopBackOff393s重启策略设置为Always3容器的重启策略查看Pod日志[root@node-1~]#kubectllogspod-restart-demoroot:x:0:0:root:/root:/bin/shdaemon:x:1:1:daemon:/usr/sbin:/bin/falsebin:x:2:2:bin:/bin:/bin/falsesys:x:3:3:sys:/dev:/bin/falsesync:x:4:100:sync:/bin:/bin/syncmail:x:8:8:mail:/var/spool/mail:/bin/falsewww-data:x:33:33:www-data:/var/www:/bin/falseoperator:x:37:37:Operator:/var:/bin/falsenobody:x:65534:65534:nobody:/home:/bin/false重启策略设置为Always3容器的重启策略[root@node-1~]#virestart_policy.yaml。。。spec:containers:-name:pod-restart-demoimage:busybox:latestimagePullPolicy:IfNotPresentcommand:["cat"]args:["/etc/passwd"]restartPolicy:OnFailure重启策略设置为OnFailure3容器的重启策略[root@node-1~]#kubectldelete-frestart_policy.yamlpod"pod-restart-demo"deleted[root@node-1~]#kubectlapply-frestart_policy.yamlpod/pod-restart-democreated[root@node-1~]#kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEpod-restart-demo0/1Completed07s应为容器内运行是正常的,不需要重启重启策略设置为OnFailure3容器的重启策略模拟容器内部执行命令时出现错误:[root@node-1~]#virestart_policy.yaml。。。spec:containers:-name:pod-restart-demoimage:busybox:latestimagePullPolicy:IfNotPresentcommand:["cat"]args:["/etc/passwdd"]restartPolicy:OnFailure重启策略设置为OnFailure3容器的重启策略模拟容器内部执行命令时出现错误:[root@node-1~]#kubectldelete-frestart_policy.yamlpod"pod-restart-demo"deleted[root@node-1~]#kubectlapply-frestart_policy.yamlpod/pod-restart-democreated重启策略设置为OnFailure3容器的重启策略模拟容器内部执行命令时出现错误:[root@node-1~]#kubectldescribepodpod-restart-demoEvents:TypeReasonAgeFromMessage-------------------------NormalScheduled112sdefault-schedulerSuccessfullyassigneddefault/pod-restart-demotonode-2NormalPulled28s(x5over111s)kubelet,node-2Containerimage"busybox:latest"alreadypresentonmachineNormalCreated28s(x5over111s)kubelet,node-2Createdcontainerpod-restart-demoNormalStarted28s(x5over111s)kubelet,node-2Startedcontainerpod-restart-demoWarningBackOff0s(x10over110s)kubelet,node-2Back-offrestartingfailedcontainer重启策略设置为OnFailure3容器的重启策略模拟容器内部执行命令时出现错误:[root@node-1~]#kubectllogspod-restart-democat:can'topen'/etc/passwdd':Nosuchfileordirectory重启策略设置为OnFailure3容器的重启策略对于持久化的服务,设置为Always常规的执行命令,使用OnFailure计划任务,使用Never重启策略设置为OnFailure4pod定义多个容器4pod定义多个容器编写pod-muti-container.yaml文件,创建pod用于定义多个容器:[root@node-1~]#vipod-muti-container.yamlspec:containers:-name:nginximage:nginx:1.7.9imagePullPolicy:IfNotPresentports:-name:http-80containerPort:80protocol:TCP-name:busyboximage:busybox:latestimagePullPolicy:IfNotPresentcommand:["/bin/sh"]args:-"-c"-"whiletrue;"-"doechohello;"4pod定义多个容器[root@node-1~]#kubectlapply-fpod-muti-container.yamlpod/pod-muti-containercreatedpod状态错误[root@node-1~]#kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEpod-muti-container1/2CrashLoopBackOff16s4pod定义多个容器解决问题思路[root@node-1~]#kubectllogspod-muti-containererror:acontainernamemustbespecifiedforpodpod-muti-container,chooseoneof:[nginxbusybox][root@node-1~]#kubectllogspod-muti-containernginx[root@node-1~]#kubectllogspod-muti-containerbusyboxdoechohello;:line1:syntaxerror:unexpectedendoffile(expecting"do")4pod定义多个容器解决问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老院护理员常见疾病护理
- 内窥镜专科护士角色与职责
- 2026江西吉安市吉水县第二中学食堂工作人员招聘考试参考试题及答案解析
- 2026江西南昌市成都百兴世纪人力资源管理有限公司招聘兆驰-芯片设备实习生10人笔试备考试题及答案解析
- 2025年内蒙古自治区公需课学习-生态环境公益诉讼制度研究846
- 2026潍坊天立学校教师招聘笔试备考题库及答案解析
- 2026年郑州新密市公益性岗位人员招聘5人笔试备考题库及答案解析
- 2026南平建瓯市南雅镇人民政府招聘残疾人联络员1人考试备考题库及答案解析
- 2026四川达州市通川区青少年宫招聘考试备考题库及答案解析
- 2026年四川省乐山市高职单招职业技能考试题库含答案解析
- 2026年初中九年级数学强化寒假作业每日一练(30天)
- 2026年湖南化工职业技术学院单招职业技能考试模拟测试卷附答案
- 行人出行安全培训课件
- 2026学校师德师风建设实施方案
- 2026年陕西单招面试高频问题及应答模板考官视角解析
- 老年人心理健康咨询技巧
- 北师大版初二下册英语期末试卷附参考答案
- 高空作业承揽合同范本
- 2026年苏州工业园区职业技术学院单招职业适应性考试题库及答案1套
- 2026年苏州工业职业技术学院单招综合素质考试题库附答案
- GB/T 30341-2025机动车驾驶员培训教练场技术要求
评论
0/150
提交评论