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 --可以看到资源的详细信息