簡體   English   中英

Kubernetes 上的 Jenkins - 從 kubectl 獲取容器日志

[英]Jenkins on Kubernetes - Get logs of containers from kubectl


我開始懷疑這個問題是屬於這里還是屬於 StackOverflow; 我在這里試一下,問題如下:

我正在與 Kubernetes 上的 Jenkins 合作,但我無法檢索管道上使用的容器的日志。
例如使用以下管道:

 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 控制台上看到“Hello world”,但我也想通過命令kubectl get logs pod-name -c alpine將其作為 output 獲取。 我想kubectl logs顯示在容器中用作入口點的命令(在本例中為tail -f /dev/null )在stdout / stderr上寫入的內容,這就是我沒有得到“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-group-support

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM