k8s-Pod资源管理与控制器

一、Pod特点:

  • 1、最小部署单元
  • 2、一组容器的集合
  • 3、一个Pod中的容器共享网络命名空间
  • 4、Pod是短暂的

二、Pod分类:

  • 1、infrastructure container:基础容器
    • 概念:维护整个Pod网络空间,在每个节点上都操作,每次创建Pod时候就会自动创建,与Pod对应的,对于用户是透明的。
  • 2、initcontainers:初始化容器
    • 概念:先于业务容器开始执行,不见得一定要有,要有pod顺序要求的话就必须要有
  • 3、container:业务容器
    • 概念:跑生产项目业务的

三、pod的镜像拉取策略(image PullPolicy):

  • 1、IfNotPresent:默认值,镜像在宿主机上不存在时才从官网拉取
  • 2、Always:每次创建Pod都会重新拉取一次镜像
  • 3、Never:Pod永远不会主动拉取这个镜像

四、pod的资源限制:

  • 1、requests:
    memory: “64Mi” >>>>>>>创建时分配的基本内存资源
    cpu: “250m” >>>>>>> 创建时分配的基本CPU资源
  • 2、 limits:
    memory: “128Mi” >>>>>>>内存上限 mi:兆
    cpu: “500m” >>>>>>>cpu上限 m:权重

五、pod的重启策略:

  • 1、基本概念: Pod在遇到故障之后重启的动作。 restartPolicy:
  • 2、类型:
    1、Always:当容器终止退出后,总是重启容器,默认策略
    2、OnFailure:当容器异常退出(退出状态码非0)时,重启容器
    3、Never:当容器终止退出,从不重启容器。
    4、注意:k8s中不支持重启Pod资源,只有删除重建

六、pod的健康检查(probe):

  • 1、结果处理方式:
    1、livenessProbe : 如果检查失败,将杀死容器,根据Pod的restartPolicy来操作。
    2、ReadinessProbe : 如果检查失败,kubernetes会把Pod从service endpoints(群集)中剔除。
  • 2、Probe支持三种检查方法:
    1、httpGet :发送http请求,返回200-400范围状态码为成功。
    2、exec :执行Shell命令返回状态码 是0为成功。非0:失败!
    3、tcpSocket :发起TCP Socket建立成功 “tcp三次握手!

七、pod的调度方式:

  • 1、nodeName: 用于将Pod调度到指定的Node名称上 (跳过调度器直接分配)
  • 2、nodeSelector: 用于将Pod调度到匹配Label的Node上 (经过调度器分配)

八、pod的常见状态:

  • 1、Pending:
    Pod创建已经提交到Kubernetes。但是,因为某种原因而不能顺利创建。例如下载镜像慢,调度不成功。
  • 2、Running:
    Pod已经绑定到一个节点,并且已经创建了所有容器。至少有一个容器正在运行中,或正在启动或重新启动。
  • 3、Succeeded:
    Pod中的所有容器都已成功终止,不会重新启动。
  • 4、Failed:
    Pod的所有容器均已终止,且至少有一个容器已在故障中终止。也就是说,容器要么以非零状态退出,要么被系统终止。
  • 5、Unknown:
    由于某种原因apiserver无法获得Pod的状态,通常是由于Master与 Pod所在主机kubelet通信时出错。

九、pod控制器:

  • 1、概念: 又称之为工作负载,分别包含以下类型控制器
  • 2、分类:
    • 1、Deployment:
      • 1、部署无状态应用
      • 2、管理Pod和ReplicaSet
      • 3、具有上线部署、副本设定、滚动升级、回滚等功能
      • 4、提供声明式更新,例如只更新一个新的Image
      • 5、应用场景:web服务
    • 2、SatefulSet:
      • 1、部署有状态应用
      • 2、解决Pod独立生命周期,保持Pod启动顺序和唯一性
      • 3、稳定,唯一的网络标识符,持久存储(例如:etcd配置文件,节点地址发生变化,将无法使用)
      • 4、有序,优雅的部署和扩展、删除和终止(例如:mysql主从关系,先启动主,再启动从),滚动更新
      • 5、应用场景:数据库
    • 3、DaemonSet :
      • 1、在每一个Node上运行一个Pod
      • 2、新加入的Node也同样会自动运行一个Pod
      • 3、应用场景:Agent
    • 4、Job:
      • 1、Job分为普通任务(Job)和定时任务(CronJob)
      • 2、一次性执行
      • 3、应用场景:离线数据处理,视频解码等业务
    • 5、CronJob :
      • 1、周期性任务,像Linux的Crontab一样。
      • 2、周期性任务
      • 3、应用场景:通知,备份
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值