K8S控制器---RS/Deployment/daemonset

学习目标:

掌握各种控制器的作用和使用

学习内容:

RS和Deployment的关联

在这里插入图片描述

常用命令

  1. 部署deployment
kubectl create/apply -f ****-deployment.yaml  --record
## --record参数可以记录命令,我们可以很方便的查看每次revision的变化
  1. 扩容
kubectl scale deployment ****-deployment  --replicas 副本数目
  1. 如果集群支持HPA,还可以使用Deployment设置自动扩展
kubectl autoscale deployment ****-deployment  --min=最小副本数 --max=最大副本数  --cpu-precent=cpu阈值
  1. 跟新镜像
kubectl set image deployment/****-deployment image=镜像名:版本号
##更新镜像会触发创建新的RS
  1. 回滚
kubectl rollout undo deployment/****-deployment
##默认回滚到前一个旧版本
kubectl rollout undo deployment/****-deployment --to-revision=版本号
## --to-revision参数可以指定某个历史版本
kubectl rollout status deployment/****-deployment
##查看回滚状态
kubectl rollout history deployment/****-deployment
##查看历史版本记录

清理policy

可以通过设置.spec.revisionHistoryLimit项指定deployment最多保留多少revision历史记录,默认的是保留所有的revision;如果将该项设置为0,Deployment就不允许回退了

Deployment更新策略

  • Deployment可以保证在升级时只有一定数量的Pod是down的,默认的它会确保至少有比期望的Pod数量少一个是up状态(即最多一个不可用)
  • Deployment同时也可以确保只创建出超过期望数量的一定数量的Pod,默认的它会确保最多比期望的Pod数量多一个的Pod是up的(最多1个surge)
  • 未来版本中,将从1-1变成25%-25%

Rollover(多个rollout)并行

假如你创建了一个5个nginx:1.7.9的replica的deployment,但是当还只要三个nginx:1.7.9的replica创建出来的时候你就开始更新含有5个nginx:1.9.1的replica的Deployment,在这种情况下,deployment会立即杀掉已创建的3个nginx:1.7.9的Pod,并开始创建nginx:1.9.1的Pod,他不会等到所有的5个nginx:1.7.9的Pod都创建完成后才开始改变航道。

daemonset

在这里插入图片描述

CronJob spec

	spec.template格式通Pod
	RestartPolicy仅支持Never或OnFailure
	单个Pod,默认Pod运行成功后job即结束
	.spec.completions标志Job结束需要成功运行的Pod的个数,默认为1
	.spec.activeDeadlinessSeconds标志失败Pod的重试最大时间,超过这个时间不会继续重试(单位:秒)

cronjob spec参数:

	.spec.schedule:调度,必需字段,指定任务运行周期,格式同cron
	.spec.jobTemplate:job模板,必需字段,指定需要运行的任务,格式同job
	.spec.startingDeadlineSeconds:启动Job的期限(秒级别),该字段是可选的。如果因为任何原因而错过了被调度的时间,那么错过执行时间的job就被认为是失败的,如果没有指定,则没有期限
	.spec.concurrencyPolicy:并发策略,该字段也是可选的,它指定了如何处理被cronjob创建的job的并发执行,只允许指定下面策略中的一种:
			Allow(默认):允许并发运行job
			Forbid:禁止并发运行,如果前一个还没有完成,则直接跳过下一个
			Replace:取消当前正在运行的job,用一个新的代替
		注意:当前策略只能应用于同一个cronjob创建的job,如果存在多个cronjob,它们创建的job之间总是运行并发运行
	.spec.suspend:挂起,该字段也是可选的,如果设置为true,后续所有执行都会被挂起,它对已经执行的job不起作用,默认是false
	.spec.successfulJobHistroyLimit和 .spec.failedJobHistoryLimit:历史限制,是可选字段,它们指定了可以保留多少完成和失败的job,默认情况下,它们分别设置为3和1,设置限制的值为0,相关类型的job完成后将不会被保留
  • 样例
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值