如何在Kubernetes群集中运行一次性bash吊舱? (像码头运行)
问题描述:
我想在我的Kubernetes群集中运行一次性命令行Pod。我在寻找相当于如何在Kubernetes群集中运行一次性bash吊舱? (像码头运行)
docker run --rm -it centos /bin/bash
是否有kubectl
相当于?
答
看来最简单的方法是:
kubectl run tmp-shell --rm -i --tty --image centos -- /bin/bash
注意:
- 这将弹出一个名为
tmp-shell
整体Deployment
。这发生在您使用kubectl run
的任何时候。 -
--rm
确保这个Deployment
及其所有组件在退出shell时被删除。如果省略--rm
,则可以使用kubectl delete deploy/tmp-shell
手动将其删除。 - 如果您想要脱离外壳并使其能够重新连接,请省略
--rm
。在退出shell之后,您将能够重新附加:kubectl attach $pod-name -c $pod-container -i -t
。 -
如果您的shell不启动,请检查您的群集是否资源不足(
kubectl describe nodes
)。您可以控制这个部署请求的资源与--requests
:--requests='': The resource requirement requests for this container. For example, 'cpu=100m,memory=256Mi'. Note that server side components may assign requests depending on the server configuration, such as limit ranges.
(由https://gc-taylor.com/blog/2016/10/31/fire-up-an-interactive-bash-pod-within-a-kubernetes-cluster启发)