英文:
Kubernetes job doesn't complete
问题
关于您的问题,以下是翻译的内容:
作为练习,我编写了以下的任务来获取集群中所有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
我不确定为什么,但这个任务从未完成。命令本身在命令行上直接运行时可以正常工作,但创建的Pod在创建后总是出现错误。
我该如何使其工作,以及以后如何调试这样的问题?
谢谢
编辑:也许我的方法不正确。我应该创建一个工作负载,将上述内容输出到JSON中。也许Job不是执行此操作的正确资源?
我尝试记录Pod,但失败了。使用"get pods"命令后,我看到每个创建的Pod的状态都是ERROR,就绪状态为0/1。
英文:
For an exercise, I wrote the following job to get the name, type, namespace and uid of all pods in the cluster
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
I'm not sure why, but the job never gets completed. The command itself works fine directly on the CLI, but the created pods always get an error after their creation.
How do I get it to work, and for future reference how do I debug such a problem?
Thanks
edit: Perhaps it's my approach that's incorrect. I'm supposed to create a workload that outputs the above into JSON. Is Job maybe not the correct resource to do this?
I tried logging the pods, but it failed. Upon using get pods I saw that every created pod had the status ERROR and ready 0/1.
答案1
得分: 1
你使用的镜像 busybox
没有安装 kubectl
。请尝试:
containers:
- name: get-info
image: bitnami/kubectl # <-- 这个镜像带有 kubectl 命令
如果你对连接到服务器有疑问,可以查看这个 StackOverflow 问题。
英文:
The image you used busybox
doesn't come with kubectl
installed. Try:
containers:
- name: get-info
image: bitnami/kubectl # <-- this image come with kubectl command
Checkout this stackoverflow question if you have doubt connecting to your server.
答案2
得分: -1
将这一行更改为:
command: ["/bin/sh"]
args: ["-c", "kubectl get all -o custom-columns=name:.metadata.name,type:.kind,namespace:.metadata.namespace,uid:.metadata.uid > ./data.json"]
英文:
Change this line:
command: ['sh', '-c', 'kubectl get all -o custom-columns=name:.metadata.name,type:.kind,namespace:.metadata.namespace,uid:.metadata.uid > ./data.json']
To (notice two lines):
command: ["/bin/sh"]
args: ["-c", "kubectl get all -o custom-columns=name:.metadata.name,type:.kind,namespace:.metadata.namespace,uid:.metadata.uid > ./data.json"]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论