K8S简历(四)

今天学了pod资源清单中的字段含义和用法。

在资源清单中command和args的区别:

command&args

从图中可以看到,如果你没有在设置command和args的值会按照镜像设置好的Env和cmd走流程;
如果你只设置了command就会把镜像的预先设置的环境替代;
如果你只设置了args就会把镜像中的cmd替代并追加到镜像中的Env后面,当Env变量;
如果你设置了command和args就会和把args追加到command后面当变量。

lable字段:

lable在资源清单中是以键值对的形式存在。(key:value)
key:只能用“字母,数字,,-”(不能为空)
value:只能用“字母,数字,
,-”(一定要以数字或字母开头,能为空)

kubectl get pods -l nginx --show-lables
#显示标签为nginx的pod,并且显示标签信息
kubectl get pods -L nginx mysql
#显示nginx标签和mysql标签两个的值,没有此标签会显示空
kubectl get pods -l nginx=v1.1
#显示标签等于nginx=v1.1的pod
kubectl get pods -l nginx!=v1.1
#显示标签不等于nginx=v1.1和没有这个标签的pods
kubectl get pods -l nginx in (v1.1,v1.2)
#显示标签等于nginx=v1.1或nginx=v1.2的pods(如果是notin:说明显示nginx!=v1.1或nginx!=v1.2或没有nginx的pods)
kubectl lable pods nginx app=www
#为nginx的pod添加app=www的标签(如果app标签已经存在,只是想修改值需要添加--overwrite)

nodeSelector字段&imagePullPolicy字段:

kubectl lable nodes www disk=ssd
#给node中的www添加标签
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent 
  nodeSelector:
    disk: ssd
#imagePullPolicy:获取镜像的策略;默认如果镜像版本是latest每次都会从镜像仓库中下载,如果指定了版本号会优先使用本镜像。
#Always
#总是拉取:
#首先获取仓库镜像信息,
#如果仓库中的镜像与本地不同,那么仓库中的镜像会被拉取并覆盖本地。
#如果仓库中的镜像与本地一致,那么不会拉取镜像。
#如果仓库不可用,那么pod运行失败。
#IfNotPresent
#优先使用本地:
#如果本地存在镜像,则使用本地的,
#不管仓库是否可用。
#不管仓库中镜像与本地是否一致。
#Never
#只使用本地镜像,如果本地不存在,则pod运行失败
#nodeSelector:把pod部署在有disk=ssd的node中

annotations字段:

与lable不一样的是它不能用于挑选资源对象,仅用于为对象提供“元数据”。

restartPolicty字段:

restartPolicty有Always,OnFainlure,Never等值;
Always:只要容器发生错误或没达到预期要求就立刻重新启动;
OnFainlure:只有容器发生错误才会重新启动;
Nerver:绝不重启;
restartPolicty字段默认Always。

Pod生命周期:

Pod的状态:Pending,Runing,Failed,Succeeded,Unknown
Pending:创建pod失败是会出现的挂起状态;
Runing:运行状态;
Failed:运行错误状态;
Succeeded:Pod初始化成功会有一瞬间的成功状态;
Unknown:当kubelet失联了会出现的未知状态。
Pod创建过程如图所示:


Pod创建过程

容器钩子:

容器钩子是Kubemetes针对容器生命周期管理引入的事件处理机制,它负责监听Kubemetes对容器生命周期的管理信息,并将这些信息以广播的形式通知给容器。然后执行相应的回调函数。
Kubemetes支持两种类型的容器钩子,分别为PostStart和PostStart。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、资源含义 k8s中所有的内容都被抽象为资源,资源实例化之后,叫做对象。 二、资源分类 名称空间级别 仅在此名称...
    小波同学阅读 1,064评论 0 0
  • 排错指南 - Pod 本文档介绍 Pod 的异常状态,可能原因和解决办法。 排查 Pod 异常的常用命令如下: 查...
    小孩子的童话2014阅读 7,243评论 0 2
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,713评论 0 5
  • 什么是Pod Pod是Kubernetes中可以创建和部署的最小单位。 Pod为一个或多个container的组合...
    AlienPaul阅读 5,329评论 0 3
  • 学习K8S的第一步,当然是了解它基本概念了(说实话很多)。本文总结自《kubernetes权威指南》,个人学习笔记...
    ________方块丶阅读 1,206评论 0 1

友情链接更多精彩内容