如何获取服务容器日志并将它们作为工件上传到 gitlab
how to get service container logs and upload them as artifacts in gitlab
背景:
我使用 v13.11.4 的 gitlab-ee,并且还在 k8s 集群中配置和部署了 gitlab runners(包括 helper 和 builder)。
问题:
当在 gitlab 中为项目触发管道时,作业会选择一个运行器并完成作业,而作业是 运行 我想捕获这些日志并将它们作为工件上传,以便开发人员可以下载它们?
我确实有 kubernetes 命令的想法来获取容器的日志但无法解决上述问题
kubectl logs -c svc-0 -n ${RUNNER_NAMESPACE} $(hostname) > svc0.log
kubectl logs -c svc-1 -n ${RUNNER_NAMESPACE} $(hostname) > svc1.log
如何在作业 运行 时获取日志并将它们作为工件上传到 post-build 中?
要获取作业的服务容器日志,然后在 .gitlab-ci.yml
中使用它,如下所示
sample_job:
script:
- kubectl logs ${HOSTNAME} -n ${RUNNER_NAMESPACE} -c svc-0 > svc0.log
${HOSTNAME} 是一个 gitlab 环境变量,它给出了 pod 的名称,其中作业是 运行。
${RUNNER_NAMESPACE} 是你的 gitlab 运行器部署在 k8s
中的命名空间
注意:如果您认为可能有多个容器,那么可以为作业的运行器 pod(${HOSTNAME}) 中的所有 svc-* 容器使用 for 循环 运行。
背景:
我使用 v13.11.4 的 gitlab-ee,并且还在 k8s 集群中配置和部署了 gitlab runners(包括 helper 和 builder)。
问题:
当在 gitlab 中为项目触发管道时,作业会选择一个运行器并完成作业,而作业是 运行 我想捕获这些日志并将它们作为工件上传,以便开发人员可以下载它们?
我确实有 kubernetes 命令的想法来获取容器的日志但无法解决上述问题
kubectl logs -c svc-0 -n ${RUNNER_NAMESPACE} $(hostname) > svc0.log
kubectl logs -c svc-1 -n ${RUNNER_NAMESPACE} $(hostname) > svc1.log
如何在作业 运行 时获取日志并将它们作为工件上传到 post-build 中?
要获取作业的服务容器日志,然后在 .gitlab-ci.yml
中使用它,如下所示sample_job:
script:
- kubectl logs ${HOSTNAME} -n ${RUNNER_NAMESPACE} -c svc-0 > svc0.log
${HOSTNAME} 是一个 gitlab 环境变量,它给出了 pod 的名称,其中作业是 运行。 ${RUNNER_NAMESPACE} 是你的 gitlab 运行器部署在 k8s
中的命名空间注意:如果您认为可能有多个容器,那么可以为作业的运行器 pod(${HOSTNAME}) 中的所有 svc-* 容器使用 for 循环 运行。