Jenkins on Kubernetes-从kubectl获取容器日志



我开始这个问题时怀疑这是属于这里还是属于StackOverflow;我在这里试试,问题如下:我正在与Jenkins一起开发Kubernetes,无法检索管道上使用的容器的日志
例如,使用以下管道:

pipeline {
agent {
kubernetes {
containerTemplate { name 'alpine' image 'alpine' command 'tail -f /dev/null'}
}
}
stages { 
stage('sample'){
steps{
container('alpine'){
echo "Hello world"
sleep 600
}
}
}
}
}

一切都很好,我可以看到";你好世界"打印在Jenkins控制台上,但我也想将其作为命令kubectl get logs pod-name -c alpine的输出。我假设kubectl logs显示容器中用作入口点的命令在stdout/stderr上写入的内容(在这种情况下为tail -f /dev/null(;Hello world";,但我不知道如何实现我想要的。

我还在Docker文档中看到了一个建议的变通方法:

nginx官方图片从/var/log/nginx/access.log到/dev/stdout,并创建另一个符号从/var/log/nginx/error.log到/dev/stderr的链接,覆盖日志文件,并将日志发送到相关的专用设备相反请参阅Dockerfile。

但我认为这个解决方案不适合我的问题。

这对我有效

containerTemplate { name 'alpine', image 'alpine', ttyEnabled: true, command 'cat' }

参考:https://github.com/jenkinsci/kubernetes-plugin#container-群组支持

最新更新