我正在建立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的部署状态(最好是有一种方法可以使kubectl的部署状态随时通知部署中的Pod的状态已更改,并显示具有错误状态更改的所有Pod的日志。)
答案 0 :(得分:2)
如果还不是这种情况,请labelize吊舱:
apiVersion: v1
kind: Pod
metadata:
name: label-demo
labels:
environment: production
app: nginx
它使您可以查看没有Pod名称的日志:
kubectl logs -l app=nginx -n your-namespace
对于CrashLoopBackOff
错误,事件通常提供比日志更多的信息:
kubectl get events --sort-by lastTimestamp -n your-namespace
在管道的此端添加此内容,它将为您提供有关广告连播安排的有趣信息,等等...