【发布时间】:2020-01-06 16:41:33
【问题描述】:
我正在设置 CI/CD 管道。部署步骤运行以下命令:
kubectl apply -f manifest.yml --namespace <namespace>
kubectl rollout status Deployment/<service> --namespace <namespace>
这给出了以下输出:
Waiting for deployment "<service>" rollout to finish: 1 out of 2 new replicas have been updated...
error: deployment "<service>" exceeded its progress deadline
##[error]error: deployment "<service>" exceeded its progress deadline
通过运行
kubectl get pods
我可以看到它已经启动了一个卡在 CrashLoopBackOff 中的 pod。我可以通过运行来了解 pod 启动失败的原因:
kubectl logs <pod-name>
有没有办法将此输出包含在部署日志中?我显然可以检查部署是否失败,然后解析上述命令并显示日志输出,但我希望有一些方法可以从 kubectl rollout status 中获取这些信息(最好有办法让 kubectl rollout status 随时通知部署中的 pod 发生状态更改,并显示任何具有错误状态更改的 pod 的日志。)
【问题讨论】:
-
看起来你可以做到
kubectl logs deployment/<service>。我不确定它在推出过程中的表现如何,以及它是否提供了您正在寻找的体验。您可以尝试在一个终端窗格中使用kubectl rollout status,在另一个终端窗格中使用kubectl logs进行整个部署。如果你觉得这很有帮助,我会很好奇,我自己还没有在整个部署中使用kubectl logs。
标签: kubernetes continuous-deployment