赞
踩
Pod是Kubernetes的最重要也是最基本的概念,每个Pod 都有个特殊被称为“根容器”的 Pause 容器 ,除了 Pause 容器,每个 Pod 还包含 一个或多个紧密相关的用户业务容器。下面为一个pod配置文件示例:
- apiVersion : vl
- kind: Pod
- metadata :
- name : string
- namespace: string
- labels:
- - name: string
- annotations:
- - name: string
- spec:
- containers :
- - name : stri且q
- image : string
- imagePullPolicy:[Always I Never I IfNotPresent]
- command : [string]
- args: [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
- requests :
- cpu: string
- memory : str ng
- livenessProbe:
- exec:
- command: [string]
- httpGet:
- path: string
- port umber
- host: string
- scheme: string
- httpHeaders:
- - name: string
- value: string
- tcpSocket:
- port : number
- initialDelaySeconds : 0
- timeoutSeconds: 0
- periodSeconds: 0
- successThreshold: 0
- failureThreshold : 0
- securityContext :
- privileged: false
- restartPolicy: [Always I Never I OnFailure]
- nodeSelector: object
- imagePullSecrets :
- - name: string
- hostNetwork : false
- volumes:
- - name : string
- emptyDir : {}
- hostPath :
- path : string
- secret :
- secretName : string
- items:
- - key : string
- path: string
- configMap:
- name: string
- items :
- - key : string
- path: string
解析格式:编码:取值类型:是否必选:取值说明
version:String:必选:版本号,例如v1
kind:String:必选:pod
metadata:String:必选:元数据
metadata.namespace:String:必选:pod的名称,命名规范需要符合RFC 1035规范
metadata.lables[]:List:非必选:自定义标签列表
metadata.annotation[]:List:非必选:自定义注解列表
Spec:Object:必选:pod中容器的详细定义
spec.containers[]:List:必选:Pod中的容器列表
spec.containers[].name:String:必选:容器的名称,需符合RFC 1035规范
spec.containers[].image:String:必选:容器的镜像名称
spec.containers[].imagePullPolicy:String:非必选:获取镜像的策略,可选值包括: Always,Never,IfNotPresent ,默认值为 Always
Always 表示每次都尝试重新下载镜像;
IfNotPresent 表示如果本地有该镜像,则使用本地安卓的镜像,本地不存在时下载镜像;
Never 表示仅使用本地镜像;
spec.containers[].command[]:List:非必选:容器的启动命令,如果不指定,则使用镜像打包时使用的启动命令
spec.containers[].args[]:List:非必选:容器的启动命令参数列表
spec.containers[].workingDir:String:非必选:容器的工作目录
spec.containers[].volumeMounts[]:List:非必选:挂载到容梅内部的存储卷配置
spec.containers[].volumeMounts[].name:String:非必选:引用 Pod 定义的共享存储卷的名称,需使用volumes[]部分定义的共享存储卷名称
spec.containers[].volumeMounts[].mountPath:String:非必选:存储卷在容器内 Mount 绝对路径,应少于 12个字符
spec.containers[].volumeMounts[].readOnly:Boolean:非必选:是否为只读模式,默认值为读写模式
spec.containers[].ports[]:List:非必选:容器需要暴露的端口号列表
spec.containers[].ports[].name:String:非必选:端口名称
spec.containers[].ports[].containerPort:String:非必选:容器挥自要监听的端口号
spec containers[].ports[] .hostPort:String:非必选:容器所在主机需要监听的端口号,默认与containerPort 相同。设置 hostPort 时,同台宿主机将无法启动该容器的第2份副本
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 限制,单位为 core 数,将用 docker run --cpu- shares 参数
spec.containers[].resources.limits.memory:String:非必选:内存限制,单位可以为 MiB/GiB 等,将用于 docker run --memory 参数
spec.containers[].resources.requests:Object:非必选:资源限制的设置
spec.containers[].resources.requests.cpu:String:非必选:CPU 请求,单位为 core 数, 容器启动的初始可用数量
spec.containers[]
.resources.requests.memory:String:非必选:内存请求,单位可以为 MiB/GiB 等,容器启动的初始可用数量
spec.volumes[]:List:非必选:在该 Pod 上定义的共享存储卷列表
spec.volumes[].name:String:非必选:共享存储卷的名称,在 Pod 中每个存储卷定义一个名称,应符合RFC 1035 规范。容器定义部分的 containers[].volumeMounts[].name 将引用该共享存储卷的名称。Volume 类型包括 emptyDir、 hostPathgce、PersistentDisk、awsElasticBlockStore、gitRepo、secret 、nfs 、iscsi 、glusterfs 、persistentVolumeClaim、rbd、flexVolume、cinder、cephfs、flecker 、downwardAPI、fc、azureFile、configMap、vsphereVolume,可以 定义多个 volume ,每个volume name 保持唯一 。
spec.volumes[].emptyDir:Object:非必选:类型为 emptyDir 的存储卷, 表示与 Pod 生命周期一个临时目录,其值为 个空对象: emptyDir: {}
spec. volumes[] .hostPath:Object:非必选:类型为 hostPath 的存储卷,表示挂载 Pod 所在宿主机的目录,通过 volumes[]. hostPath.path 指定
spec.volumes[].hostPath.path:String:非必选:Pod 在主机的目录,将被用于容器中 mount的目录
spec.volumes[].secret:Object:非必选:类型为 secret 的存储,表示挂载集群预定义的secret 对象到容器内部
spec.volumes[].configMap:Object:非必选:类型为 configMap 的存储卷, 表示挂载集群预定义的 configMap 对象到容器内部
spec.volumes[].livenessProbe:Object:非必选:对Pod 内各容器健康检查的设置,当探测无响应几次之后,系统将自动启动该容器。可以设置的方法包括: exec httpGet tcpSocket。对一个容器仅需设置一种健康检查方法
spec.volumes[].livenessProbe.exec:Object:非必选:对Pod 内各容器健康检查的设置, exec 方式
spec .volumes[]
.livenessProbe.exec.command[]:String:非必选:exec 方式需要指定的命令或者脚本
spec.volumes[].livenessProbe.httpGet:Object:非必选:对Pod 内各容器健康检查的设置, HTTPGet 方式.需指定 path、 port
spec.volumes[].livenessProbe.tcpSocket:Object:非必选:对Pod 各容器健康检查的设置, tcpSocket 方式
spec.volumes[]
.livenssProbe.initialDelaySeconds:Numeber:非必选:容器启动完成后进行首次探测的时间,单位为s
spec.volumes[]
.livenessProbe.timeoutSeconds:Numeber:非必选:对容器健康检查的探测等待响应的超时时间设置,单位为 s,默认值为1 s. 超过该超时时间设置,将认为该容器不健康,将重启该容器
spec.volumes[]
.livenessProbe.periodSeconds:Numeber:非必选:对容器健康检查的定期探测时间设置,单位为 s,默认为10s探测一次
spec.restartPolicy:String:非必选:Pod 的重启策略,可选值为 Always,OnFailure,默认值为Always.
Always: Pod 一旦终止运行,则无论容器是如何终止的, kubelet 都将将启它.
OnFailure :只有 Pod 以非零退出码终止时, kubelet才会重启该容器.如果容器正常结束(退出码为0),则 kubelet 将不会重启它。
Never: Pod 终止后, kubelet将退出码报告给Master,不会再重启该Pod
spec.nodeSelector:Object:非必选:设置 NodeSelector 表示将该 Pod 调度到包含这些
label的Node 上,以 key:value 格式指定
spec.imagePullSecrets:Object:非必选:Pull 镜像时使用的 secret 名称,以 name :sec retkkey格式指定
spec.hostNetwork:Boolean:非必选:是否使用主机网络模式,默认值为false ,如果设
置为true ,则表示容器使用宿主机网络,不再使用Docker 网桥,该 Pod 将无法在同一台宿主机上启动第2个副本
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。