K8S-pod配置文件详解

Pod是Kubernetes的基本执行单元,每个Pod包含至少一个Pause容器和一个或多个用户容器。Pod内的容器共享网络和存储资源,配置文件涉及容器镜像、端口映射、资源限制、健康检查等多个方面,是定义应用部署和服务的重要部分。

Pod

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个副本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值