首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pod 定义详解

Pod 定义详解

作者头像
看、未来
发布2022-09-27 21:39:55
4050
发布2022-09-27 21:39:55
举报

文章目录

Yaml 格式的 Pod 定义文件的完整内容如下

apiVersion: v1
kind: Pod
metadate: 
  name: string
  namespace: string
  labels:
    - name: string
  annotations:
    - name: string
spce:
  containers:
  - name: string
    image: string
    imagePullPolicy: [Always | Never | IfNotPresent]
    command: [string]
    args: [string]
    workingDir: string
    vilumnMounts:
    - name: string
      mountsPath: string
      readOnly: boolean
    ports:
    - name: string
      containerPort: int
      hostPort: int
      protocol: string
    env:
    - name: string
      value: string
    resource:
      limits:
        cpu: string
        memory: string
      requests:
        cpu: string
        memory: string
    livenessProbe:
      exec:
        command: [string]
      httpGet:
        path: string
        port: string
        host: string
        scheme: string
        httpHeaders:
        - name: string
          values: string
      tcpSocket:
        port: number
      initialDelaySeconds: 0
      timeoutSeconds: 0
      successThreshold: 0
      failureThreshold: 0
    securityContext:
      privileged: false
  restartPolicy: [Always | Never | 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

对 Pod 定义文件模板中各属性的详细说明

属性名称

取值类型

是否必选

取值说明

备注

apiVersion

string

Required

版本号

kind

string

Required

资源类型

meatdate

object

Required

元数据

m.name

string

Required

pod 名称

m.namespace

string

Required

pod 所属命名空间

默认为 default

m.labels

list

自定义标签列表

m.annotation

list

自定义注解列表

spec

object

Required

pod 中容器的详细定义

s.containers

list

Required

pod 中的容器列表

s.c.name

string

Required

容器名称

s.c.image

string

Required

容器镜像

s.c.imagePullPolicy

string

容器拉取策略:

Always(默认) | IfNotPresent | Never

s.c.command

list

容器启动命令列表

如果不指定,则使用镜像打包时设定的启动命令

s.c.args

list

容器启动命令参数列表

s.c.workingDir

string

容器的工作目录

s.c.volumeMounts

list

挂载到容器内部的存储卷配置

s.c.v.name

string

引用 pod 定义的共享存储卷名称

s.c.v.mountPath

string

存储卷在容器内挂载的绝对路径

s.c.v.readOnly

boolean

是否为只读模式

默认为读写模式

s.c.ports

list

容器的端口号列表

s.c.p.name

string

端口的名称

s.c.p.containerPort

string

容器需要监听的端口号

s.c.p.hostPost

string

容器所在的主机需要监听的端口号

设置该项,同一台宿主机将无法启动该容器的第二份副本

s.c.p.protocol

string

端口协议,支持 TCP 和 UDP,默认使用 TCP

s.c.env

list

容器运行前虚设置的环境变量列表

s.c.e.name

string

环境变量的名称

s.c.e.value

string

环境变量的值

s.c.resources

object

资源限制和资源请求的设置

s.c.r.limits

object

资源限制的设置

s.c.r.l.cpu

string

CPU 限制,单位为 core 核数

s.c.r.l.memory

string

内存限制,单位可以为 MiB,GiB 等

s.c.r.requests

object

资源请求的设置

s.c.r.r.cpu

string

CPU 请求

s.c.r.r.memory

string

内存请求

s.volumes

list

在该 pod 上定义的共享存储列表

s.v.name

string

共享存储卷的名称

1

s.v.emptyDir

object

类型为 emptyDir 的存储卷

s.v.hostPath

object

类型为 hostPath 的存储卷

s.v.h.path

string

Pod 容器挂载的宿主机目录

s.v.secret

object

类型为 secret 的存储卷

表示挂载集群预定义的 Secret 到容器内部

s.v.configMap

object

类型为 configMap 的存储卷

表示挂载集群预定义的 ConfigMap 到容器内部

s.livenessProbe

object

对 Pod 内各容器健康检查的设置

当探测几次无反应后,将依据重启策略干活

s.l.exec

object

对 Pod 内各容器健康检查的设置,exec 方式

s.l.e.command

string

exec 方式需要制定的命令或脚本

s.l.httpGet

object

对 Pod 内各容器健康检查的设置,httpGet 方式

s.l.tcpSocket

object

对 Pod 内各容器健康检查的设置,tcpSocket 方式

s.l.initDelaySeconds

number

容器启动完成后首次探测的时间

s.l.timeoutSeconds

number

对容器健康检查的探测等待超时时间,默认为1s

s.l.periodSeconds

number

对容器健康的定期探测时间设置,默认 10 s 一次

s.restartPolicy

string

Pod 的重启方式

Always | Never | OnFailure,默认为 Always

s.nodeSelector

object

设置 node 的 label,pod 将被指定到具有这些 Label 的 node 上

s.imagePullSecrets

object

pull 推送镜像时使用的 Secret 名称

s.hostNetwork

boolean

是否使用主机网络模式,默认为false

使用主机网络模式,该 Pod 将无法在宿主机上启动第二个副本


如果记不住

如果上面的详细清单记不住,可以使用如下kubectl explain工具随时查看:

#小提示:
#   在这里,可通过一个命令来查看每种资源的可配置项
#   kubectl explain 资源类型         查看某种资源可以配置的一级属性
#   kubectl explain 资源类型.属性     查看属性的子属性
[root@k8s-master01 ~]# kubectl explain pod
KIND:     Pod
VERSION:  v1
FIELDS:
   apiVersion   <string>
   kind <string>
   metadata     <Object>
   spec <Object>
   status       <Object>
 
[root@k8s-master01 ~]# kubectl explain pod.metadata
KIND:     Pod
VERSION:  v1
RESOURCE: metadata <Object>
FIELDS:
   annotations  <map[string]string>
   clusterName  <string>
   creationTimestamp    <string>
   deletionGracePeriodSeconds   <integer>
   deletionTimestamp    <string>
   finalizers   <[]string>
   generateName <string>
   generation   <integer>
   labels       <map[string]string>
   managedFields        <[]Object>
   name <string>
   namespace    <string>
   ownerReferences      <[]Object>
   resourceVersion      <string>
   selfLink     <string>
   uid  <string>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • Yaml 格式的 Pod 定义文件的完整内容如下
  • 对 Pod 定义文件模板中各属性的详细说明
  • 如果记不住
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档