我需要了解kubernetes cronjob的行为。即使之前的作业未完成,也会启动新的cronjob pod。只有一个pod针对此作业运行,之前的pod已消失。为什么在第一个作业未完成时启动新作业。使用kubectl describe job Userjob-1631434800不会跟踪失败事件 Command:
kubectl get jobs
Output:
NAME COMPLETIONS DURATION AGE
Userjob-1631434800
在kubernetes中,我有一个容器X。我想运行一个cron作业,它在容器X中执行一个命令。
我有以下想法:
使用busybox容器运行cron作业,
在busybox容器中执行一个脚本,该脚本将:
1. determine the pod name where the execution must happen,
2. run curl, _something like_: curl
这里的动态值是:
- my\_namespace
- my\_pod\_name
- my\_sh\_command
- my\_container\_na
我有一个包含多个cron作业的openshift项目。当一个吊舱关闭时,它们继续运行,现在我看到了错误 Cannot determine if job needs to be started: Too many missed start time 这是一个已知的问题。https://github.com/kubernetes/kubernetes/issues/42649 唯一的问题是在删除作业时会发生这种情况。 oc delete jobs occtool-cron-visitors
Error from server (NotFound): jobs.batch "occtool
似乎kubectl logs不支持cronjob。上面写着
错误:无法从*v1beta1获取日志。cannot :为*v1beta1选择器。
目前,我逐个检查所有相关作业的日志。
是否有任何简单的命令或工具来获取这些日志?
我对bash脚本进行了一些研究,并修改了以更好地满足我的需要。
# cronJobGetAllLogs.sh: Get all logs of a cronjob.
# example:
# ./cronJobGetAllLogs.sh [Insert name of cronJob]
jobs=( $(kubectl get jobs --no-headers
我们使用client-go来创建kubernetes作业和部署。今天在我们的一个集群(kubernetes v1.18.19)中,我遇到了下面奇怪的问题。 kubernetes Job的Pod一直处于挂起状态,没有任何原因。kubectl describe pod显示没有事件。从主机创建作业(通过kubectl)是正常的,pod最终开始运行。 令我惊讶的是创建部署是好的,pod最终会运行起来!它不仅适用于Kubernetes Jobs。为什么?如何解决这个问题?我能做什么??我在这里花了几个小时,但没有任何进展。 kubeconfig by client-go: Mount from hos
我使用GKE (https://github.com/kubernetes/client-go)在k8s集群上创建作业(代码在pod中运行)。但是我遇到了这个错误: {
"error": "2 UNKNOWN: jobs.batch is forbidden: User \"system:serviceaccount:default:default\" cannot create resource \"jobs\" in API group \"batch\" in the namespace \"defau
我一直在考虑在python脚本中使用time.sleep(n),让它以不同的时间间隔执行作业。伪代码将如下所示:
total_jobs = [...]
next_jobs_to_run = next_closest(total_jobs)
min_time_to_wait = closestTime(nextJobsToRun)
wait until min_time_to_wait
run them all
get next jobs
总而言之,程序会休眠,直到需要执行下一个作业。它运行作业,找到要运行的下一个作业,然后休眠,直到需要运行下一个作业(一直持续到无限)。我计划在linux