POD定义详解

POD定义详解:

apiVersion: v1                   //api版本   1.16.* - 1.19.* 是使用apps/v1beta1版本
kind: pod                          //定义什么就写什么,比如要写一个pod,那么kind就是pod,如果写一个server,那么就写server
metadata:                        //元数据
  name: string                  //对应kind,这里是pod的名称
  namespace: string         //对应kind,这里是pod的命名空间,如果不填写默认是default
  labels:                           //对应kind,这里是pod的标签列表,可以填写多个label
    - name: string             //对应labels(标签)列表,此行是列表中标签之一
  annotations:                 //对应kind,这里是pod的注解列表
    - name: string             //对应annotations(注释),此行是注解列表中的之一
spec:                              //pod中容器的详细定义
  containers:                   //pod中容器的列表
  - name: string               //容器的名称
    image: string              //容器的镜像名称
    imagePullPolicy: Always | Never | IfNotPresent   //拉取镜像策略: Always总是拉去镜像库镜像  Never仅使用本地镜像 IfNotPresent本地有镜像就不拉取镜像库镜像,如果没有就拉取镜像库镜像
	command: [string]        //容器的启动命令列表,如果不指定,则使用镜像打包时使用的启动命令
	args: [string]               //容器的启动命令参数列表
	workingDir: string        //容器的工作目录
	volumeMounts:            //挂载到容器内部的存储卷配置
	- name: string              //引用pod定义的共享存储卷的名称,需使用volumes[]部分定义的共享存储卷名称
	  mountPath: string       //存储卷在容器内挂载的绝对路径,应少于512个字符
	  readOnly: boolean      //是否为只读模式,默认为读写模式
	ports:                           //容器需要暴露的端口号列表
	- name: string              //端口的名称
	  containerPort: int       //容器需要监听的端口号
	  hostPort: int               //容器所在主机需要监听的端口号,默认是与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等,容器启动的初始可用数量
    livenessProbe:             //对pod内各容器健康检查的设置,当探针无响应几次之后,系统将自动重启该容器。可以设置的方法包括:exec、httpGet和tcpSocket。对一个容器仅需设置一种健康方法。
	  exec:                       //对pod内各容器健康检查的设置,exec方式
	    command: [string]        //exec方式需要指定的命令或者脚本
	  httpGet:                    //对pod内各容器健康检查的设置,httpGet方式,需指定path、port
	    path: string             //指定的路径
		port: number             //指定的端口
		host: string             //指定的主机
		scheme: string
		httpHeaders:           
		- name: string
		  value: string
      tcpSocket:               //对pod内各容器健康检查的设置,tcpSocket方式
		port: number         
	  initialDelaySeconds: 0   //容器启动完成后首次探测的时间,单位为s
	  timeoutSeconds: 0        //对容器健康检查的探测等待响应的超时时间设置,单位为s,默认值为1s。若超过该超时时间设置,则将认为该容器不健康,会重启该容器
	  periodSeconds: 0         //对容器健康检查的定期探测时间设置,单位为s,默认10s探测一次
	  successThreshold: 0      //
	  failureThreshold: 0      //
    securityContest:
	  privileged: false
  restartPolicy: Always | Never | OnFailure  //pod的重启策略,Always pod一旦终止运行,则无论容器是如何终止的,kubelet都将重启它,Never pod终止后,kubelet将退出码报告给master,不会再重启该pod,OnFailure 只有pod以非零退出码终止时,kubelet才会重启该容器。如果容器正常结束(退出码为0),则kubelet将不会重启它。
  nodeSelector: object         //设置node的label,以key:value格式指定,pod将被调度到具有这些label的node上
  imagePullSecrets:            //pull镜像时使用的secret名称,以name:secretkey格式指定
  - name: string
  hostNetwork: false           //是否使用主机网络模式,默认值为false。设置为true表示容器使用宿主机网络,不再使用docker网桥,该pod将无法再同一台宿主机上启动第2个副本
  volumes:                     //在该pod上定义的共享存储卷列表
  - name: string               //共享存储卷的名称,在一个pod中每个存储卷定义一个名称
    emptyDir: {}               //类型为emptyDir的存储卷,表示与pod同生命周期的一个临时目录,其值为一个空对象:emptyDir: {}
	hostPath:                  //类型为hostPath的存储卷,表示pod容器挂载的宿主机目录,通过volumes[].hostPath.path指定
	  path: string             //pod容器挂载的宿主机目录
	secret:                    //类型为secret的存储卷,表示挂载集群预定义的secret对象到容器内部
	  secretName: string
	  items:
	  - key: string
	    path: string
	configMap:                 //类型为configMap的存储卷,表示挂载集群预定义的configMap对象到容器内部
	  name: string
	  items: 
	  - key: string
	    path: string

内容参照《Kubernetes 权威指南》第五版,本书内容非常全面,值得学习的一本好书。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值