一、Pod 资源清单
Pod 资源清单详解
apiVersion: v1 # 版本号,例如v1
kind: Pod # 资源类型,例如Pod
metadata: # 元数据,包含name、namespace、labels等
name: string # Pod名称,例如nginx
namespace: string # Pod所属的命名空间,例如default
labels: # 自定义标签,例如app: nginx
- name: string # 标签名称,例如app
annotations: # 自定义注解,例如author: xxx
- name: string # 注解名称,例如author
spec: # Pod的规格(容器的详细定义)
containers: # 容器列表,一个Pod可以有多个容器
- name: string # 容器名称,例如nginx
image: string # 容器使用的镜像,例如nginx:1.7.9
imagePullPolicy: PullIfNotPresent # 镜像拉取策略,例如IfNotPresent、Always、Never
command: [string] # 容器启动命令,例如["/bin/sh"]
args: [string] # 容器启动参数,例如["-c", "echo hello"]
workingDir: string # 容器工作目录,例如/var/www
volumeMounts: # 挂载到容器内部的存储卷配置
- name: string # 存储卷名称,例如www
mountPath: string # 存储卷挂载路径,例如/var/www
readOnly: boolean # 是否只读,例如false
ports: # 容器监听的端口配置
- name: string # 端口名称,例如http
containerPort: int # 容器监听的端口号,例如80
hostPort: int # Pod监听的端口号,例如80
protocol: string # 端口使用的协议,例如TCP
env: # 容器运行前需设置的环境变量
- name: string # 环境变量名称,例如VERSION
value: string # 环境变量的值,例如v1
resources: # 容器的资源限制和请求配置
limits: # 资源限制的配置
cpu: string # CPU的限制,单位为core数
memory: string # 内存的限制,单位为bytes或者MiB或者GiB
requests: # 资源请求的配置
cpu: string # CPU的请求,容器启动的初始可用数量
memory: string # 内存的请求,容器启动的初始可用内存
livenessProbe: # 对Pod内个容器健康检查的配置,检查方法:exec、httpGet、tcpSocket
exec: # 对 Pod 容器内检查方式设置为 exec 方式
command: [string] # exec方式需要制定的命令或者脚本
httpGet: # 对 Pod 容器内检查方式设置为 httpGet 方式
path: string # HTTP请求路径,例如/healthz
port: int # HTTP请求端口,例如8080
host: string # HTTP请求HOST,例如example.com
scheme: string # HTTP请求scheme,例如HTTP
httpHeaders: # HTTP请求头
- name: string # HTTP请求头名称,例如X-Custom-Header
value: string # HTTP请求头的值,例如Awesome
tcpSocket: # 对 Pod 容器内检查方式设置为 tcpSocket 方式
port: int # TCP请求端口,例如8080
initialDelaySeconds: int # 容器启动完成后首次探测的时间,单位为秒,默认为0
timeoutSeconds: int # 探测等待响应的超时时间,单位为秒,默认为1
periodSeconds: int # 探测之间的间隔时间,单位为秒,默认为10
successThreshold: int # 探测成功的连续次数,默认为1
failureThreshold: int # 探测失败的连续次数,默认为3
securityContext: # Pod 安全上下文配置
privileged: boolean # 是否特权模式,默认为false
restartPolicy: string # Pod内个容器的重启策略,Always、OnFailure、Never,默认为Always
nodeSelector: object # 节点选择器,用于指定Pod调度到的节点
imagePullSecrets: # 镜像拉取凭证,用于从私有仓库拉取镜像
- name: string # 镜像拉取凭证名称,例如regsecret
hostNetwork: boolean # 是否使用主机网络模式,默认为false(不使用)
volumes: # 在该pod上定义共享存储卷列表
- name: string # 共享存储卷名称,例如www
emptyDir: {} # 类型为emptyDir的存储卷,与Pod同生命周期的临时存储
hostPath: # 类型为hostPath的存储卷,表示挂载pod所在宿主机的目录
path: string # pod所在宿主机的目录,将被用于存储卷的挂载
secret: # 类型为secret的存储卷,用于将Secret以文件或目录的形式挂载到Pod中
secretName: string # 密文存储卷名称
items: # 配置文件存储卷项列表
- key: string # 配置文件存储卷项的key
path: string # 配置文件存储卷项的路径
configMap: # 类型为configMap的存储卷,用于将ConfigMap以文件或目录的形式挂载到Pod中
name: string # 配置文件存储卷名称
items: # 配置文件存储卷项列表
- key: string # 配置文件存储卷项的key
path: string # 配置文件存储卷项的路径