对于在新pod上运行一些时间有限的操作,以下哪种方法更好:
kubectl run
以创建pod
1.创建常规Kubernetes作业,例如kubectl apply -f job.yaml
要求:
我有两种使用情形:
1.我必须通过stdin
将二进制内容传递给pod。对于kubectl run -i
,这是微不足道的,它可以工作。对于一个作业,我不知道如何做到这一点。
1.我必须通过stdout
从pod和stderr
日志输出中获取二进制内容。对于kubectl run --attach
,这也是微不足道的,而且它可以工作。对于一个作业,我可以使用kubectl logs
,但不知道如何从stderr
中分离stdin
。
使用作业而不是pod是否可以获得更好的可伸缩性或任何其他优势(从错误中恢复)?
1条答案
按热度按时间kxe2p93d1#
对于
stdout
的情况,我设法使用了job
。作业的pod对调用pod执行
kubectl cp
,并传输所有需要的文件。通过这种方式,我不需要使用标准输出,并且可以指定资源的限制。
其优点是节点的自动缩放确实有效。