
kubeshop/testkube-api-serverTestkube Kubernetes API Server 是 Testkube 测试平台的核心组件,作为系统的中枢神经系统,负责处理所有 API 请求,协调测试工作流的定义、触发、执行与结果收集。该组件连接 Testkube CLI、UI、CI/CD 工具与 Kubernetes 集群中的测试执行资源,实现测试编排与基础设施的解耦,支持在分布式环境中大规模运行各类测试任务。
bashdocker run -d \ --name testkube-api-server \ -p 8080:8080 \ -v $HOME/.kube/config:/root/.kube/config \ # 挂载 K8s 配置(外部集群访问) -e KUBERNETES_CONFIG=/root/.kube/config \ # 指定 K8s 配置路径 -e LOG_LEVEL=info \ # 日志级别(debug/info/warn/error) -e API_PORT=8080 \ # API 服务端口 kubeshop/testkube-api-server:latest
yamlversion: "3.8" services: api-server: image: kubeshop/testkube-api-server:latest ports: - "8080:8080" volumes: - $HOME/.kube/config:/root/.kube/config environment: - KUBERNETES_CONFIG=/root/.kube/config - LOG_LEVEL=info - API_PORT=8080 - MONGODB_URI=mongodb://mongodb:27017/testkube # 结果存储(可选外部 MongoDB) depends_on: - mongodb mongodb: # 可选:本地 MongoDB 用于存储测试结果 image: mongo:5.0 ports: - "27017:27017" volumes: - mongodb-data:/data/db volumes: mongodb-data:
Testkube 官方推荐通过 Helm Chart 部署完整平台(含 API Server):
bash# 添加 Helm 仓库 helm repo add testkube [***] helm repo update # 安装 Testkube(含 API Server) helm install testkube testkube/testkube \ --namespace testkube \ --create-namespace \ --set apiServer.logLevel=info \ --set apiServer.service.type=NodePort # 或 Load***(根据集群网络配置)
| 参数名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
API_PORT | API 服务监听端口 | 8080 | 9090 |
KUBERNETES_CONFIG | K8s 配置文件路径(外部集群访问) | /var/run/secrets/kubernetes.io/serviceaccount(in-cluster 模式) | /root/.kube/config |
LOG_LEVEL | 日志级别 | info | debug |
NAMESPACE | Testkube 资源部署命名空间 | testkube | kube-test |
MONGODB_URI | MongoDB 连接地址(结果存储) | mongodb://mongodb:27017/testkube | mongodb+srv://user:*****kube |
AUTH_ENABLED | 是否启用 API 认证 | false | true |
JWT_SECRET | JWT 认证密钥(AUTH_ENABLED=true 时必填) | - | your-strong-secret-key |
CORS_ALLOWED_ORIGINS | CORS 允许的源地址 | * | [***] |
可通过 docker run kubeshop/testkube-api-server --help 查看完整参数,常用参数:
bash--api-port 8080 # 同环境变量 API_PORT --log-level debug # 同环境变量 LOG_LEVEL --namespace testkube # 同环境变量 NAMESPACE --kubeconfig /root/.kube/config # 同环境变量 KUBERNETES_CONFIG
部署后可通过以下方式验证 API Server 可用性:
bash# 检查服务状态 curl http://localhost:8080/health # 预期响应(健康状态) {"status":"ok","version":"v1.10.0"} # 版本号随镜像更新变化
bash# 配置 CLI 连接 API Server testkube config set-context --api-uri http://localhost:8080 # 触发示例测试(需提前定义测试资源) testkube run test my-test
yamljobs: test: runs-on: ubuntu-latest steps: - name: Trigger Testkube Test run: | curl -X POST "[***]" \ -H "Content-Type: application/json" \ -d '{"trigger": "github-actions", "params": {"ENV": "staging"}}'
问题:API Server 无法连接 Kubernetes 集群
排查:检查 KUBERNETES_CONFIG 路径是否正确,或确认容器是否以 in-cluster 模式运行(需挂载 serviceaccount 令牌)。
问题:测试执行后无结果返回
排查:检查 MONGODB_URI 配置,确保 MongoDB 服务可访问;查看 API Server 日志(docker logs testkube-api-server)定位存储错误。
问题:API 认证失败
排查:确认 AUTH_ENABLED 与 JWT_SECRET 配置,检查请求头是否包含有效的 Authorization: Bearer <token>。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务