Kubernetes在创建后对POD进行bash



我尝试使用命令创建PODkubectl run --generator=run-pod/v1 mypod--image=myimage:1 -it bash,并且在成功创建pod之后,它在侧容器中提示bash命令。

使用YML文件是否可以实现上述命令?我在YML下面尝试过,但在成功创建POD后,它并没有直接进入bash。我不得不手动编写命令kubectl exec -it POD_NAME bash。但要避免使用exec命令来抨击我的容器。我希望我的YML在创建POD后将我带到我的容器。有什么办法可以做到这一点吗?

apiVersion: v1
kind: Pod
metadata:
name: mypod
namespace: mynamespcae
labels:
app: mypod
spec:
containers:
- args:
- bash
name: mypod
image: myimage:1
stdin: true
stdinOnce: true
tty: true

这是一个社区wiki答案。请随意扩展。

正如David已经提到的,在只使用YAML语法创建Pod之后,不可能直接进入bash。您必须使用适当的kubectl命令(如kubectl exec(才能将Shell获取到正在运行的容器。

您想要拥有不会退出pod的键。这是一个给你的例子。

apiVersion: v1
kind: Pod
metadata:
name: mypod
namespace: mynamespcae
labels:
app: mypod
spec:
containers:
- command:
- bash
- -c
- yes > /dev/null
name: mypod
image: myimage:1

命令yes将继续输出字符串yes,直到它被终止。> /dev/null部分将确保您不会有大量的垃圾日志。然后你可以用这些命令访问你的吊舱。

kubectl apply -f my-pod.yaml
kubectl exec -it mypod bash

记得在完成所有操作后取下吊舱。

最新更新