我在kubernetes的名称空间上运行了一些服务。我创建了一个作业来运行指向这些服务的api测试,当该作业完成(成功)后,我希望能够将json报告复制到我的机器上。我尝试使用kubectl cp
,但这仅在pod仍在运行时有效。
有人知道我在完成工作后如何复制这些报告吗?我试图创建一个部署,以便能够复制这些报告,但是然后没有restartpolicy
用于部署,并且每次都重新启动测试,这使我在能够复制报告之前就丢失了它们。还尝试仅使用restartpolicy: NEVER
创建一个pod,但是我遇到了与工作相同的问题。
apiVersion: v1
kind: Pod
metadata:
name: api-tests
namespace: tests
spec:
restartPolicy: Never
containers:
- name: api-tests
image: api-tests:latest
args:
- run
- https://www.getpostman.com/collections/test23423423
- -e
- /etc/newman/envs/kubernetes.postman_environment.json
- -d
- /etc/newman/data/tests.csv
- --reporters
- cli,html,json
- --reporter-json-export
- /etc/newman/target/api_tests.json
- --reporter-html-export
- /etc/newman/target/api_tests.html
- --reporter-cli-no-failures
这是我目前拥有的job.yaml
。
任何想法都非常受欢迎。
答案 0 :(得分:1)
我认为您可以将报告推送到git服务器等系统,也可以使用persistentvolume(PV)将报告放入nfs之类的共享存储中。您的作业将运行特定的节点主机,然后您还可以查看hostPath,以从Pod与主机服务器共享报告。
希望对您有帮助。