kubernetes定义yaml文件格式。
Pod定义文件模板(yaml格式)如下:
apiVersion: v1# required
kind: Pod# required
metadata:# required
name: string # required
namespace:string # required
labels:
- name: string
annotations:
- name: string
spec: #required
containers: # required
- name:string # required
image:string # required
imagePullPolicy: [Always | Never | IfNotPresent]
command:[string]
workingDir:string
volumeMounts:
- name:string
mountPath: string
readOnly:boolean
ports:
- name:string
containerPort: int
hostPort:int
protocol:string
env:
- name:string
value:string
resources:
limits:
cpu:string
memory:string
volumes:
- name: string
# EitheremptyDir for an empty directory
emptyDir: {}
# OrhostPath for a pre-existing directory on the host
hostPath:
path: string
restartPolicy:[Always | Never | OnFailure]
dnsPlicy:[Default | ClusterFirst] #required
nodeSelector:object
imagePullSercret:object
对Pod各属性详细说明表如下:
属 性 名 称取 值 类 型是 否 必 选取 值 说明
versionStringRequiredv1
kindStringRequiredPod
metadataObjectRequired元数据
RC定义文件详解
RC(ReplicationController)定义文件模板(yaml格式)如下:
apiVersion: v1# required
kind: ReplicationController # required
metadata:# required
name: string # required
namespace:string # required
labels:
- name: string
annotations:
- name: string
spec: #required
replicas:number # required
selector: [] # required
template:object # required
Service定义文件详解
Service定义文件模板(yaml格式)如下:
apiVersion: v1# required
kind: Service# required
metadata:# required
name: string # required
namespace:string # required
labels:
- name: string
annotations:
- name: string
spec: #required
selector: [] # required
type: string #required
clusterIP: string
sessionAffinity:string
ports:
- name: string
port: int
targetPort:int
protocol:string
status:
loadBalancer:
ingress:
ip: string
hostname:string
对Service各属性详细说明表如下:
属 性 名 称取 值 类 型是 否 必 选取 值 说明
versionStringRequiredv1
kindStringRequiredPod
metadataObjectRequired元数据
metadata.nameStringRequiredService名称,符合RFC1035规范
metadata.namespaceStringRequired命名空间,不指定时系统使用名为?default?的命名空间
metadata.labels[]list自定义标签属性列表
metadata.annotation[]list自定义注解属性列表
specobjectRequired详细描述
spec.selector[]listRequiredLabel Selector配置,将选择具有指定label标签的Pod作为管理范围
spec.typestringRequiredService类型,指定Service访问方式,默认为ClusterIP。
ClusterIP: 虚拟的服务IP地址,该地址用户kubernetes集群内部Pod访问,在Node上kube-proxy通过设置的iptables规则进行转发;
NodePort: 使用宿主机的端口,使能够访问各Node的外部客户端通过Node的IP地址和端口号就能访问服务;
LoadBalancer: 使用外接负载均衡器完成到服务的负载分发,需要在spec.status.loadBalancer字段指定外部负载均衡器的IP地址,并同时定义nodePort和clusterIP.
spec.clusterIPString虚拟服务IP地址,当type=ClusterIP时,如果不指定,则系统自动分配;当type=LoadBalancer时,则需要指定。
spec.sessionAffinityString是否支持Session,可选值为ClientIP,默认为空。
ClientIP: 表示同一个客户端(根据客户端的IP地址决定)的访问请求都转发到同一个后端Pod。
spec.ports[]listService需要暴露的端口号列表
spec.ports[].nameString端口名称
spec.ports[].portint服务监听的端口号
spec.ports[].targetPortint需要转发到后端Pod的端口号
spec.ports[].protocolint端口协议,支持TCP和UDP,默认TCP
statusobject当spec.type=LoadBalancer时,设置外部负载均衡器的地址
status.loadBalancerobject外部负载均衡器
status.loadBalancer.ingressobject外部负载均衡器
status.loadBalancer.ingress.ipstring外部负载均衡器的IP地址
status.loadBalancer.ingress.hostnamestring外部负载均衡器的主机名
附录
根据yaml创建:
$ kubectl create -f [--validate[=true]]
根据yaml删除:
$ kubectl delete -f
Pod定义文件模板(yaml格式)如下:
apiVersion: v1# required
kind: Pod# required
metadata:# required
name: string # required
namespace:string # required
labels:
- name: string
annotations:
- name: string
spec: #required
containers: # required
- name:string # required
image:string # required
imagePullPolicy: [Always | Never | IfNotPresent]
command:[string]
workingDir:string
volumeMounts:
- name:string
mountPath: string
readOnly:boolean
ports:
- name:string
containerPort: int
hostPort:int
protocol:string
env:
- name:string
value:string
resources:
limits:
cpu:string
memory:string
volumes:
- name: string
# EitheremptyDir for an empty directory
emptyDir: {}
# OrhostPath for a pre-existing directory on the host
hostPath:
path: string
restartPolicy:[Always | Never | OnFailure]
dnsPlicy:[Default | ClusterFirst] #required
nodeSelector:object
imagePullSercret:object
对Pod各属性详细说明表如下:
属 性 名 称取 值 类 型是 否 必 选取 值 说明
versionStringRequiredv1
kindStringRequiredPod
metadataObjectRequired元数据
RC定义文件详解
RC(ReplicationController)定义文件模板(yaml格式)如下:
apiVersion: v1# required
kind: ReplicationController # required
metadata:# required
name: string # required
namespace:string # required
labels:
- name: string
annotations:
- name: string
spec: #required
replicas:number # required
selector: [] # required
template:object # required
Service定义文件详解
Service定义文件模板(yaml格式)如下:
apiVersion: v1# required
kind: Service# required
metadata:# required
name: string # required
namespace:string # required
labels:
- name: string
annotations:
- name: string
spec: #required
selector: [] # required
type: string #required
clusterIP: string
sessionAffinity:string
ports:
- name: string
port: int
targetPort:int
protocol:string
status:
loadBalancer:
ingress:
ip: string
hostname:string
对Service各属性详细说明表如下:
属 性 名 称取 值 类 型是 否 必 选取 值 说明
versionStringRequiredv1
kindStringRequiredPod
metadataObjectRequired元数据
metadata.nameStringRequiredService名称,符合RFC1035规范
metadata.namespaceStringRequired命名空间,不指定时系统使用名为?default?的命名空间
metadata.labels[]list自定义标签属性列表
metadata.annotation[]list自定义注解属性列表
specobjectRequired详细描述
spec.selector[]listRequiredLabel Selector配置,将选择具有指定label标签的Pod作为管理范围
spec.typestringRequiredService类型,指定Service访问方式,默认为ClusterIP。
ClusterIP: 虚拟的服务IP地址,该地址用户kubernetes集群内部Pod访问,在Node上kube-proxy通过设置的iptables规则进行转发;
NodePort: 使用宿主机的端口,使能够访问各Node的外部客户端通过Node的IP地址和端口号就能访问服务;
LoadBalancer: 使用外接负载均衡器完成到服务的负载分发,需要在spec.status.loadBalancer字段指定外部负载均衡器的IP地址,并同时定义nodePort和clusterIP.
spec.clusterIPString虚拟服务IP地址,当type=ClusterIP时,如果不指定,则系统自动分配;当type=LoadBalancer时,则需要指定。
spec.sessionAffinityString是否支持Session,可选值为ClientIP,默认为空。
ClientIP: 表示同一个客户端(根据客户端的IP地址决定)的访问请求都转发到同一个后端Pod。
spec.ports[]listService需要暴露的端口号列表
spec.ports[].nameString端口名称
spec.ports[].portint服务监听的端口号
spec.ports[].targetPortint需要转发到后端Pod的端口号
spec.ports[].protocolint端口协议,支持TCP和UDP,默认TCP
statusobject当spec.type=LoadBalancer时,设置外部负载均衡器的地址
status.loadBalancerobject外部负载均衡器
status.loadBalancer.ingressobject外部负载均衡器
status.loadBalancer.ingress.ipstring外部负载均衡器的IP地址
status.loadBalancer.ingress.hostnamestring外部负载均衡器的主机名
附录
根据yaml创建:
$ kubectl create -f [--validate[=true]]
根据yaml删除:
$ kubectl delete -f