k8s 造了那么些pod,谁来管呢?-pod控制器
自主pod-死了不会重建pod控制器-死了会重新建pod控制器建立的pod,pod控制器管理RS replicaSet 保证指定数量的pod运行,数量动态变更,镜像版本变更Deployment: 通过控制rs控制pod 支持滚动升级(rollout),版本回退HPA: 自动调整数量,瞬间负载变大,自动创建多创建几个,负载变小,杀死几个,减小pod的数量'dameonset: 每个节点的类似日志收集
自主pod-死了不会重建
pod控制器-死了会重新建
pod控制器建立的pod,pod控制器管理
RS replicaSet 保证指定数量的pod运行,数量动态变更,镜像版本变更
Deployment: 通过控制rs控制pod 支持滚动升级(rollout),版本回退
HPA: 自动调整数量,瞬间负载变大,自动创建多创建几个,负载变小,杀死几个,减小pod的数量'
dameonset: 每个节点的类似日志收集的功能,每个pod上面都会运行一个
job:只要完成任务立即退出,一次性任务
cronJOb:周期性 定时的job
statefulset:管理有状态的应用
RS pod控制器
数量pod 扩缩容 版本镜像升降级
get rs
rs 创建的pod ,在rs 后面加了一个5位数的随机串
pod 数量加减
镜像版本的升降机
直接yaml 修改镜像
级联删除,删除控制器的时候同时删除pod
deployment 控制器
在rs的基础上进行的升级
revisionHistoryLimit: 保留历史版本,保留升级记录
版本回退
up-to-date 最新可以用的
available 当前可用的
扩缩容
升级策略
recreate重建更新 一次性删除所有老版本,然后重建
rollingUpdate 滚动更新 不要一次性删除所有老的,删除一部分,启动一部分,删除一部分,启动一部分,老版本的数量越来越少,新版本的数量越来越多
recreate的过程 running terminating pending containerCreating running
有两个rs,一个rs创建pod,一个rs销毁pod
get rs 确实有两个
一个负责删除pod,一个负责新建pod
但是老的rs 并不会被删除,版本回退时候用
版本回退
(版本升降级)rollout, roll出一个新的,或者roll出一个旧的
resume: 继续已经暂停的版本升级过程
undo: 回滚到上一级版本
rollout status
rollout history
版本回退,不指定torevision,默认回退到上一个版本
rollout history 查看历史记录,版本一不见了,变成了当前版本4
金丝雀发布
灰度发布
暂停 继续,刚出来,立即暂停,
暂停,然后继续 ,rollout 成功
HPA
监测pod 使用情况,实现pod数量自动调整
监视pod 的负载,metric server
此处省略了一些步骤,结果如下
-n kube-system
查看资源使用情况 top node,top pod
deployment 和service
expose , nodePort 集群外部也可以访问
部署HPA
cpu使用率,最大最小pod 使用量,
调整的是 name为Nginx,kind是Deployment 它管理的pod
hpa 是基于deployment做的
postman 压测软件
cpu到19%了
pod的数目变成了4个
接下来停止压测
cpu使用率逐渐下降,pod 将进行缩容操作
经过了6 7分钟之
后,pod数量降低了
DaemonSet(DS)
每一个节点node上,都运行一个pod 副本,来 兄弟 看图
日志收集,节点监控
每添加一个node,都会运行一个pod
job控制器
批量一次性短暂任务
保证指定数量的pod 执行完成,控制指定数量的一次性任务成功完成
重试次数6,执行时间限制,是否支持并行
重启策略
挂起 创建 运行 完成
cronjob(cj)
每一分钟都会执行
更多推荐
所有评论(0)