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

标签 kubernetes continuous-deployment kubectl

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

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

我可以以某种方式运行容器并在一个命令中取回退出代码吗?
kubectl run -it似乎没有得到退出代码,并且在容器完成后还有一些额外的事情要说。

最佳答案

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

kubectl get pod termination-demo --output=yaml

输出:
apiVersion: v1
kind: Pod
...
    lastState:
      terminated:
        containerID: ...
        exitCode: 0
        finishedAt: ...
        message: |
          Sleep expired
        ...

要了解更多信息,您可以查看 documentation.

为了让它更容易,你可以运行:
kubectl get pod busybox-term -ojson | jq .status.containerStatuses[].lastState.terminated.exitCode

或者如果您不想安装 jq ,你可以运行:
kubectl get pod busybox-term --output="jsonpath={.status.containerStatuses[].lastState.terminated.exitCode}"

关于kubernetes - 如何使用 kubectl 启动容器并取回退出代码?没有 kubectl exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61338886/

相关文章:

kubernetes - kubectl - 以 json 格式检索部署的当前/"new"副本集

jenkins - 用于持续集成/持续部署的 Docker 镜像版本控制

node.js - Kubernetes HPA 部署找不到目标资源

kubernetes - 在 Kubernetes 中将 Deployment 转换为 StatefulSet

kubernetes - 无法连接服务器 : net/http: TLS handshake timeout

docker - Docker Swarm是否使节点之间的数据保持同步?

database - 持续部署和数据库

docker - kubectl版本显示了错误的版本号

kubernetes - Istio 允许所有出站流量

tomcat6 - 强制 Tomcat 6 在 Windows 上停止