kubectl 运行 - 如何在到达交互式终端之前传递一些要执行的命令?

kubectl run - How to pass some commands to be executed before reaching the interactive terminal?

在交互式终端上使用 kubectl run -ti 时,我希望能够在 kubectl run 命令中传递一些命令,以便在交互式终端出现之前成为 运行,例如 apt install zip 这样的命令。这样我就不用等交互终端上来再运行那些常用命令了。有办法吗?

谢谢

您可以使用 shell 的 exec 将控制权从您最初的“外部”bash 移交给负责执行您想要的初始化步骤的新的一个(在没有 -c 并且可以选择登录 shell 的意义上是新鲜的)在您的预先步骤之后运行:

kubectl run sample -it --image=ubuntu:20.04 -- \
    bash -c "apt update; apt install -y zip; exec bash -il"