k8s-yaml文件常用字段

797 阅读2分钟

version:K8S API的版本,可用kubectl api-versions命令查询

kind:定义的资源类型和角色,比如Pod

metadata:元数据对象,固定值就写metadata

metadata.name:元数据对象的名字,比如pod的名字

metadata.namespace:元数据对象的命名空间

Spec:详细定义对象,固定值就写Spec

spec.containers[]:这里是Spec对象的容器列表定义

spec.containers[].name:这里定义容器的名字

spec.containers[].image:用到的镜像名称

spec.containers[].imagePullPolicy:镜像拉取策略,有Always、Never、IfNotPresent三个值可选

spec.containers[].command[]:指定容器启动命令

spec.containers[].args[]:指定容器启动命令参数

spec.containers[].workingDir:工作目录

spec.containers[].volumeMounts[]:指定容器的存储卷配置

spec.containers[].volumeMounts[].name:指定可以被挂载的存储卷的名称

spec.containers[].volumeMounts[].mountPath:指定可以被容器挂载的存储卷的路径

spec.containers[].volumeMounts[].readOnly:设置存储卷的读写模式,true或false,默认为false

spec.containers[].ports[]:指定容器要用到的端口列表

spec.containers[].ports[].name:端口名称

spec.containers[].ports[].containerPort:指定容器监听的端口号

spec.containers[].ports[].hostPort:指定容器所在主机需要监听的端口号,默认跟containerPort相同,设置了hostPort同一台主机无法启动该容器的相同副本

spec.containers[].ports[].prptocol:指定端口协议,支持TCP和UDP,默认值为TCP

spec.containers[].env[]:指定容器运行前需设置的环境变量列表

spec.containers[].env[].name:环境变量名字

spec.containers[].env[].value:环境变量值

spec.containers[].resources:指定资源限制和资源请求的值

spec.containers[].resources.limits:指定容器运行时资源的运行上限

spec.containers[].resources.limits.cpu:指定CPU的限制,单位为核心数,将用于docker run --cpu-shares参数

spec.containers[].resources.limits.memory:指定MEM内存的限制,单位为MIB、GiB

spec.containers[].resources.requests:指定容器启动和调度时的限制设置

spec.containers[].resources.requests.cpu:CPU请求,单位为核心数,容器启动时初始化可用数量

spec.containers[].resources.requests.memory:内存请求,单位为MIB、GiB,容器启动的初始化可用数量

spec.restartPolicy:定义Pod的重启策略,可选值为Always、Onfailure、Never,默认为Always

spec.nodeSelector:定义Node的Label过滤标签,以key:value格式指定

spec.imagePullSecrets:定义pull镜像时使用secret名称,以name:secretkey格式指定

spec.hostNetWork:定义是否使用主句网络模式,默认为false,设置为true表示使用主机网络,不使用docker网桥,同时设置了true将无法在同一台宿主机上启动第二个副本

kubectl explain --可以看到资源的详细信息