Kubernetes----资源清单定义Pod.yaml

pod.yaml(kubectl explain pod)

KIND:     Pod
VERSION:  v1

DESCRIPTION:
     Pod is a collection of containers that can run on a host. This resource is
     created by clients and scheduled onto hosts.

apiVersion: v1  #版本号
kind: Pod #资源类型
metadata: <Object> #元数据
  name: <string> #pod名称
  namespace: <string> #pod所属命名空间
  labels: <map[string]string> #标签列表
    key1: value1
    key2: value2
  annotations: <map[string]string> #资源注解,与label不同在于他不能用于挑选资源对象,仅用于为对象提供“元数据”。
    key1: value1
    key2: value2
spec: <Object> #必选,pod中容器的详细定义
  containers: <[]Object> -required- #pod中的容器列表,可以有多个容器
  - name: <string> -required- #容器名称
    image: <string> -required- #容器的镜像名称
    imagePullPolicy: <string> (Always, Never, IfNotPresent) #获取镜像的策略,Alawys表示下载镜像 IfnotPresent表示优先使用本地镜像,否则下载镜像,Nerver表示仅使用本地镜像,如果是lastest默认为Always,否则默认为IfNotPresent
    command: <[]string> #容器的启动命令列表,如不指定,使用打包时使用的启动命令,需要指定bash shell,对应Dockerfile的ENTRYPOINT,定义command后,只会运行command下的命令(优先执行与其他子字段下的command)
    args: <[]string> #容器的启动命令参数列表,向command中传参数,对应Dockerfile的CMD
    workingDir: <string> #容器的工作目录
    ports: <[]Object> #需要暴露的端口列表
    - name: <string> #端口号名称
      containerPort: <integer> -required- #容器所在pod的IP地址上暴露的端口
      hostPort: <integer> #容器所在节点暴露的端口,默认与Container相同
      hostIP: <string> #绑定host主机IP地址对应外部端口(调度节点不确定)
      protocol: <string> #端口协议,支持TCP和UDP,默认TCP
    volumeMounts: <[]Object> #挂载到容器内部的存储卷配置
    - name: #引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名
      mountPath: <string> -required- #存储卷在容器内mount的绝对路径  
    env: <[]Object>
      name: <string> -required-
      value: <string>
      valueFrom: <Object>
    livenessProbe: <Object> #容器存活状态探测
      exec: <Object> # 执行用户自定义命令
        command: <[]string>
      httpGet: <Object> #指定要执行的http请求
        host: <string> #Pod的IP地址
        httpHeaders: <string> 
        path: <string> #表示向哪个url发起请求
        port: <string> -required- #指定端口
      tcpSocket: <Object> #指定涉及TCP端口的操作。 尚不支持TCP挂钩
        host: <string> #Pod的IP地址
        port: <string> -required- #指定端口
      initialDelaySeconds: <integer> #在容器启动后多少秒进行探测,默认容器启动就探测(主进程需要启动时间)
      failureThreshold: <integer> #探测器探测的最小连续故障次数,到达此次数即视为失败,默认3,最小1
      successThreshold: <integer>
      periodSeconds: <integer> #执行探测的频率(单位s),默认10s,最下1s
      timeoutSeconds: <integer> #探测超时的秒数,默认1s
    readinessProbe: <Object> #就绪状态探测,子字段和livenessProbe一样
    lifecycle: <Object>
      postStart: <Object> #在容器创建后立即执行的
        exec: <Object>
        httpGet: <Object>
        tcpSocket: <Object>
      preStop: <Object> #在容器终止后立即执行的
  volumes: <[]Object>
    emptyDir: {}
    hostPath: <Object>
      path: <string> -required-
      type: <string> #DirectoryOrCreate:宿主机目录不存在就创建;Directory:宿主机目录必须存在;FileOrCreate:宿主机文件不存在就创建;File:宿主机文件必须存在;Socket:;CharDevice:BlockDevice:;默认为空
    nfs: <Object>
      path: <string> -required-
      readOnly: <boolean> #默认false
      server: <string> -required- #NFS server地址
    persistentVolumeClaim: <Object>
      claimName: <string> -required-
      readOnly: <boolean>
  nodeName: <string> #通过节点名称选择指定的部署主机
  nodeSelector: <map|string|string> #标签选择器,通过标签指定部署的节点(标签:key: value)
  restartPolicy: <string> #pod内容器重启策略,Always:总是重启、OnFailure:只有状态错误才重启、Never:从来不重启,默认总是重启
  hostNetwork: <boolean> #是否使用主机的网络命名空间
  hostPID: <boolean>
  hostIPC: <boolean>
  serviceAccountName: <string> #指定创建的serviceaccount名称
status: <Object>

args与command比较

Image EntrypointImage CmdContainer commandContainer argsCommand run
[/ep-1][foo bar]<not set><not set>[ep-1 foo bar]
[/ep-1][foo bar][/ep-2]<not set>[ep-2]
[/ep-1][foo bar]<not set>[zoo boo][ep-1 zoo boo]
[/ep-1][foo bar][/ep-2][zoo boo][ep-2 zoo boo]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值