Pod定义模版
属性名称 |
取值类型 |
是否必选 |
取值说明 |
version |
String |
Required |
v1 |
kind |
String |
Required |
Pod |
metadata |
Object |
Required |
元数据 |
metadata.name |
String |
Required |
Pod名称,需符合RFC 1035规范。 |
metadata.namespace |
String |
Required |
命名空间,不指定系统将使用名为“default”的命名空间 |
metadata.labels[] |
List |
|
自定义标签属性列表 |
metadata.annotation[] |
List |
|
自定义注解属性列表 |
spec |
Object |
Required |
详细描述 |
spec.containers[] |
List |
Required |
Pod中运行容器列表 |
spec.containers[].name |
String |
Required |
容器名称,需符合RFC 1035规范。 |
spec.containers[].image |
String |
Required |
容器的镜像名,Node上如果不存在该镜像,kubelet会先下载。 |
spec.containers[].imagePullPolicy |
String |
|
获取镜像的策略,可选值包括:Always,Never,IfNotPresent,默认值为Always。 Always:表示每次都下载镜像; IfNotPresent:表示如果本地有该镜像,就使用本地的; Never:表示仅使用本地镜像。 |
spec.containers[].command[] |
List |
|
容器的启动命令列表,如果不指定,则使用镜像打包时使用的CMD命令 |
spec.containers[].workingDir |
String |
|
容器的工作目录 |
spec.containers[].volumeMounts[] |
List |
|
可供容器使用的共享存储卷列表 |
spec.containers[].volumeMounts[].name |
String |
|
引用Pod定义的共享存储卷的名称,需使用 volumes[] 部分定义的共享存储卷名称。 |
spec.containers[].volumeMounts[].mountPath |
String |
|
存储卷在容器内Mount的绝对路径,应少于512个字符 |
spec.containers[].volumeMounts[].readOnly |
boolean |
|
是否只读模式,默认为读写模式 |
spec.containers[].ports[] |
List |
|
容器需要暴露的端口号列表 |
spec.containers[].ports[].name |
String |
|
端口名称 |
spec.containers[].ports[].containerPort |
Int |
|
容器需要监听的端口号 |
spec.containers[].ports[].hostPort |
Int |
|
容器所在主机需要监听的端口号,默认与containerPort相同 |
spec.containers[].ports[].protocol |
String |
|
端口协议,支持TCP和UDP,默认为TCP |
spec.containers[].env[] |
List |
|
容器运行前需设置的环境变量列表 |
spec.containers[].env[].name |
String |
|
环境变量名称 |
spec.containers[].env[].value |
String |
|
环境变量的值 |
spec.containers[].resources |
Object |
|
资源限制条件 |
spec.containers[].resources.limits |
Object |
|
资源限制条件 |
spec.containers[].resources.limits.cpu |
String |
|
CPU限制条件,将用于docker run --cpu-shares参数 |
spec.containers[].resources.limits.memory |
String |
|
内存限制条件,将用于docker run --memory参数 |
spec.volumes[] |
List |
|
在该Pod上定义的共享存储卷列表 |
spec.volumes[].name |
string |
|
共享存储卷名称,需唯一,符合RFC 1035规范。容器定义部分 containers[].volumeMounts[].name 将引用该共享存储卷的名称。 |
spec.volumes[].emptyDir |
Object |
|
默认的存储卷类型,表示与Pod同生命周期的一个临时目录,其值为一个空对象:emptyDir: {} 该类型与hostPath类型互斥,应只定义一种。 |
spec.volumes[].hostPath |
Object |
|
使用Pod所在主机的目录,通过volumes[].hostPath.path进行指定。 该类型与emptyDir类型互斥,应只定义一种。 |
spec.volumes[].hostPath.path |
String |
|
Pod所在主机的目录,将被用于容器中mount的目录。 |
spec.dnsPolicy |
String |
Required |
DNS策略,可选值包括:Default,ClusterFirst。 |
spec.restartPolicy |
Object |
|
该Pod内容器的重启策略,可选值为Always,OnFailure,默认值为Always。 Always:容器一旦终止运行,无论容器是如何终止的,kubelet都将重启它 OnFailure:只有容器以非零退出码终止时,kubelet才会重启该容器。如果容器正常结束(退出码为0),kubelet将不会重启它 Never:容器终止后,kubelet将退出码报告给Master,然后不再重启它 |
spec.nodeSelector |
Object |
|
指定需要调度到的Node的Label,以key=value的格式指定 |
spec.imagePullSecrets |
Object |
|
Pull镜像时使用的secret名称,以name=secretkey格式定义 |
RC完整属性
属性名称 |
取值类型 |
是否必选 |
取值说明 |
version |
string |
Required |
v1 |
kind |
string |
Required |
ReplicationController |
metadata |
object |
Required |
元数据 |
metadata.name |
string |
Required |
ReplicationController名称,需符合RFC 1035规范。 |
metadata.namespace |
string |
Required |
命名空间,不指定系统将使用名为“default”的命名空间 |
metadata.labels[] |
list |
|
自定义标签属性列表 |
metadata.annotation[] |
list |
|
自定义注解属性列表 |
spec |
object |
Required |
详细描述 |
spec.replicas |
number |
Required |
Pod副本数量,设置为0表示不创建Pod |
spec.selector[] |
list |
Required |
Label Selector配置,将选择具有指定Label标签的Pod作为管理范围 |
spec.template |
object |
Required |
容器的定义,与Pod的spec内容相同,参见上一节的描述。 |
Service完整属性
属性名称 |
取值类型 |
是否必选 |
取值说明 |
version |
string |
Required |
v1 |
kind |
string |
Required |
Service |
metadata |
object |
Required |
元数据 |
metadata.name |
string |
Required |
Service名称,需符合RFC 1035规范。 |
metadata.namespace |
string |
Required |
命名空间,不指定系统将使用名为“default”的命名空间 |
metadata.labels[] |
list |
|
自定义标签属性列表 |
metadata.annotation[] |
list |
|
自定义注解属性列表 |
spec |
object |
Required |
详细描述 |
spec.selector[] |
list |
Required |
Label Selector配置,将选择具有指定Label标签的Pod作为管理范围 |
spec.type |
string |
Required |
Service的类型,指定Service的访问方式,默认为ClusterIP ClusterIP:虚拟的服务IP地址,该地址用于Kubernetes集群内部Pod访问,在Node上kube-proxy通过设置的iptables规则进行转发 NodePort:使用宿主机的端口,使得能够访问各Node的外部客户端通过Node的IP地址和端口号就能访问服务 LoadBalancer:使用外接负载均衡器完成到服务的负载分发,需要在spec.status.loadBalancer字段指定外部负载均衡器的IP地址,并同时定义nodePort和clusterIP |
spec.clusterIP |
string |
|
虚拟服务IP地址,当type=ClusterIP时,如果不指定,系统将自动分配;当type=LoadBalancer时需要指定 |
spec.sessionAffinity |
string |
|
是否支持Session,可选值为ClientIP,默认为空。 ClientIP:表示将同一个客户端(根据客户端IP地址决定)来的访问请求都转发到同一个后端Pod |
spec.ports[] |
list |
|
Service需要暴露的端口号列表 |
spec.ports[].name |
string |
|
端口名称 |
spec.ports[].port |
int |
|
服务监听的端口号 |
spec.ports[].targetPort |
int |
|
需要转发到后端Pod的端口号 |
spec.ports[].protocol |
string |
|
端口协议,支持TCP和UDP,默认为TCP |
status |
object |
|
当spec.type=LoadBalancer时,设置外部负载均衡器的地址 |
status.loadBalancer |
object |
|
外部负载均衡器 |
status.loadBalancer.ingress |
object |
|
外部负载均衡器 |
status.loadBalancer.ingress.ip |
string |
|
外部负载均衡器的IP地址 |
status.loadBalancer.ingress.hostname |
string |
|
外部负载均衡器的主机名 |