金丝雀发布的问题
金丝雀发布是什么,这里就不说了。我们肯定知道了金丝雀发布之后,有一个疑问,金丝雀发布后,中止,然后继续再完全发布。
但是,此时发现了bug,怎么终止这次发布行动呢?
我在网上找了许久,并没有找到如何取终止丝雀发布的内容。于是,靠自己摸索,记录这篇文章,补上如何终止金丝雀发布的操作。
如何你还不知道或者不会金丝雀发布,建议先去学习相关知识。
金丝雀发布
执行金丝雀发布
kubectl set image deploy pc-deployment nginx=nginx:1.17.4 -n dev && kubectl rollout pause deployment pc-deployment -n dev
终止金丝雀发布
前面我们已经执行了金丝雀发布,已经产生了一个新版本的pod,等待完全发布了。
如果此时我们发现新版本的镜像存在问题。如何才能终止这次发布呢?让版本回退到发布前的状态。
新版本的id为4,这里回退到发布前的版本是3
#恢复发布发布并undo
kubectl rollout resume deploy pc-deployment -n dev && kubectl rollout undo deploy pc-deployment --to-revision=3 -n dev
- 版本3消失了,出现了版本5,说明它是恢复到了之前的版本。
- 很显然resume&&undo之后,新的pod的数量只是从1变成了0,旧版本的pod数量恢复到了3,并且依然用的旧的rs。这说明了resume&&undo并不会继续将新镜像扩大化发布,而是维持为1,直到最后旧版本恢复完成后,删除了新版本的pod。