Job類型任務如何采集日志
更新時間 2025-05-27 17:19:27
最近更新時間: 2025-05-27 17:19:27
分享文章
本文介紹Job類型任務如何采集日志。
在Serverless集群運行Job任務,無法通過DaemonSet采集日志,且Job Pod在任務結束后會立即退出,可能導致日志未能完整收集。為確保這類場景下日志的完整性,您可以將Job任務的輸出日志存儲到掛載的NAS盤,然后通過一個獨立的日志采集Pod從該NAS盤讀取日志并發送到日志系統。本文將為您介紹如何針對Job類型任務場景采集日志到日志系統。
前提條件
- 確保您已經創建Serverless集群,具體操作請參閱創建Serverless集群。
- 已開通天翼云彈性文件或對象存儲服務。
- 確保kubectl工具已經連接目標集群。
操作步驟
步驟一:通過kubectl客戶端創建job.yaml
- 創建一個計算π值Job任務,并掛載NAS盤, Job參考YAML配置如下:
apiVersion: batch/v1
kind: Job
metadata:
name: pi-log
spec:
template:
spec:
containers:
- name: pi
image: user1-registry-huadong1.crs-internal.daliqc.cn/library/perl:latest
command: ["/bin/sh", "-c", "perl -Mbignum=bpi -wle 'print bpi(1000)' > /eci/a.log 2>&1"] #運行輸出結果重定向到指定文件
resources:
limits:
cpu: "1"
memory: 2Gi
volumeMounts:
- name: pvc-nas
mountPath: /eci
readOnly: false
restartPolicy: Never
volumes:
- name: pvc-nas
persistentVolumeClaim:
claimName: pvc-static-nas
backoffLimit: 4
- 創建Job任務。
kubectl apply -f job.yaml
- 查看Pod狀態。
kubectl get pod
步驟二:創建Pod來采集Job任務輸出日志
- 通過kubectl客戶端創建log-collection.yaml文件,示例如下:
apiVersion: v1
kind: Pod
metadata:
name: log-collection
spec:
containers:
- image: registry-huadong1.crs-internal.daliqc.cn/open-source/nginx:1.26-alpine-slim
name: log-collection
command: ['/bin/sh', '-c', 'echo &(cat /eci/a.log)'] #查看Job日志文件
resources:
limits:
cpu: "1"
memory: 2Gi
volumeMounts:
- name: pvc-nas
mountPath: /eci
restartPolicy: Never
volumes:
- name: pvc-nas
persistentVolumeClaim:
claimName: pvc-static-nas
- 然后執行指令創建一個Pod,掛載NAS盤用來采集Job任務輸出日志。
kubectl get pod
- 可通過ECI控制臺查看log-collection pod的日志輸出如下: