0

我在 kubernetes 的命名空间上运行了一些服务。我创建了一个作业来运行指向这些服务的 api 测试,当这个作业完成(成功)时,我希望能够将 json 报告复制到我的机器上。我尝试使用kubectl cp,但这仅在 pod 仍在运行时才有效。

有谁知道作业完成后如何复制这些报告?我尝试创建一个部署,以便能够复制这些报告,但是没有restartpolicy部署,并且每次都重新启动测试,这使我在能够复制它们之前丢失了报告。还尝试使用 pod 创建一个 pod,restartpolicy: NEVER但我遇到了与工作相同的问题。

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我目前拥有的。

任何想法都非常受欢迎。

4

1 回答 1

1

我认为您可以将报告推送到 git 服务器等系统,或者您可以使用persistentvolume(PV)将报告放置到 nfs 等共享存储中。您的作业将运行特定的节点主机,然后您还可以查看hostPath以从 pod 与主机服务器共享报告。

我希望它对你有帮助。

于 2018-08-13T22:20:50.617 回答