运行一个简单的Pod命令有困难



虽然我了解基本概念,但我对Docker和Kubernetes都是新手。我一直在向Kubernetes提交很多乔布斯,并试图找到一种自动删除历史记录的方法(CronJobs有一些功能可以做到这一点,但还不是常规的乔布斯(。我在这里找到了一个很好的答案,但我一直很难让它发挥作用。

这是我提交的一个基本Pod,它类似于我完成测试后将使用的CronJob。目前,它只打印要删除的作业的名称,但一旦我完成测试,我将在命令末尾添加| xargs kubectl delete job以执行删除。正是利用这张图片提供了kubectl。

apiVersion: v1
kind: Pod
metadata:
name: cleanup-manual
spec:
containers:
- name: cleanup-manual-pod
image: wernight/kubectl
command: ["get jobs | awk '$4 ~ /^[2-9]d/ || $2 ~ /^1/ {print $1}'"]

当我运行它时,pod会退出并显示RunContainerError。

所以我有几个问题:

  • 有什么可以检查的吗,看看容器为什么失败?kubectl logs [pod name]似乎什么都没给我
  • 在我正在处理的原始答案中,命令是["sh", "-c", "kubectl get jobs | awk '$4 ~ /[2-9]d$/ || $3 ~ 1' | awk '{print $1}' | xargs kubectl delete job"]。我删除了最后一个xargs,因为我现在正在测试,并修复了awk命令。我认为我的这两个更改是好的,但我很困惑为什么另一个命令以sh -c kubectl开头。如果图像的入口点是kubectl,那么这不是多余的吗?基本上,我想知道我的命令还是其他命令更好
  • 如果您能提供任何其他帮助我追踪此错误的信息,我们将不胜感激
  1. "得到工作;不是可识别的命令,而是"的一部分;kubectl得到工作
  2. 删除";sh-c";您正在移除外壳

因此,在您的情况下,命令应该是

command: ["sh", "-c", "kubectl get jobs | awk '$4 ~ /^[2-9]d/ || $2 ~ /^1/ {print $1}'"]

最新更新