He creado un clúster de kubernetes en digitalocean. y he implementado k6 como un trabajo en el clúster de kubernetes.
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-configasí es como se ve mi archivo k6-job.yaml. Después de implementarlo en el clúster de Kubernetes, verifiqué los registros de los pods. muestra un error de permiso denegado. level=error msg="open ./test.json: permiso denegado" ¿cómo resolver este problema?
La imagen de Docker k6 se ejecuta como un usuario sin privilegios, pero desafortunadamente el directorio de trabajo predeterminado está configurado en / , por lo que no tiene permiso para escribir allí.
Para evitar esto, considere cambiar la ruta de salida de JSON a /home/k6/out.json , es decir:
command: ["k6", "run", "--vus", "2", "--duration", "5m", "--out", "json=/home/k6/test.json", "/etc/k6-config/script.js"] Soy uno de los mantenedores del equipo, por lo que propondré un cambio en Dockerfile para configurar WORKDIR en /home/k6 para que el comportamiento predeterminado sea un poco más intuitivo.