kubectl apply
每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就能够回滚到某个特定 revision。html
默认配置下,Kubernetes 只会保留最近的几个 revision,能够在 Deployment 配置文件中经过 revisionHistoryLimit
属性增长 revision 数量。app
下面实践回滚功能。应用有以下三个配置文件 httpd.v1.yml
,httpd.v2.yml
和 httpd.v3.yml
,分别对应不一样的 httpd 镜像 2.4.16
,2.4.17
和 2.4.18
:学习
经过 kubectl apply
部署并更新应用:code
--record
的做用是将当前命令记录到 revision 记录中,这样咱们就能够知道每一个 revison 对应的是哪一个配置文件。经过 kubectl rollout history deployment httpd
查看 revison 历史记录。htm
CHANGE-CAUSE
就是 --record
的结果。若是要回滚到某个版本,好比 revision 1,能够执行命令 kubectl rollout undo deployment httpd --to-revision=1
:blog
此时,revison 历史记录也会发生相应变化。部署
revison 1 变成了 revison 4。不过咱们能够经过 CHANGE-CAUSE
知道每一个 revison 的具体含义。因此必定要在执行 kubectl apply
时加上 --record
参数。get
滚动更新咱们就讨论到这里,下一节开始学习 k8s 的 Health Check 功能。it
书籍:
1.《天天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.htmlio
2.《天天5分钟玩转OpenStack》
https://item.jd.com/12086376.html