Kubernets Pod的yaml文件常用参数注释
apiVersion: v1
#版本号
kind: Pod
#Pod,目前常用的部署方式都是Deployments,所以此处最常见的是Deployment
metadata:
#元数据
name: string
#pod的名称
namespace: string
#pod所属的命名空间
labels:
#自定义标签列表
- name: string
annotations:
#自定义注释列表
- name: string
spec:
#pod容器中的详细定义
containers:
#pod容器列表
- name: string
#容器的名称
image: string
#容器的镜像名称
imagePullPolicy: [Always | Never | IfNotPresent]
#镜像拉取策略,默认Always
command: [string]
#容器的启动命令列表,如不指定则使用镜像打包时实用的启动命令
args: [string]
#容器启动的命令参数列表
workingDir: string
#容器的工作目录
volumeMounts:
#挂载到容器内部的存储卷配置
- name: string
#引用pod定义的共享存储卷名称,需要与volumes[]部分定义的共享存储卷名称
mountPath: string
#存储卷在容器内Mount的绝对路径,应少于512字符
readOnly: boolean
#是否为只读模式,默认读写模式
ports:
#容器需要暴露的端口列表
- name: string
#端口的名称
containerPort: int
#容器需要监听的端口号
hostPort: int
#容器所在主机需要监听的端口号,默认与containerPort相同。设置hostPort时,同一台宿主机将无法启动该容器的第二副本。
protocol: string
#端口协议,支持TCP、UDP,默认TCP
env:
#容器运行前需要设置的环境变量列表
- name: string
#环境变量名称
value: string
#环境变量的值
resources:
#资源限制和资源请求的设置
limits:
#资源限制设置
cpu: string
#CPU限制,单位为core数,
memory: string
#内存限制,单位可为MiB,GiB
requests:
#资源限制设置
cpu: string
#CPU请求,容器启动初始可用数量
memory: string
#内存请求,容器启动初始可用数量
livenessProbe:
#对pod内各容器健康检查的设置,到探测到无响应几次后,系统将重启容器,可以设置的方法:exec、httpGet和tcpSocket
#对于一个容器仅需设置一种健康检查方法
exec:
#对pod内各容器健康检查的设置
command: [string]
#exec方式需要指定的命令或脚本
httpGet:
#对pod各容器健康检查设置 ,需要指定path、port
path: string
port: number
host: string
scheme: string
httpHeaders:
- name: string
value: string
tcpSocket:
#对pod内各容器健康检查的设置
port: number
initialDelaySeconds: 0
#容器启动完成后首次探测时间,单位0s
timeoutSeconds: 0
#对容器健康检查的探测等待响应时间设置,默认1s,超过该时间设置,将认为容器不健康,会重启该容器
periodSeconds: 0
#对容器健康检查的定期探测时间设置,默认10s探测一次
successThreshold: 0
failureThreshold: 0
securityContext:
privileged: false
restartPolicy: [Always | Never | OnFailure]
#pod的重启策略
nodeSelecrets: object
#设置Node的Label,以key:value格式指定,pod将被调度到具有这些label的Node上
imagePullScerets:
#pull镜像时使用的Secret名称,以namespace:secretkey格式指定
- name: string
hosNetwork: false
#是否使用主机网络模式,默认false,设置true表示设置容器使用宿主机网络,不在使用Docker网桥,该pod将无法在同一台宿主机上启动2个副本
volumes:
#该pod上定义的共享存储卷列表
- name: string
#共享存储卷的名称。在pod中每个存储卷定义一个名称。容器定义部分volumeMounts[].name将应用定义名称
#Volume的常用类型:emptyDir、hostPath、secret、configMap、nfs等等
emptyDir: {}
#类行为emptyDir的存储卷,表示与pod同生命周期的一个临时目录 ,其值为一个空对象。
hostPath:
#类型为hostPath的存储卷,表示挂载pod所在的主机目录
path: string
#通过此处指定
secret:
#类型为secret的存储卷,表示挂载集群预定义的secret对象到容器内部
secretName: string
items:
- key: string
path: string
configMap:
name: string
items:
- keys: string
path: string