如何验证在 Kubernetes 中成功完成的 cronjob
How to verify a cronjob successfully completed in Kubernetes
我正在尝试在单个 busybox 容器中创建一个 运行 命令 date 的 cronjob。该命令应每分钟 运行 并且必须在 17 秒内完成,否则将被 Kubernetes 终止。 cronjob 名称和容器名称都应该是 hello.
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
jobTemplate:
metadata:
name: hello
spec:
completions: 1
activeDeadlineSeconds: 17
template:
metadata:
creationTimestamp: null
spec:
containers:
- image: busybox
name: hello
command: ["/bin/sh","-c","date"]
resources: {}
restartPolicy: OnFailure
schedule: '*/1 * * * *'
status: {}
我想验证作业是否至少成功执行了一次。
我使用命令 k get cronjob -w 尝试了它,它给了我这个结果。
是否有其他方法可以验证作业是否成功执行?在容器中添加命令date是不是一个好方法?
您可以查看由 cronjob 资源创建的 pods 的日志。看看这个 如果这能解决您的问题请告诉我。
您可以直接查看职位的状态。 Cronjob 只是在控制一个 Kubernetes 作业。
运行 kubectl get jobs
它会给你完成状态。
> kubectl get jobs
NAME COMPLETIONS DURATION AGE
datee-job 0/1 of 3 24m 24m
CronJob
在内部创建 Job
,在内部创建 Pod
。注意 CronJob
创建的作业
kubectl get jobs --watch
输出类似于:
NAME COMPLETIONS DURATION AGE
hello-4111706356 0/1 0s
hello-4111706356 0/1 0s 0s
hello-4111706356 1/1 5s 5s
你可以看到COMPLETIONS
的数量
#Replace "hello-4111706356" with the job name in your system
pods=$(kubectl get pods --selector=job-name=hello-4111706356 --output=jsonpath={.items[*].metadata.name})
检查 pod 日志
kubectl logs $pods
我正在尝试在单个 busybox 容器中创建一个 运行 命令 date 的 cronjob。该命令应每分钟 运行 并且必须在 17 秒内完成,否则将被 Kubernetes 终止。 cronjob 名称和容器名称都应该是 hello.
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
jobTemplate:
metadata:
name: hello
spec:
completions: 1
activeDeadlineSeconds: 17
template:
metadata:
creationTimestamp: null
spec:
containers:
- image: busybox
name: hello
command: ["/bin/sh","-c","date"]
resources: {}
restartPolicy: OnFailure
schedule: '*/1 * * * *'
status: {}
我想验证作业是否至少成功执行了一次。 我使用命令 k get cronjob -w 尝试了它,它给了我这个结果。
是否有其他方法可以验证作业是否成功执行?在容器中添加命令date是不是一个好方法?
您可以查看由 cronjob 资源创建的 pods 的日志。看看这个
您可以直接查看职位的状态。 Cronjob 只是在控制一个 Kubernetes 作业。
运行 kubectl get jobs
它会给你完成状态。
> kubectl get jobs
NAME COMPLETIONS DURATION AGE
datee-job 0/1 of 3 24m 24m
CronJob
在内部创建 Job
,在内部创建 Pod
。注意 CronJob
kubectl get jobs --watch
输出类似于:
NAME COMPLETIONS DURATION AGE
hello-4111706356 0/1 0s
hello-4111706356 0/1 0s 0s
hello-4111706356 1/1 5s 5s
你可以看到COMPLETIONS
#Replace "hello-4111706356" with the job name in your system
pods=$(kubectl get pods --selector=job-name=hello-4111706356 --output=jsonpath={.items[*].metadata.name})
检查 pod 日志
kubectl logs $pods