Pod资源清单解读
#版本号
apiVersion: v1
#资源类型
kind: Pod
#元数据
metadata:
#Pod名字
name: string
#pod所属命名空间
namespace: string
#自定义标签
labels:
#自定义标签名字
- name: string
#自定义注释列表
annotations:
- name: string
#pod中容器的详细定义
spec:
#pod中容器列表
containers:
#容器名称
- name: string
#容器镜像名称
image: string
#获取镜像的策略(Always表示下载镜像,IfNotPresent表示优先使用本地镜像,Never表示仅使用本地镜像)
imagePullPolicy: Always|Never|IfNotPresent
#容器的启动命令列表,如不指定,使用打包时使用的启动命令
command: [string]
#容器的启动命令参数列表
args: [string]
#容器的工作目录
workingDir: string
#挂载到容器内的存储卷位置
volumeMounts:
#引用pod定义的共享存储卷的名称,需用volumes[]部分定义的卷名
- name: string
#存储卷在容器内mount的绝对路径,应小于512字符
mountPath: string
#是否为只读模式
readOnly: boolean
#需要暴露的端口号
ports:
#端口号名称
- name: string
#容器需要监听的端口号
containerPort: int
#容器所在主机需要监听的端口号,默认与Container相同
hostPort: int
#端口协议,支持TCP/UDP,默认是TCP
protocol: string
#容器运行前需设置需设置的环境变量列表
env:
#环境变量名称
- name: string
#环境变量的值
value: string
#资源限制和请求的设置
resources:
#资源限制的设置
limits:
#cpu限制,单位为core数
cpu: string
#内存限制,单位为Mib/Gib
memory: string
#资源请求的设置
requests:
#cpu请求,容器启动的初始可用数量
cpu: string
#内存请求,容器启动的初始可用内存
memory: string
#对Pod内容器健康检查的设置,当探测无响应几次后将自动重启该容器,检查方式有exec、httpGet和tcpSocket,对一个容器只需设置其中一种方式即可
livenessProbe:
#容器健康检查方式设置为exec方式
exec:
#exec方式需指定的命令或脚本
command: [string]
#容器健康检查方式设置为HttpGet,需要指定Path、port
httpGet:
path: string
port: number
host: string
scheme: string
HttpHeaders:
- name: string
value: string
#容器健康检查方式为tcpSocket
tcpSocket:
port: number
#容器启动完成后首次探测的时间,单位为秒
initialDelaySeconds: 0
#对容器健康检查方式探测等待响应的超时时间,默认为1秒
timeoutSeconds: 0
#对容器健康检查的定期探测时间设置,默认10秒一次
periodSeconds: 0
successThreshold: 0
failureThreshold: 0
securityContext:
privileged: false
#Pod重启策略,Always表示一旦不管以何种方式终止运行,kubelet都将重启pod,OnFailure表示只有Pod以非0状态码退出才重启,Never表示不再重启该pod。
restartPolicy: Always|Never|OnFailure
#设置nodeSelector表示该pod调度到包含这个label的node,以key:value的格式指定
nodeSelector: object
#pull镜像时使用的serect名称,以key:secretkey格式指定
imagePullSecrets:
- name: string
#是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机网络
hostNetwork: false
#在该pod上定义共享存储卷
volume:
#共享存储卷名称
- name: string
#如果 Pod 设置了 emptyDir 类型 Volume, Pod 被分配到 Node 上时候,会创建 emptyDir,只要 Pod 运行在 Node 上,
#emptyDir 都会存在(容器挂掉不会导致 emptyDir 丢失数据),但是如果 Pod 从 Node 上被删除(Pod 被删除,或者 Pod 发生迁移),
#emptyDir 也会被删除,并且永久丢失。
emptyDir: {}
#hostPath 允许挂载 Node 上的文件系统到 Pod 里面去。如果 Pod 需要使用 Node 上的文件,可以使用 hostPath
hostPath:
#pod所在宿主机的目录,将被用于挂载到容器中
path: string
#挂载集群与定义的secret对象到容器内部
secret:
secretname: string
items:
- key: string
path: string
#挂载预定义的configmap对象到容器内部
configMap:
name: string
items:
- key: string
path: string