# Pod template yaml
# 使用CTRL+F搜索所需要的Pod模块标题,以快速查找

# ----------------------------------- 新建命名空间 ---------------------------------
---                               # 如果需要将多段yaml配置放在一个文件中,中间要使用---分隔
apiVersion: v1                    # 接口版本
kind: Namespace                   # 接口类型
metadata:                         # 元数据
  name: string                    # 新建的命名空间名称

# ------------------------------------ Pod.yaml部分 -------------------------------
---                     
apiVersion: v1          
kind: Pod                   

# --------------------------------- 元数据(metadata) -----------------------------
metadata:
  name: string                    # Pod名称
  namespace: string               # 使用的命名空间
  labels:                         # 标签
    app: string                   # 自定义标签名字

# --------------------------------- 详细定义(spec) --------------------------------
spec:                             # 详细定义
  restartPolicy: string           # Pod的恢复策略
#     1. Always:                 在任何情况下,只要容器不在运行状态,就自动重启容器;
#     2. OnFailure:               只在容器 异常时才自动重启容器;
#     3. Never:                   从来不重启容器。

# ---------------------------------- shareProcessNamespace ------------------------
  shareProcessNamespace: true     # 共享进程名称空间,表示这个Pod里的容器要共享进程(PID Namespace)如果是false则为不共享。

# ------------------------------------  hostNetwork -------------------------------
  hostNetwork: true               # 共享宿主机网络

# ------------------------------------ hostIPC ------------------------------------
  hostIPC: true                   # 共享ipc通信

# ------------------------------------ hostPID ------------------------------------
  hostPID: true                   # 共享宿主机的pid

# ----------------------------- Pod中容器的列表(containers) ------------------------
  containers:                     # Pod中容器的列表
    - name: string                # 容器名称

# ------------------------------- 容器镜像(image) ---------------------------------
      image: string               # 容器镜像

# ------------------------------- 标准输入(stdin) ---------------------------------
      stdin: true                 # 给容器分配标准输入,类似docker run -i

# ------------------------------- 分配终端(tty) -----------------------------------
      tty: true                   # 分配终端      

# ---------------------------------- 端口(ports) ----------------------------------
      ports:					            # 需要暴露的端口库号列表
        - name: string			      # 端口号名称
          containerPort: int	    # 容器需要监听的端口号
          hostPort: int			      # 容器所在主机需要监听的端口号,默认与Container相同
          protocol: string		    # 端口协议,支持TCP和UDP,默认TCP

# ----------------------------------- 环境变量(env) -------------------------------
      env:					              # 容器运行前需设置的环境变量列表
        - name: string			      # 环境变量名称
          value: string			      # 环境变量的值

# ---------------------------------- 命令(command) --------------------------------  
      command: 		                #容器的启动命令列表,如不指定,使用打包时使用的启动命令
        - "string"
        - "string"
        - "string"
#     command: ["string","string","string"]

# --------------------------- 拉取镜像的策略(imagePullPolicy) ---------------------
# 获取镜像的策略:Alawys表示总是下载镜像,IfnotPresent表示优先使用本地镜像,否则下载镜像,Nerver表示仅使用本地镜像
# [Always | Never | IfNotPresent]
      imagePullPolicy: IfNotPresent

# ---------------------------- 资源的请求和限制(resource) -------------------------
      resources:				          # 资源限制和请求的设置
        limits:				            # 资源限制的设置
          cpu: string			      # Cpu的限制,单位为core数,将用于docker run --cpu-shares参数
          memory: string			  # 内存限制,单位可以为Mib/Gib,将用于docker run --memory参数
        requests:				          # 资源请求的设置
          cpu: string			      # Cpu请求,容器启动的初始可用数量
          memory: string		    # 内存清楚,容器启动的初始可用数量

# ------------------------------ 节点选择器(nodeSelector) -------------------------
  nodeSelector:                   # 节点选择器:可以指定node的标签,查看标签指令
      nodeName: string            # 节点名称: 可以指定node的名称进行调度

# ----------------------------- 本地域名解析(hostAliases) -------------------------
    hostAliases:                  # 在容器中的/etc/hosts文件中配置本地解析
      - ip: "string"
        hostnames:
          - "string"
          - "string"
          - "string"
# ----------------------------- 容器的启动命令参数(args) --------------------------
      args: string		            # 容器的启动命令参数列表
        - string
        - string
        - string

# ------------------------------ 钩子函数(lifecycle) -----------------------------
      lifecycle:                  # 钩子函数
        postStart:                # 容器创建之后执行,如果失败会重启容器 
          exec:
            command: ["string", "string", "string"]
        preStop:                  # 容器删除之前执行,执行完成之后容器将成功删除,在其完成之前会阻塞删除容器的操作 
          exec:
            command: ["string", "string", "string"]

# ------------------------------ 健康检查探针(livenessProbe) ---------------------
# 对Pod内个容器健康检查的设置,当探测无响应几次后将自动重启该容器,检查方法有exec、httpGet和tcpSocket,对一个容器只需设置其中一种方法即可
      livenessProbe:              # 对Pod内个容器健康检查的设置,当探测无响应几次后将自动重启该容器,检查方法有exec、httpGet和tcpSocket,对一个容器只需设置其中一种方法即可
        exec:					            # 对Pod容器内检查方式设置为exec方式
          command: 	              # exec方式需要制定的命令或脚本
            - string
            - string
            - string
        httpGet:				          #对Pod内个容器健康检查方法设置为HttpGet,需要制定Path、port
          path: string
          port: int
          host: string
          scheme: string
        initialDelaySeconds: int  # 容器启动完成后首次探测的时间,单位为秒
        timeoutSeconds: int		    # 对容器健康检查探测等待响应的超时时间,单位秒,默认1秒
        periodSeconds: int			  # 对容器监控检查的定期探测时间设置,单位秒,默认10秒一次

# ------------------------------ 容器的工作目录(workingDir) -----------------------
      workingDir: string		      # 容器的工作目录

# ------------------------- 挂载到容器内部的存储卷配置(volumeMounts) ----------------
      volumeMounts:			          # 挂载到容器内部的存储卷配置
        - name: string			      # 引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名
          mountPath: string		    # 存储卷在容器内mount的绝对路径,应少于512字符
          readOnly: boolean		    # 是否为只读模式

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐