k6:k6–outjson-打开./test.json:权限被拒绝
我在 digitalocean 上创建了 kubernetes 集群。我已经在 kubernetes 集群上部署了 k6 作为作业。
apiVersion: batch/v1
kind: Job
metadata:
name: benchmark
spec:
template:
spec:
containers:
- name: benchmark
image: loadimpact/k6:0.29.0
command: ["k6", "run", "--vus", "2", "--duration", "5m", "--out", "json=./test.json", "/etc/k6-config/script.js"]
volumeMounts:
- name: config-volume
mountPath: /etc/k6-config
restartPolicy: Never
volumes:
- name: config-volume
configMap:
name: k6-config
这就是我的 k6-job.yaml 文件的样子。在 kubernetes 集群中部署它后,我检查了 pods 日志。它显示权限被拒绝错误。level=error msg="open ./test.json: permission denied" 如何解决这个问题?
回答
k6 Docker 镜像以非特权用户身份运行,但不幸的是默认工作目录设置为/,因此它无权在那里写入。
要解决此问题,请考虑将 JSON 输出路径更改为/home/k6/out.json,即:
command: ["k6", "run", "--vus", "2", "--duration", "5m", "--out", "json=/home/k6/test.json", "/etc/k6-config/script.js"]
我对球队的维护者之一,因此会提出更改了Dockerfile设置WORKDIR,以/home/k6使默认的行为更直观一点。