Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 如何从Kubernetes中的一次性进程中获取文件?_Jenkins_Kubernetes_Jenkins Pipeline_Kubernetes Helm_Jenkins Declarative Pipeline - Fatal编程技术网

Jenkins 如何从Kubernetes中的一次性进程中获取文件?

Jenkins 如何从Kubernetes中的一次性进程中获取文件?,jenkins,kubernetes,jenkins-pipeline,kubernetes-helm,jenkins-declarative-pipeline,Jenkins,Kubernetes,Jenkins Pipeline,Kubernetes Helm,Jenkins Declarative Pipeline,我有一个测试过程,它生成一个文件作为输出 我想在构建过程中启动这个测试过程,运行它直到完成,然后收集它生成的文件并将其复制回构建上下文 在Kubernetes/Helm中,正确的方法是什么 构建过程可以访问kubectl和helmCLI工具 我要求不要使用kubectl exec,因为集群设置不允许使用它 一些细节: 我能够使用Pod配置一次性流程 我设置了将输出文件存储在卷装载中的过程,该卷装载到emptyDir卷 我不知道如何获取输出文件 我尝试了kubectl cp,但无法让它工作(没有这

我有一个测试过程,它生成一个文件作为输出

我想在构建过程中启动这个测试过程,运行它直到完成,然后收集它生成的文件并将其复制回构建上下文

在Kubernetes/Helm中,正确的方法是什么

构建过程可以访问
kubectl
helm
CLI工具

我要求不要使用
kubectl exec
,因为集群设置不允许使用它

一些细节:

我能够使用
Pod
配置一次性流程

我设置了将输出文件存储在卷装载中的过程,该卷装载到
emptyDir

我不知道如何获取输出文件

我尝试了
kubectl cp
,但无法让它工作(没有这样的文件或目录)

我不知道如何检查一个停下来的容器里的东西

我想不出怎么看这卷里有什么

kubectl日志
显示测试过程成功运行。该文件在容器中生成并存储在预期位置

快速更新:

在本地minikube环境中,我能够设置一个持久卷并将输出文件复制回主机文件系统。下一步我将在詹金斯环境中尝试

以下是我的本地(boot2docker)环境中的
kubectl cp
的输出:

$ kubectl cp my-pod:/home/node/output . -c mycontainer
error: home/node/output no such file or directory
/home/node/output
是容器中的volumeMount路径

我要求不要使用kubectl exec,因为集群设置不允许使用它

如果没有
kubectl exec
命令,我可以建议这样做:

  • 在集群内以代理身份运行测试
  • 使用共享卷(如NFS或SMB)存储文件
  • 从共享卷获取文件,您可以将其装载到生成系统

  • 此外,许多构建系统都有工件存储,这是存储测试结果的最佳选择。

    能否发布用于kubectl cp的命令?此外,装载卷也会有所帮助。感谢您的回复。更新了最新的问题。有没有办法直接从绑定的持久卷中获取文件?谢谢您的回复。我不明白怎么做第三步。这就是我问题的全部根源。我正在使用Jenkins声明性管道。对于NFS共享,您将需要一个NFS服务器(可以是任何Linux系统,请检查),然后您可以将共享卷装载到您的代理(检查同一篇文章)和您的。谢谢!我要试试这个。