我下面有小的python脚本
import os
os.system('kubectl get pods --context students-cmn')
当我从终端手动运行此命令时,它没有问题,因此我将其配置为作为cron作业运行,但是当cron作业触发以下错误时
sh: kubectl: command not found
为什么,当cronjob触发时,kubectl无法正常工作?
任何人都可以帮助
答案 0 :(得分:1)
首先,我想您正在计划将代码添加到python脚本中,这就是为什么要使用python。我假设您使用了可以运行命令的用户的crontab。
在cron
中执行命令时,必须指定命令的完整路径。要找到kubectl
的完整路径,请在终端中发出以下命令:
which kubectl
它将打印完整路径。
然后,您编辑脚本(假设完整路径为“ / opt / Kubernetes / bin”):
import os
os.system('/opt/Kubernetes/bin/kubectl get pods --context students-cmn')
答案 1 :(得分:0)
当我尝试使用cron从CentOS 7将.ku / py文件执行“ kubectl”命令时,遇到了同样的问题。 我可以手动运行脚本.sh / .py文件,并且输出很好。 当我尝试使用脚本设置cron作业时,无法执行“ kubectl”命令。 它没有为cron事件生成任何日志。 如果您不介意,请支持我。
crontab : * * * * * python /home/sanglv/kube-status.py >> /tmp/status.txt
kube-status.py file :
#!/usr/bin/env python
#ls command
import os
os.system('/usr/bin/kubectl get pods --all-namespaces --kubeconfig="/root/.kube/config"')