【发布时间】:2021-12-23 18:36:46
【问题描述】:
我有一个在 k8s 和特定容器内运行的 cronjob。我有一个 python 脚本可以在这个 cronjob 中运行,但是它没有运行最新的代码,但是我检查了它提取的图像是最新的。
当我手动运行kubectl create job --from=....时,它确实运行了最新的python代码。 p>
我错过了什么吗?
我已经尝试删除现有的 cronjob 并再次应用它,它仍然没有运行最新的代码。只有当我手动创建作业时它才会运行最新的代码。
自动和手动运行同一个作业的行为很奇怪......
描述作业 - cronjob 自动运行
Name: severity-1637733600
Namespace: security
Selector: controller-uid=167b250b-831c-4725-a1f8-bb46553e2948
Labels: controller-uid=167b250b-831c-4725-a1f8-bb46553e2948
job-name=severity-1637733600
Annotations: <none>
Controlled By: CronJob/severity
Parallelism: 1
Completions: 1
Start Time: Wed, 24 Nov 2021 14:00:00 +0800
Completed At: Wed, 24 Nov 2021 14:00:51 +0800
Duration: 51s
Pods Statuses: 0 Running / 1 Succeeded / 0 Failed
Pod Template:
Labels: controller-uid=167b250b-831c-4725-a1f8-bb46553e2948
job-name=severity-1637733600
Containers:
fetch-y-info:
Image: security/portal:3c62acai
Port: <none>
Host Port: <none>
Command:
/bin/sh
Args:
-c
python scripts/severity.py -vv
Environment:
DB_DRIVER: <set to the key 'driver' in secret 'security-secret'> Optional: false
Mounts: <none>
Volumes: <none>
Events: <none>
描述作业 - 手动运行
Name: severity-manual
Namespace: security
Selector: controller-uid=97952b85-24a5-4bbc-8e49-247e8bf2dcb1
Labels: controller-uid=97952b85-24a5-4bbc-8e49-247e8bf2dcb1
job-name=severity-manual
Annotations: cronjob.kubernetes.io/instantiate: manual
Parallelism: 1
Completions: 1
Start Time: Wed, 24 Nov 2021 15:34:56 +0800
Completed At: Wed, 24 Nov 2021 15:35:18 +0800
Duration: 22s
Pods Statuses: 0 Running / 1 Succeeded / 0 Failed
Pod Template:
Labels: controller-uid=97952b85-24a5-4bbc-8e49-247e8bf2dcb1
job-name=severity-manual
Containers:
fetch-y-info:
Image: security/portal:3c62acai
Port: <none>
Host Port: <none>
Command:
/bin/sh
Args:
-c
python scripts/severity.py -vv
Environment:
DB_DRIVER: <set to the key 'driver' in secret 'security-secret'> Optional: false
Mounts: <none>
Volumes: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 2m7s job-controller Created pod: severity-manual-hbtzd
Normal Completed 105s job-controller Job completed
【问题讨论】:
-
错误是什么?
-
没有错误。它只是没有运行我最新的代码....
-
在这种情况下,您需要将 CronJob yaml 发布到问题中,并
kubectl describe完成的作业(手动运行 vs k8s 计划)。 -
我已经发布了描述,谢谢
-
CronJob 运行 51 秒,而手动作业运行 22 秒。如果他们用相同的数据集做了同样的事情,你怎么知道哪个是“最新的代码”,你在看某种输出,例如。日志?桌子?您能否简要(不需要详细信息)描述两者之间的不同之处,让您相信其中一个不是最新的,以及您的集群中有多少个工作节点?
标签: python kubernetes cron yaml containers