apiVersion: v1 #版本号
kind: Pod #类型
metadata:
name: string, #pod的名称
namespace: string, #pod所属的命名空间,默认为default
labels: #自定义标签列表
- name: string
annotations: #自定义注解列表
- name: string
spec: #开始详细定义
containers: #定义容器列表
- name: string #容器名称
image: string #镜像名称
imagePullPolicy: [Always | Never | IfNotPresent] #镜像拉取策略(Always:每次都尝试重新拉取镜像;IfNotPresent:如果本地有该镜像就用本地的,本地不存在就下载镜像;Never:仅使用本地镜像)
command: [string] #容器的启动命令列表,如果不指定,则使用镜像打包时使用的启动命令
args: [string] #容器启动命令参数列表
workingDir: string #容器的工作目录
volumeMounts: #挂载到容器内部的存储卷配置
- name: string #引用pod定义的共享存储卷的名称,需要使用volumes[]部分中定义的共享存储卷名称
mountPath: string #存储卷在容器内Mount的绝对路径,应少于512个字符
readOnly: boolean #是否为只读模式,默认为读写模式
ports: #容器需要暴露的端口号列表
- name: string #端口的名称
containerPort: int #容器需要监听的端口号
hostPort: int #容器所在主机需要监听的端口号,默认与ports[0].containerPort相同.设置hostPort时,同一台宿主机将无法启动该容器的第2份副本(端口冲突)
protocol: string #端口协议,支持TCP和UDP,默认TCP
env: #容器运行前需要设置的环境变量列表
- name: string #环境变量名称
value: string #环境变量的值
resources: #资源限制和资源请求的设置
limits: #资源限制设置
cpu: string #CPU限制,单位为core数,将用于docker run --cpu-shares 参数
memory: string #内存限制,单位可以为MiB/GiB等,将用于docker run --memory 参数
requests: #资源请求限制
cpu: string #CPU请求,单位为core数,容器启动的初始可用数量
memory: string #内存请求,单位可以为MiB/GiB等,容器启动的初始可用大小
volumes: #在该pod上定义的共享存储卷列表
- name: string #共享存储卷名称,容器定义部分的containers[].volumeMounts[].name将应用该共享存储卷的名称.而volume的类型包括(emptyDir,hostPath,gitRepo,nfs,glusterfs,persistentVolumeClaim,flocker,configMap,rdb,gcePersistentDisk,awsElasticBlockStore等),可以定义多个volume,每个volume的name必须唯一
emptyDir: {} #此为类型是emptyDir的存储卷,与pod同生命周期的一个临时目录,值是空对象
hostPath: #类型为hostPath的存储卷,标识挂载pod所在宿主机的目录,通过volumes[].hostPath.path指定
path: string #pod所在主机的目录,将被用于容器中mount的目录
secret: #类型为secret的存储卷,标识挂载集群预定义的secret对象到容器内部
secretName: string
items:
- key: string
path: string
configMap: #类型为configMap的存储卷,标识挂载集群预定义的configMap对象到容器内部
name: string #configMap的名称
items:
- key: string
path: string
livenessProbe: #对pod内各个容器健康检查的设置,如果探测无响应几次后,系统将自动重启该容器.主要方式有三种(exec,httpGet,tcpSocket)
exec: #以exec的方式检查pod内各个容器的健康状况
command: [string] #exec方式需要指定的命令或脚本
httpGet: #对pod内各个容器健康检查的设置,使用httpGet的方式
path: string #get的路径
port: number #get的端口号
host: string #get的主机ip
scheme: string #get的协议 http/https
httpHeaders: #get的请求头
- name: string #get请求头的key
value: string #get请求头的值
tcpSocket: #对pod内各个容器健康检查的设置,使用tcpSocket的方式
port: number #检测number端口是否在使用
initialDelaySeconds: 0 #容器启动完成后进行首次探测的时间,单位是秒
timeoutSeconds: 1 #对容器健康检查的探测等待响应的超时时间设置,单位是秒,默认1秒.超过该超时时间时,将认为该容器不健康,并重启该容器.
periodSeconds: 10 #对容器健康检查的定期探测时间设置,单位是秒,默认10秒探测一次
successThreshold: 1 #探测成功的阈值,默认1次,达到该次数时,表示容器正常/健康
failureThreshold: 3 #探测失败的阈值,达到该次数时,表示容器异常/不健康
securityContext: #安全上下文,用于定义Pod或Container的权限和访问控制,用的少
privileged: false
restartPolicy: [Always | Never | onFailure] #pod的重启策略(Always:pod一旦终止运行,无论pod中的容器是如何终止的,kubelet都将重启它;OnFailure:只有pod以非0退出码终止时,kubelet才会重启该容器,如果容器正常结束,即退出码为0,kubelet则不会重启它
nodeSelector: object #设置nodeSelector,表示将pod调度到包涵这些label的node节点上,以key:value格式指定{status:dev}
imagePullSecrets: #拉取镜像时使用secret名称,以name:secretkey的格式指定
- name: string
hostNetwork: false #是否使用主机网络模式,默认false.如果设置为true,则表示容器使用宿主机网络,不在使用Docker网桥,该pod将无法在同一台宿主机上启动第二个相同副本.
撰写不易,喜欢的就点在赞和关注吧(* ̄︶ ̄)
转载请注明出处!