k8s-yaml定义pod属性说明

属性名称  取值类型 是否必选 取值说明
version String Required 版本号,如 v1
kind String Required Pod
metadata Object Required 元数据
metadata.name String Required Pod名称
metadata.namespace String Required Pod所属的命名空间,默认default
metadata.labels[] List   自定义标签列表
metadata.annotaion[] List    自定义注解列表
Spec Object Required  Pod中容器的详细定义
spec.containers[]  List Required  Pod中的容器列表 
spec.containers[].name  String Required 容器的名称 
spec.containers[].image  String Required  容器的镜像名称
 spec.containers[].imagePullPolicy  String  

 获取镜像的策略,默认值:Always

Always:每次都尝试重新下载镜像

IfNotPresent: 如果本地有,则使用本地,本地没有时下载

Never: 仅使用本地镜像

 spec.containers[].command[] List     容器的启动命令列表,如不指定,则使用镜像打包时使用的启动命令
 spec.comatiners[].args List     容器的启动命令参数列表
 spec.containers[].workingDir String    容器的工作目录 
 spec.containers[].volumeMounts[] List     挂载到容器内部的存储卷配置
 spec.containers[].volumeMounts[].name String    引用pod定义的共享存储卷的名称,需使用volumes[]部分定义的共享存储卷名称
 spec.containers[].volumeMounts[].mountPath String    存储卷在容器内Mount的绝对路径,应少于512个字符
 spec.containers[].volumeMounts[].readOnly Boolean     是否为只读模式,默认为读写模式
 spec.containers[].ports[] List    容器需要暴露的端口号列表
 spec.containers[].ports[].name String    端口的名称
 spec.containers[].ports[].containerPort Int   容器需要监听的端口号
 spec.containers[].ports[].hostPort Int  

容器所在主机需要监听的端口号,默认与containerPort相同,设置hostPort时,同一台宿主机将无法启动该容器的第二份副本

 spec.containers[].ports[].protocol String   端口协议,支持TCP和UDP,默认为TCP
 spec.containers[].env[] List   容器运行前需设置的环境变量列表
 spec.containers[].env[].name String   环境变量的名称
 spec.containers[].env[].value String   环境变量的值
 spec.containers[].resources Object   资源限制和资源请求的设置
 spec.containers[].resources.limits Object   资源限制的设置
 spec.containers[].resources.limits.cpu String   CPU限制,单位为core数,将用于docker run --cpu-shares参数
 spec.containers[].resources.limits.memory String   内存限制,单位可以为MiB/GiB等,将用于docker  run --memory参数
 spec.containers[].resources.requests Object   资源限制的设置
 spec.containers[].resources.requests.cpu String   CPU请求,单位为core数,容器启动的初始可用数量
 spec.containers[].resources.requests.memory String   内存请求,单位可以是MiB  GiB,容器启动初始可用数量
 spec.volumes[] List   在该pod上定义的共享存储卷列表
 spec.volumes[].name String  

共享存储卷的名称,在一个pod中每个存储卷定义了一个名称,容易定义部分的containers[].volumeMounts[].name将引用该共享存储卷的名称。

volume的类型包括: emptyDir、hostPath、gcePersistentDisk、awsElasticBlockStore、gitRepo、secret、 nfs iscsi 、glusterfs、 persistentVolumeClaim、 rbd、 flexVolume、 cinder、 cephfs、 flocker、 downwardAPI、 fc、azureFile、 configMap、 vsphereVolume,可以定义多个volume,每个volume的name保持唯一,

 

spec.volumes[].emptyDir Object  

类型为emptyDir的存储卷,表示与pod同生命周期的一个临时目录,其值为一个空对象: emptyDir:{}

spec.volumes[].hostPath Object  

类型为hostPath的存储卷,表示挂载pod所在宿主机的目录,通过volumes[]、hostPath.path指定

spec.volumes[].hostPath.path String  

pod所在主机的目录,将被用于容器中mount的目录

spec.volumes[].secret Object  

类型为secret的存储卷,表示挂载集群预定义的secret对象到容器内部

spec.volumes[].configMap Object  

类型为configMap的存储卷,表示挂载集群预定义的configMap对象到容器内部

spec.volumes[].livenessProbe.exec Object  

对pod内各容器健康检查的设置,exec方式

spec.volumes[].livenessProbe.exec.command[] String  

exec方式需要指定的命令或者脚本

spec.volumes[].livenessProbe.httpGet Object  

对pod内各容器健康检查的设置,HTTPGet方式,需指定path、port

spec.volumes[].livenessProbe.tcpSocket Object  

对pod内各容器健康检查的设置,tcpSocket方式

spec.volumes[].livenessProbe.initialDelaySeconds Number  

容器启动完成后进行首次探测的时间,单位为秒

spec.volumes[].livenessProbe.timeoutSeconds Number  

对容器健康检查的探测等待响应的超时时间设置,单位为秒,默认1秒,超过超时时间设置,将认为该容器不健康,会重启容器

spec.volumes[].livenessProbe.periodSeconds Number  

对容器健康检查的定期探测时间设置,单位为秒,默认10秒探测一次

spec.restartPolicy String  

pod的重启策略,可选值:Always、OnFailure默认为Always,

Always:pod一旦终止运行,则无论容器是如何终止的,kubelet都将重启它

OnFailure: 只有pod以非零退出码终止时,kubelet才会重启该容器,如果容器正常结束(退出码为0),则kubelet不会重启

Never: pod终止后,kubelet将退出码报告给master,不会再重启该pod

spec.nodeSelector Object  

设置NodeSelector表示将该pod调度到包含这些label的Node上,以key:value格式指定

spec.imagePullSecrets Object   Pull镜像时使用的secrets名称,以name:secrekey格式指定
spec.hostNetwork Boolean   是否使用主机网络模式,默认为false,如果设置为true,则表示容器使用宿主机网络,不再使用Socker网桥,该pod无法在同一台宿主机上启动第2个副本
posted @ 2021-07-07 13:45  风儿飘  阅读(409)  评论(0编辑  收藏  举报