Kubernetes作业未完成

9rygscc1  于 2023-06-21  发布在  Kubernetes
关注(0)|答案(2)|浏览(139)

作为一个练习,我编写了以下作业来获取集群中所有Pod的名称、类型、命名空间和uid

apiVersion: batch/v1
kind: Job
metadata:
  name: get-info
spec:
  template:
    spec:
      containers:
      - name: get-info
        image: busybox
        command: ['sh', '-c', 'kubectl get all -o custom-columns=name:.metadata.name,type:.kind,namespace:.metadata.namespace,uid:.metadata.uid > ./data.json']
      restartPolicy: Never

我不知道为什么,但工作从来没有完成过。命令本身直接在CLI上运行良好,但创建的pod在创建后总是会出错。
我如何让它工作,以及为了将来的参考,我如何调试这样的问题?
谢谢
编辑:也许是我的方法不正确。我应该创建一个工作负载,将上面的内容输出为JSON。工作可能不是做这件事的正确资源吗?
我试着记录豆荚但失败了在使用get pod时,我看到每个创建的pod都有状态ERROR和ready 0/1。

kiz8lqtg

kiz8lqtg1#

您使用的busybox映像未安装kubectl。尝试:

containers:
- name: get-info
  image: bitnami/kubectl  # <-- this image come with kubectl command

如果您对连接到服务器有疑问,请检查此stackoverflow question

uubf1zoe

uubf1zoe2#

更改此行:

command: ['sh', '-c', 'kubectl get all -o custom-columns=name:.metadata.name,type:.kind,namespace:.metadata.namespace,uid:.metadata.uid > ./data.json']

到(注意两行):

command: ["/bin/sh"]
 args: ["-c", "kubectl get all -o custom-columns=name:.metadata.name,type:.kind,namespace:.metadata.namespace,uid:.metadata.uid > ./data.json"]

相关问题