K8S——Pod详解

一、Pod介绍

1、Pod结构

在这里插入图片描述
在这里插入图片描述

2、Pod定义

# 通过一个命令来查看各种资源的可配置项
# 语法格式:kubectl explain <资源类型.属性>
kubectl explain pod
kubectl explain pod.metadata

下面是Pod的资源清单

apiVersion: v1										# 必选,版本号,例如v1
kind: Pod											# 必选,资源类型,例如Pod,Deployment等
metadata:											# 必选,元数据
  name: string										# 必选,Pod名称
  namespace: string									# Pod所属的命名空间,默认为default
  labels:											# 自定义标签列表
    - name: string
spec:												# 必选,Pod中容器的详细定义
  containers: 										# 必选,Pod中容器列表
 	- name: string									# 必选,容器名称
      image: string									# 必选,容器的镜像名称
      imagePullPolicy: [Always|Never|IfNotPresent]	# 获取容器的策略
      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							# 内存请求,容器启动的初始可用数量
      lifecycle:									# 生命周期钩子
        postStart:									# 容器启动后立即执行此钩子,如果执行失败,会根据重启策略进行重启
        preStop:									# 容器终止前会执行此钩子,无论结果如何,容器都会终止
      livenessProbe:								# 对Pod内各容器健康检查的设置,当探测无响应几次后将自动重启该容器
        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方式
          initialDelaySeconds: 0					# 容器启动完成后首次探测的时间,单位为秒
          timeoutSeconds: 0							# 对容器监控检查的定期探测时间设置,单位秒,默认10秒一次
          periodSeconds: 0							# 对容器监控检查的定期探测时间设置,单位秒,默认10秒一次
          successThreshold: 0
          failureThreshold: 0
          securityContext:
            privileged: false
          port: number
      
  restartPolicy: [Always|Never|OnFailure]			# Pod的重启策略
  nodeName: <string>								# 设置NodeName表示将该Pod调度到指定名称的node节点上
  nodeSelector: object								# 设置NodeSelector表示将该Pod调度到包含这个label的node上
  imagePullSecrets:									# pull镜像时使用的secret名称,以key: secretkey格式指定
  - name: string
  hostNetwork: false								# 是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机网络
  volumes:											# 在该pod上定义共享存储卷列表
  - name: string									# 共享存储卷名称
    emptyDir: {}									# 类型为emptyDir的存储卷,与Pod同生命周期的一个临时目录,为空值
    hostPath: string								# 类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录
      path: string									# Pod所在宿主机的目录,将被用于同期中mount的目录
    secret: 										# 类型为secret的存储卷,挂载集群与定义的secret对象到容器内部
      scretname: string
      items:
      - key: string
        path: string
    configMap:										# 类型为configMap的存储卷,挂载预定义的configMap对象到容器内部
      name: string
      items:
      - key: string
        path: string
        

在这里插入图片描述

3、Pod配置——pod.spec.containers配置

在这里插入图片描述

3.1、pod的镜像拉取策略imagePullPolicy的使用

在这里插入图片描述

3.2、启动命令command的使用

在这里插入图片描述
在这里插入图片描述

# k8s如何进入pod中的容器
# 命令格式:kubectl exec pod名称 -n 命名空间 -it -c 容器名称 /bin/sh
kubectl exec pod-command -n dev -it -c busybox /bin/sh

3.3、env配置

在这里插入图片描述

3.4、ports配置

在这里插入图片描述
在这里插入图片描述

3.5、resources资源配额

在这里插入图片描述
在这里插入图片描述

4、Pod的生命周期

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1 创建和终止

  • 创建Pod的过程
    在这里插入图片描述
  • 终止pod的过程
    在这里插入图片描述

4.2、初始化容器

在这里插入图片描述
在这里插入图片描述

4.3 钩子函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.4、容器探测

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.4.1、容器探测livenessProbe的其他参数解释

在这里插入图片描述

4.5、重启策略

在这里插入图片描述
在这里插入图片描述

5、Pod调度

在这里插入图片描述

5.1、定向调度

  • NodeName的方式
    在这里插入图片描述
    在这里插入图片描述
  • NodeSelector的方式
    在这里插入图片描述
    在这里插入图片描述

5.2、亲和性调度

在这里插入图片描述

  • NodeAffinity
    在这里插入图片描述
    在这里插入图片描述
    • 硬限制
      在这里插入图片描述
    • 软限制
      在这里插入图片描述

在这里插入图片描述

  • PodAffinity
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • PodAntiAffinity
    在这里插入图片描述

5.3、污点和容忍

  • 污点
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 容忍
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值