我尝试运行一个码头映像一次,以执行任务使用一个流行的S3客户端minio,我正在处理的环境使用Kubernetes。
我可以获得shell访问来执行这样的任务:
docker run -it minio/mc --restart=Never --rm /bin/sh类似地,我能够在我的K8S集群中运行busybox映像。
kubectl run busybox -i --tty --image=busybox --restart=Never --rm -- sh但是,我无法让mc客户端像前面的示例那样工作。
kubectl run minio -i --tty --image=minio/mc --restart=Never --rm -- /bin/sh我的shell会退出,对如何保持shell打开有什么想法吗?或者如何在它死前把bash命令传递给它?
发布于 2020-09-08 16:16:33
当Pod中的容器运行某个已完成的进程(Es)时,会出现此问题。当容器退出时,Pod就完成了。更常见的情况是,在Pod中有一个容器可以连续运行。
因此,解决此完成问题的一个解决方案是保持容器运行:
kubectl run minio \
--image=minio/mc \
--restart=Never \
--command \
-- /bin/sh -c 'while true; do sleep 5s; done'注意事项
while循环在容器注意到中保持运行,图像的入口点被--command和/bin/sh覆盖
kubectl exec --stdin --tty minio -- mc --helphttps://stackoverflow.com/questions/63797619
复制相似问题