我有 kubernetes 作業,我想在 jenkins 管道中獲取他的 pod 日志。
所以我嘗試將 pod 名稱 grep 到 jenkins 變數,然后獲取日志。
POD_NAME = sh script: "kubectl describe jobs.batch ${JOB_NAME} | grep 'Created pod' | cut -d':' -f2"
echo "${POD_NAME}"
sh "kubectl logs --follow ${POD_NAME}"
但我進入null了POD_NAME變數。
uj5u.com熱心網友回復:
我假設您的 jenkins 控制器或代理能夠使用 kubectl 查詢 kubernetes api,因為它具有服務帳戶或其他形式的憑據來訪問 kubernetes。
如果這是真的,我建議您使用標簽來識別作業創建的 pod 并查詢與它們相關的任何內容。
您可以通過向.spec.metadata.labels部分添加標簽來做到這一點,如下所示,然后使用 kubectl 和--selector標志進行查詢:
---
apiVersion: batch/v1
kind: Job
metadata:
name: MYAPP
...
spec:
template:
metadata:
...
labels:
test: value
spec:
containers:
- name: MYAPP
image: python:3.7.6-alpine3.10
...
kubectl logs --follow --selector test=value
用于kubectl logs --help獲取更多資訊和示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/428318.html
標籤:詹金斯 Kubernetes 时髦的
下一篇:為什么Jenkins在workspace@script檔案夾中創建一個子檔案夾來檢查git代碼而不是workspace@script本身?
