• k8s从入门到精通-Pod定义详解


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

    apiVersion: v1                  # 版本号,例如v1
    kind: Pod                       # 资源类型: Pod
    metadata:                       # 元数据
      name: string                  # Pod的名称,命令规范符合RFC 1035规范
      namespace: string             # Pod所属的命名空间,默认值为default
      labels:                       # 自定义标签列表
        - name: string
      annotations:                  # 自定义注释列表
        - name: string
    spec:                           # Pod容器的详细定义
      containers:                   # pod中容器的列表
      - name: string
        image: string
        imagePullPolicy: [Always|Never|IfNotPresent]  # 镜像拉取策略, 可选值为:Always、Never、IfNotPresent,默认为Always。Always,表示每次都尝试拉取镜像;IfNotPresent,表示如果本地有镜像,则使用本地镜像,本地不存在时拉取镜像;Never,表示仅使用本地镜像
        command: [string]            # 容器启动命令,如果不指定,则使用镜像打包时使用的命令
        args: [string]               # 容器启动命令的参数列表
        workingDir: string           # 容器的工作目录
        volumeMounts:                # 挂载到容器内部的存储卷配置
        - name: string               # 引用的pod定义的存储卷的名称,需要使用volume[]部分定义的共享存储卷名称
          mountPath: string          # 存储卷在容器内挂载的绝对路径,应少于512个字节
          readOnly: boolean          # 是否为只读模式, 默认为读写模式
        ports:
        - name: string
          containerPort: int         # 容器需要暴露的端口列表
          hostPort: int              # 容器所在的主机需要监听的端口号,默认与containerPort相同。设置hostPort是,同一台主机无法启动改容器的第二个副本
          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请求,单位为core数,容器启动的初始可用数量
            memory: string           # 内存请求,单位可以为MiB、GiB等,容器启动初始可用数量
        livenessProbe:               # 对pod内各容器健康检查的设置,当探测无响应几次之后,系统将自动重启该容器。可以设置的方法包括:exec、httpGet和tcpSocket,对一个容器仅需设置一种健康检查的方法
          exec:                      
            command: [string]        # exec方式需要指定命令或者脚本
          httpGet:                   # 对pod内各容器健康检查的设置,HTTPGet方式,需要指定path、port
            path: string
            port: number
            host: string
            scheme: string
            httpHearders:
            - name: string
              value: string
          tcpSocket:                 # 对pod内各容器健康检查的设置,tcpScoket方式
            port: number
          initialDelaySeconds: 0     # 容器启动后首次的探测时间,单位为s  
          timeoutSeconds: 0          # 对容器进行健康检查的探测等待响应的超时时间设置,单位为s,默认为1s;若超过该超时时间设置,则认为容器不健康,会重启该容器
          periodSeconds: 0           # 对容器进行健康检查定期探测时间设置,单位为s,默认为10s探测一次
          successThreshold: 0        # 探测器在失败后,被视为成功的最小连续成功数。默认值是 1。 存活和启动探测的这个值必须是 1。最小值是 1
          failureThreshold: 0        # 当探测失败时,Kubernetes 的重试次数。 存活探测情况下的放弃就意味着重新启动容器。 就绪探测情况下的放弃 Pod 会被打上未就绪的标签。默认值是 3。最小值是 1。
        securityContext:
          privileged: false
      restartPolicy: [Always|Never|OnFailure]  # 重启策略,可选Always、onFailture、Never。always: 一旦pod终止运行,无论容器是如何终止的,kubelet都将重启它;onFailture,只有pod以非零退出码终止时,kubelet才会重启该容器,如果容器正常结束(退出码为0),则kubelet将不会重启该pod;Never,pod终止后,kubelet将退出码报告给Master,不会重启该pod
      nodeSelector: object                     # 设置Node的Label,以key:value格式指定,pod将被调度到这些Label的Node上
      imagePullSecrets:                        # pull镜像时使用Secret名称,以name.secretkey格式指定
      - name: string
      hostNetwork: false             # 是否使用主机网络模式,默认为false,设置true表示容器使用宿主机网络,不再使用Docker网络,该Pod无法在同一台宿主机上启动第二个副本           
      volumes:                       # 在该pod上定义的共享存储卷列表
      - name: string                 # 共享存储卷的名称,在一个pod中每个存储卷定义一个名称,应符合RFC 1035规范,容器定义部分的containers[].volumeMount[].name将引用该存储的名称。volume的类型包括:(见详解)
        emptyDir: {}                 # 类型为emptyDir的存储卷,表示与pod同声明周期的一个临时目录,其值为一个空对象,emptyDir: {}
        hostPath:                    # 类型为hostPath的存储卷,表示pod挂载到宿主机的目录,通过volumes[].hostPath.path指定
          path: string               # pod容器挂载的宿主机的目录
        secret:                      # 类型为secret的存储卷,表示挂载集群预定义的secret对象容器内部
          secretName: string
          items:
          - key: string
            path: string
        configMap:                   # 类型为configMap的存储卷,表示挂载预定义的configMap对象到容器内部                         # 
          name: string
          items:
          - key: string
            path: string
    
    拥抱不确定,未来可期!喜欢该文章请不吝点赞推荐,如有疑问欢迎留言,我们一起探讨。
  • 相关阅读:
    git切换分支报错解决
    网上看到的一个布局神器
    js获取滚动条,文档,浏览器高度
    使用iView-cli创建一个pc端网页(1)
    ajax详解与用途
    JavaScript中for/in和for的区别
    排序
    Java中getResourceAsStream的用法
    java程序打包成exe的总结
    使用7zip把jre集成到绿色运行程序内
  • 原文地址:https://www.cnblogs.com/yang-ning/p/15109463.html
Copyright © 2020-2023  润新知