如何使用 kubectl 启动容器并取回退出代码?没有 kubectl exec

tek*_*o45 5 continuous-deployment kubernetes kubectl

我的 CI 工具使用生命周期,所以如果 Dev 部署有效,它会进入 QA。

我有一个端到端的测试容器,我想在 kubernetes 中运行,但是如何从容器中获取退出代码?

我可以以某种方式运行容器并在一个命令中取回退出代码吗?

kubectl run -it 似乎没有得到退出代码,并且在容器完成后还有一些额外的事情要说。

Mar*_*ney 8

要从 Pod(容器)获取退出代码,您可以使用以下命令获取 Pod 详细信息:

kubectl get pod termination-demo --output=yaml
Run Code Online (Sandbox Code Playgroud)

输出:

apiVersion: v1
kind: Pod
...
    lastState:
      terminated:
        containerID: ...
        exitCode: 0
        finishedAt: ...
        message: |
          Sleep expired
        ...
Run Code Online (Sandbox Code Playgroud)

要了解更多信息,您可以查看文档。

为了使它更容易,如你所愿,你可以运行:

kubectl get pod busybox-term -ojson | jq .status.containerStatuses[].lastState.terminated.exitCode
Run Code Online (Sandbox Code Playgroud)

或者,如果您不想安装jq,可以运行:

kubectl get pod busybox-term --output="jsonpath={.status.containerStatuses[].lastState.terminated.exitCode}"
Run Code Online (Sandbox Code Playgroud)