k8s yaml文件含义

文章目录

1、YAML的文件格式和注意事项

  • 不支持制表符tab键缩进,需要使用空格缩进,使用缩进表示层级关系
  • 通常开头缩进2个空格,缩进的空格数不重要,只要相同层级的元素左对齐即可
  • 字符后缩进一个空格,如冒号、逗号、横杆
  • # 号注释
  • 如果包含特殊字符用单引号引起来
  • 布尔值必须用引号括起来
  • - 符号表示yaml文件格式的分割

2、YAML各个字段含义

txt 复制代码
# yaml格式的pod定义文件完整内容:
apiVersion: v1           # 必选,版本号,例如v1
kind: Pod                # 必选,Pod
metadata:                # 必选,元数据
  name: string           # 必选,Pod名称
  namespace: string      # 必选,Pod所属的命名空间
  labels:                # 自定义标签
    - name: string       # 自定义标签名字
  annotations:           # 自定义注释列表
    - name: string
spec:                    # 必选,Pod中容器的详细定义
  containers:            # 必选,Pod中容器列表
  - name: string         # 必选,容器名称
    image: string        # 必选,容器的镜像名称
    imagePullPolicy: [Always | Never | IfNotPresent] # 获取镜像的策略 Alawys表示下载镜像 IfnotPresent表示优先使用本地镜像,否则下载镜像,Nerver表示仅使用本地镜像
    command: [string]                  # 容器的启动命令列表,如不指定,使用打包时使用的启动命令
    args: [string]                     # 容器的启动命令参数列表
    workingDir: string                 # 容器的工作目录
    volumeMounts:                      # 挂载到容器内部的存储卷配置
    - name: string                     # 引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名
      mountPath: string               # 存储卷在容器内mount的绝对路径,应少于512字符
      readOnly: boolean               # 是否为只读模式
    ports:                           # 需要暴露的端口库号列表
    - name: string                   # 端口号名称
      containerPort: int             # 容器需要监听的端口号
      hostPort: int                  # 容器所在主机需要监听的端口号,默认与Container相同
      protocol: string               # 端口协议,支持TCP和UDP,默认TCP
    env:                             # 容器运行前需设置的环境变量列表
    - name: string                   # 环境变量名称
      value: string                  # 环境变量的值
    resources:                       # 资源限制和请求的设置
      limits:                        # 资源限制的设置
        cpu: string                  # Cpu的限制,单位为core数,将用于docker run --cpu-shares参数
        memory: string               # 内存限制,单位可以为Mib/Gib,将用于docker run --memory参数
      requests:                       # 资源请求的设置
        cpu: string                   # Cpu请求,容器启动的初始可用数量
        memory: string                # 内存请求,容器启动的初始可用数量
    livenessProbe:                    # 对Pod内个容器健康检查的设置,当探测无响应几次后将自动重启该容器,检查方法有exec、httpGet和tcpSocket,对一个容器只需设置其中一种方法即可
      exec:                           # 对Pod容器内检查方式设置为exec方式
        command: [string]             # exec方式需要制定的命令或脚本
      httpGet:                        # 对Pod内个容器健康检查方法设置为HttpGet,需要制定Path、port
        path: string
        port: number
        host: string
        scheme: string
        HttpHeaders:
        - name: string
          value: string
      tcpSocket:                       # 对Pod内个容器健康检查方式设置为tcpSocket方式
         port: number
       initialDelaySeconds: 0       # 容器启动完成后首次探测的时间,单位为秒
       timeoutSeconds: 0            # 对容器健康检查探测等待响应的超时时间,单位秒,默认1秒
       periodSeconds: 0             # 对容器监控检查的定期探测时间设置,单位秒,默认10秒一次
       successThreshold: 0
       failureThreshold: 0
       securityContext:
         privileged:false
    restartPolicy: [Always | Never | OnFailure] # Pod的重启策略,Always表示一旦不管以何种方式终止运行,kubelet都将重启,OnFailure表示只有Pod以非0退出码退出才重启,Nerver表示不再重启该Pod
    nodeSelector: obeject          # 设置NodeSelector表示将该Pod调度到包含这个label的node上,以key:value的格式指定
    imagePullSecrets:              # Pull镜像时使用的secret名称,以key:secretkey格式指定
    - name: string
    hostNetwork:false     # 是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机网络
    volumes:                    # 在该pod上定义共享存储卷列表
    - name: string              # 共享存储卷名称 (volumes类型有很多种)
      emptyDir: {}              # 类型为emtyDir的存储卷,与Pod同生命周期的一个临时目录。为空值
      hostPath: string         # 类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录
        path: string           # Pod所在宿主机的目录,将被用于同期中mount的目录
      secret:                  # 类型为secret的存储卷,挂载集群与定义的secre对象到容器内部
        scretname: string  
        items:     
        - key: string
          path: string
      configMap:             # 类型为configMap的存储卷,挂载预定义的configMap对象到容器内部
        name: string
        items:
        - key: string
          path: string
相关推荐
玄明Hanko19 分钟前
Quarkus+Docker最全面完整教程:手把手搞定Java云原生
后端·docker·云原生
SimonLiu0091 小时前
清理HiNas(海纳斯) Docker日志并限制日志大小
java·docker·容器
高峰君主3 小时前
Docker容器持久化
docker·容器·eureka
能来帮帮蒟蒻吗4 小时前
Docker安装(Ubuntu22版)
笔记·学习·spring cloud·docker·容器
言之。8 小时前
别学了,打会王者吧
java·python·mysql·容器·spark·php·html5
秦始皇爱找茬11 小时前
docker部署Jenkins工具
docker·容器·jenkins
hoho不爱喝酒13 小时前
微服务Nacos组件的介绍、安装、使用
微服务·云原生·架构
樽酒ﻬق14 小时前
Kubernetes 常用运维命令整理
运维·容器·kubernetes
Golinie16 小时前
Docker底层原理浅析 | namespace+cgroups+文件系统
docker·容器·文件系统·cgroups·unionfs
樽酒ﻬق16 小时前
深度解析 Kubernetes 配置管理:如何安全使用 ConfigMap 和 Secret
安全·贪心算法·kubernetes