如何在CD输出中包含Pod启动日志/信息?

时间:2019-09-03 18:58:03

标签: kubernetes continuous-deployment

我正在建立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的日志。)

1 个答案:

答案 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

在管道的此端添加此内容,它将为您提供有关广告连播安排的有趣信息,等等...