kubectl 终端命令无法从 crontab 工作,如何解决?

Bra*_*avo 2 python cron kubernetes kubectl

我有下面的小python脚本

import os
os.system('kubectl get pods --context students-cmn')
Run Code Online (Sandbox Code Playgroud)

当我从终端手动运行此命令时,它正在工作,没有问题,所以我将其配置为作为 cron 作业运行,但是当 cron 作业触发时出现以下错误

sh: kubectl: command not found
Run Code Online (Sandbox Code Playgroud)

为什么,当 cronjob 触发时,kubectl 不工作?

任何人都可以请帮忙

the*_*rpy 7

首先,我想您正计划将代码添加到您的 python 脚本中,这就是您使用 python 的原因。我假设您使用了可以运行该命令的用户的 crontab。

当您在 中执行命令时,cron您必须指定该命令的完整路径。要找到 的完整路径kubectl,请在终端中发出以下命令:

which kubectl
Run Code Online (Sandbox Code Playgroud)

它将打印完整路径。

然后,您编辑脚本(假设完整路径为“/opt/Kubernetes/bin”):

import os
os.system('/opt/Kubernetes/bin/kubectl get pods --context students-cmn')
Run Code Online (Sandbox Code Playgroud)