当您编辑部署以更新docker映像时,我需要运行一次性脚本,该脚本更改应用程序数据库的部分内容,并发送电子邮件,通知滚动升级过程已完成,结果通过/失败。
是否有一个钩子,我可以把这个脚本附加到?
不,Kubernetes中没有这样的东西。通常这应该通过CI/CD管道来完成。
Kubernetes没有实现这样的事情。这可以通过CI/CD管道或手动检查滚动更新状态来完成。正如你所说的,你可以写一个简单的脚本来检查滚动更新的状态,并通过电子邮件发送它,并将它附加到Jenkins中创建的管道。
手动检查滚动更新状态执行命令:
$ kubectl rollout status deploy/your-deployment -n your-namespace
例如,如果你使用ConfigMap传递变量,你可以使用Reloader在ConfigMap/secret发生变化时自动执行滚动更新。
据我所知,Kubernetes并没有提供任何东西来支持这种开箱即用的功能,但是您可以修改脚本,使用以下命令检查rollout的状态:
kubectl rollout status deployment/<deployment-name>