k6 starter Pod启动异常:sh: curl: not found 问题求助
k6 Starter Pod启动失败(curl: not found)问题排查与解决
问题分析
你的k6 Starter Pod启动失败,日志显示sh: curl: not found,核心原因如下:
- 你为starter配置的
XXX/grafana/k6:0.48.0是k6的压测运行镜像,该镜像为轻量级构建,默认未预装curl工具; - k6 Operator的starter组件依赖
curl完成脚本分发、API交互等初始化操作,缺失该工具直接导致启动脚本执行失败; - 额外注意:starter组件应使用k6-operator专用镜像,而非k6的运行镜像,后者仅用于执行压测脚本,不包含starter的初始化逻辑。
解决方案
方案1:使用k6-operator专用starter镜像(推荐)
修改K6自定义资源的spec.starter.image为对应版本的k6-operator镜像,示例配置如下:
apiVersion: k6.io/v1alpha1 kind: K6 metadata: name: k6-sample spec: parallelism: 1 script: configMap: name: k6-test file: test.js runner: image: XXX/grafana/k6:0.48.0 tolerations: [] affinity: {} starter: # 替换为与你安装的k6-operator匹配的版本,例如v0.0.24 image: grafana/k6-operator:v0.0.24 tolerations: [] affinity: {}
方案2:自定义包含curl的k6镜像(仅特殊场景使用)
若需坚持使用k6镜像作为starter,需构建自定义镜像并预装curl:
FROM XXX/grafana/k6:0.48.0 # 基于Alpine镜像,安装curl RUN apk add --no-cache curl
构建并推送镜像后,更新K6资源中的spec.starter.image为自定义镜像地址。
验证操作
- 删除已失败的starter Job:
kubectl delete job k6-sample-starter -n k6-operator-system
- 应用修改后的配置:
kubectl apply -f <你的K6资源文件路径> -n k6-operator-system
- 检查starter Pod状态:
kubectl get pods -n k6-operator-system | grep starter
内容的提问来源于stack exchange,提问作者Sathpal Singh
相关产品推荐
相关产品推荐

