Kubernetes之pod的属性

Posted rdchenxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes之pod的属性相关的知识,希望对你有一定的参考价值。

属性名称 取值类型                   是否必选 取值说明
version String Required(必) 版本号,例如v1
kind String Required pod
metadata Object Required 元数据
metadata.name String Required pod的名称,命名规范须符合RFC 1035规范
metadata.namespace String Required pod的所属命名空间,默认值为default
metadata.labels[] List   自定义便签列表
metadata.annotation[] 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、Never、IfNOtPresent,默认值为Always 

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

IfNotPresent:表示如果本地有镜像,使用本地镜像,本地镜像不存在时下载镜像

Never:表示仅使用本地镜像

spec.containers[].command[] List   容器启动命令列表,如果不指定,则使用镜像打包是的启动命令
spec.containers[].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

string   是否为只读模式,默认读写模式
spec.containers[].ports[] list   容器需要暴露端口号列表
spec.containers[].ports[].name String   端口名称

spec.containers[].ports[].containerPort

lnt   容器需要监听的端口号
spec.containers[].ports[].hostPort Int   容器所在主机需要监听的端口号,默认与containerPort相同。设置hostPost时,同一台主机无法启动该容器的第二个副本
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中每个存储卷定义一个名称,应符合RFC 1035规范。容器定义部分的containers[].

volumeMount[].name将引用该存储卷法人名称

spec.volumes[].emptyDir Object   类型为emptyDir的存储卷,表示与pod同生命周期的一个临时目录,其值为一个空对象:emptyDir
spec.volumes[].hostPath.path String   类型为hostpash的存储卷,表示挂着pod所在宿主机的目录
spec.volumes[].secret Object   类型为secret的存储卷,表示挂载集群预定义的secret对象到容器内部

spec.volumes[].configMap

Object   类型为configMap的存储卷,表示挂载集群预定义的configMap对象到容器内部
spec.volumes[].livenessProbe Object  

对pod内容器设置健康状态检查的设置,当探测几次无响应后,系统自动重启该容器。可以设置的方法包括:exec、httpGet、

和tcpSocket。对一个容器仅设置一种健康检查方法

spec.volumes[].livenessProbe.exec Object   对pod内部健康状态检查设置exec方式
spec.volumes[].livenessProbe.exec.command[] String   exec 需要指定的命令或者脚本
spec.volumes[].livenessProbe.httpGet Object   对Pod内个容器健康状态检查,设置HTTPGet方式。需要指定Path、pod
spec.volumes[].livenessProbe.tcpSocket Object   对pod内各个容器健康检查的设置,tcpSocket方式
spec.volumes[].livenessProbe.initialDelaySeconds Number   容器启动完成后进行首次探测的时间,单位为s
spec.volumes[].livenessProbe.timeoutSeconds Number   对容器健康状态检查的等待响应的超时时间。单位为s,默认为1s,超过该超时时间设置,将认为该容器不健康,将重启容器
spec.volumes[].livenessProbe.periodSeconds Number   对容器健康检查的定期时间设置,单位为s默认为10s探测一次
spec.restartPolicy String  

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

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

OnFailure:只有pod以非零吗终止时,kubelet才会重启容器,如果正常退出则不会重启

Never:pod终止后将该pod退出吗;报告给Master,不会再重启pod

spec.nodeSelector Object   设置NodeSelector表示将该pod调度到包含这些label的Node上。以key:value格式指定
spec.imagePullSecret  Object    pull镜像时使用secret名称,以name:secretkey.格式指定
 spec.hostNetwork  Boolean  

是否使用主机网络模式,默认值为false.。如果设置为true,则表示容器使用宿主机网络,使用Docker网桥,该pod将无法在同一

台主机启动第二个副本

以上是关于Kubernetes之pod的属性的主要内容,如果未能解决你的问题,请参考以下文章

混沌工程之ChaosBlade-Operator 使用之模拟 POD 丢包场景

kubernetes之pod健康检查

kubernetes调度之污点(taint)和容忍(toleration)

k8s系列(二):Pods与Nodes

深入kubernetes之Pod——一pod多容器

Kubernetes对象之Pod